学习JAVA.day05
--------------------------------飞机大战(二)----------------------------------
效果图:


---------------------------------------------------------------------------------------
附源码:
功能还有待完善,距离完美的产品还有很大差距,不过希望对于初次接触JAVA的同学有所帮助;
定义的类:

资源链接:
链接:https://pan.baidu.com/s/1UDvO2TnoQHt-dOr-qj4jDA
提取码:lisr
复制这段内容后打开百度网盘手机App,操作更方便哦

源码:
------------------------------------StartGame-------------------------------------

package gamepack;import javax.swing.*;
import java.awt.*;public class StartGame {public static void main(String[] args) {//1.构建窗体JFrame jf = new JFrame();//加窗体标题jf.setTitle("Plane Wars");//调用setBounds方法设置窗体的弹出位置,窗体大小int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;int jfWidth = 490;int jfHeight = 720;jf.setBounds((screenWidth - jfWidth) / 2, (screenHeight - jfHeight) / 2, jfWidth, jfHeight);//将窗口设定为不可调节大小jf.setResizable(false);//窗口关闭的同时结束程序jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//2.创建一个面板GamePanel gp=new GamePanel();//将面板添加到窗体中jf.add(gp);//显示窗口jf.setVisible(true);}
}

---------------------------------------------------------------------------------------
------------------------------------GamePanel------------------------------------

package gamepack;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;/*
游戏面板:是一个透明的面板,所有的内容都是画在该面板中
继承了JPanel的功能*/
public class GamePanel extends JPanel {int backgroundX;int backgroundY;PlaneClass myPlane=new MyPlane();int[] bombXs = new int[10];int[] bombYs = new int[10];//定义每一个炮弹的弧度//double[] degrees=new double[10];//游戏的两个状态boolean isStart = false;//默认游戏是暂停的//定义飞机飞的方向boolean left, right, up, down;//飞机是否碰撞boolean isDead = false;//定义游戏开始时间long startTime;//定义游戏结束时间long endTime;//定义飞机形态变化时间long changTime;//定义一个定时器Timer timer;ArrPlaneBox planeBox=new ArrPlaneBox();BulletBox bulletBox=new BulletBox();//初始化方法public void init() {//游戏开始startTime = System.currentTimeMillis();//初始化背景坐标backgroundX = 0;backgroundY = 0;planeBox.destroyAllPlane();bulletBox.destroyAllBullet();//初始化炮弹坐标
//        for (int i = 0; i < 10; i++) {//            bombXs[i]=100;
//            bombYs[i]=100;
//            //给每一个炮弹设置随机的弧度
//            degrees[i]=(int)(Math.random()*2*Math.PI);
//        }planeBox.createPlane(3);}public GamePanel() {init();//将焦点放入面板this.setFocusable(true);//加入鼠标监听this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {super.mouseClicked(e);//获取鼠标点击int clickX=e.getX();int clickY=e.getY();if(clickX>0&&clickX<480&&clickY>10&&clickY<700){if (isDead) {init();isDead = false;} else {isStart = !isStart;//重新绘制页面repaint();}}}});//加入监听效果this.addKeyListener(new KeyAdapter() {//监听键盘的按压@Overridepublic void keyPressed(KeyEvent e) {super.keyPressed(e);//获取按键int keyCode = e.getKeyCode();//System.out.println(keyCode);if (keyCode == KeyEvent.VK_SPACE) {//检测监听的是否是空格if (isDead) {init();isDead = false;} else {isStart = !isStart;//重新绘制页面repaint();}}if (keyCode == KeyEvent.VK_LEFT) {left = true;}if (keyCode == KeyEvent.VK_RIGHT) {right = true;}if (keyCode == KeyEvent.VK_UP) {up = true;}if (keyCode == KeyEvent.VK_DOWN) {down = true;}}@Overridepublic void keyReleased(KeyEvent e) {super.keyReleased(e);//获取按键int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_LEFT) {left = false;}if (keyCode == KeyEvent.VK_RIGHT) {right = false;}if (keyCode == KeyEvent.VK_UP) {up = false;}if (keyCode == KeyEvent.VK_DOWN) {down = false;}}});//初始化定时器:每50ms执行一下actionPerformed中的逻辑timer = new Timer(50, new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (isStart && !isDead) {backgroundY += 10;if (backgroundY > 700) {backgroundY = 0;}if (left) {myPlane.planeX -= 7;}if (right) {myPlane.planeX += 7;}if (up) {myPlane.planeY -= 7;}if (down) {myPlane.planeY += 7;}boolean flag=planeBox.isHitPlayerPlane(myPlane);if(flag){endTime=System.currentTimeMillis();isDead=true;}planeBox.allPlaneMove();planeBox.renewPlaneBlood(bulletBox.arrBulletList,bulletBox.bulletCount);bulletBox.allBulletMove();//改变坐标后,重新绘制repaint();}}});timer.start();}//重写一个方法,用来在画板中添加图层@Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);//设置背景颜色//this.setBackground(new Color(255, 255, 255));changTime = System.currentTimeMillis();//给面板添加背景图片Images.groundImg.paintIcon(this, g, backgroundX, backgroundY);Images.groundImg.paintIcon(this, g, backgroundX, backgroundY - 700);if ((changTime - startTime) % 2 == 0) {myPlane.planeShow(this,g,1);} else {myPlane.planeShow(this,g,2);}planeBox.allPlaneShow(this,g,startTime,changTime);bulletBox.allBulletShow(this,g);if((changTime - startTime) /50 % 51 == 0){int index=new Random().nextInt(10);int planeSize=0;if(index<6){planeSize=3;}else if(index<9){planeSize=2;}else if(index<10){planeSize=1;}planeBox.createPlane(planeSize);}if((changTime - startTime) /50 % 2 == 0){bulletBox.createBullet(myPlane,true);}
//        for (int i = 0; i < 10; i++) {//            Images.bombImg.paintIcon(this,g,bombXs[i],bombYs[i]);
//        }//销毁所有越界或则消亡飞机planeBox.destroyAllUselessPlane();bulletBox.destroyAllUselessBullet();if (isStart == false) {g.setColor(new Color(69, 91, 134));g.setFont(new Font("微软雅黑", Font.BOLD, 40));g.drawString("点击开始游戏", 120, 330);}if (isDead == true) {g.setColor(new Color(69, 91, 134));g.setFont(new Font("微软雅黑", Font.BOLD, 40));g.drawString("游戏结束" + (endTime - startTime) / 1000 + "秒", 100, 330);}}
}

---------------------------------------------------------------------------------------
--------------------------------------Images----------------------------------------

package gamepack;import javax.swing.*;
import java.net.URL;/*
图片工具类*/
public class Images {//1.炸弹//先把图片的地址封装为一个具体的对象static URL bombURL=Images.class.getResource("/images/bomb.png");//把图片封装为一个对象static ImageIcon bombImg=new ImageIcon(bombURL);//定义为静态,直接通过Images直接调用//2.背景static URL groundURL=Images.class.getResource("/images/background.png");static ImageIcon groundImg=new ImageIcon(groundURL);//3.我的飞机static URL planeURL=Images.class.getResource("/images/me1.png");static ImageIcon planeImg=new ImageIcon(planeURL);static URL planeURL2=Images.class.getResource("/images/me2.png");static ImageIcon planeImg2=new ImageIcon(planeURL2);//4.敌人飞机static URL planeBigURL=Images.class.getResource("/images/enemy3_n1.png");static ImageIcon planeBigImg=new ImageIcon(planeBigURL);static URL planeBigURL2=Images.class.getResource("/images/enemy3_n2.png");static ImageIcon planeBigImg2=new ImageIcon(planeBigURL2);static URL planeBigURL3=Images.class.getResource("/images/enemy3_hit.png");static ImageIcon planeBigImg3=new ImageIcon(planeBigURL3);static URL planeBigURL4=Images.class.getResource("/images/enemy3_down1.png");static ImageIcon planeBigImg4=new ImageIcon(planeBigURL4);static URL planeBigURL5=Images.class.getResource("/images/enemy3_down2.png");static ImageIcon planeBigImg5=new ImageIcon(planeBigURL5);static URL planeBigURL6=Images.class.getResource("/images/enemy3_down3.png");static ImageIcon planeBigImg6=new ImageIcon(planeBigURL6);static URL planeBigURL7=Images.class.getResource("/images/enemy3_down4.png");static ImageIcon planeBigImg7=new ImageIcon(planeBigURL7);static URL planeBigURL8=Images.class.getResource("/images/enemy3_down5.png");static ImageIcon planeBigImg8=new ImageIcon(planeBigURL8);static URL planeBigURL9=Images.class.getResource("/images/enemy3_down6.png");static ImageIcon planeBigImg9=new ImageIcon(planeBigURL9);static URL planeMidURL=Images.class.getResource("/images/enemy2.png");static ImageIcon planeMidImg=new ImageIcon(planeMidURL);static URL planeMidURL2=Images.class.getResource("/images/enemy2_hit.png");static ImageIcon planeMidImg2=new ImageIcon(planeMidURL2);static URL planeMidURL3=Images.class.getResource("/images/enemy2_down1.png");static ImageIcon planeMidImg3=new ImageIcon(planeMidURL3);static URL planeMidURL4=Images.class.getResource("/images/enemy2_down2.png");static ImageIcon planeMidImg4=new ImageIcon(planeMidURL4);static URL planeMidURL5=Images.class.getResource("/images/enemy2_down3.png");static ImageIcon planeMidImg5=new ImageIcon(planeMidURL5);static URL planeMidURL6=Images.class.getResource("/images/enemy2_down4.png");static ImageIcon planeMidImg6=new ImageIcon(planeMidURL6);static URL planeSmallURL=Images.class.getResource("/images/enemy1.png");static ImageIcon planeSmallImg=new ImageIcon(planeSmallURL);static URL planeSmallURL2=Images.class.getResource("/images/enemy1_down1.png");static ImageIcon planeSmallImg2=new ImageIcon(planeSmallURL2);static URL planeSmallURL3=Images.class.getResource("/images/enemy1_down2.png");static ImageIcon planeSmallImg3=new ImageIcon(planeSmallURL3);static URL planeSmallURL4=Images.class.getResource("/images/enemy1_down3.png");static ImageIcon planeSmallImg4=new ImageIcon(planeSmallURL4);static URL planeSmallURL5=Images.class.getResource("/images/enemy1_down4.png");static ImageIcon planeSmallImg5=new ImageIcon(planeSmallURL5);//5.子弹加载static URL bulletURL=Images.class.getResource("/images/bullet1.png");static ImageIcon bulletImg=new ImageIcon(bulletURL);static URL bulletURL2=Images.class.getResource("/images/bullet2.png");static ImageIcon bulletImg2=new ImageIcon(bulletURL2);
}

---------------------------------------------------------------------------------------
------------------------------------ArrPlaneBox-----------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;public class ArrPlaneBox {public int planeCount = 0;public ArrayList<PlaneClass> arrPlaneList = new ArrayList<>();public void allPlaneShow(GamePanel p, Graphics g, long startTime, long changeTime) {//int arrSize= arrPlaneList.size();for (int i = 0; i < planeCount; i++) {if (arrPlaneList.get(i).speed / 2 == 1) {if ((changeTime - startTime) % 2 == 0) {arrPlaneList.get(i).planeShow(p, g, 1);} else {arrPlaneList.get(i).planeShow(p, g, 2);}} else {arrPlaneList.get(i).planeShow(p, g, 1);}}}public void allPlaneMove() {//int arrSize= arrPlaneList.size();for (int i = 0; i < planeCount; i++) {arrPlaneList.get(i).move();}}public void createPlane(int planeId) {planeCount++;switch (planeId) {case 1:arrPlaneList.add(new PlaneBig());break;case 2:arrPlaneList.add(new PlaneMid());break;default:arrPlaneList.add(new PlaneSmall());break;}}public void destroyAllUselessPlane() {//int arrSize= arrPlaneList.size();for (int i = 0; i < planeCount; i++) {if (arrPlaneList.get(i).planeY > 700 || arrPlaneList.get(i).isPlaneDead) {planeCount--;arrPlaneList.get(i).finalize();arrPlaneList.remove(i);}}}public boolean isHitPlayerPlane(PlaneClass plane) {for (int i = 0; i < planeCount; i++) {if (arrPlaneList.get(i).isHitPlayerPlane(plane)) {return true;}}return false;}public void renewPlaneBlood(ArrayList<BulletClass> bulletList, int bulletCount) {for (int i = 0; i < planeCount; i++) {if (arrPlaneList.get(i).isBulletHitPlane(bulletList, bulletCount)) {arrPlaneList.get(i).blood--;if (arrPlaneList.get(i).blood < 1) {arrPlaneList.get(i).isPlaneDead = true;}}}}public void destroyAllPlane() {//int arrSize= arrPlaneList.size();for (int i = 0; i < planeCount; i++) {planeCount--;arrPlaneList.get(i).finalize();arrPlaneList.remove(i);}}
}

---------------------------------------------------------------------------------------
------------------------------------PlaneClass-------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;public abstract class PlaneClass {//位置坐标public int planeX;public int planeY;//尺寸参数public int width;public int height;//行为参数public int speed;    //timer采集频率为50ms//属性参数public int blood;public boolean isPlaneDead;protected void finalize(){}public abstract void init();public abstract void move();public abstract void planeShow(GamePanel p,Graphics g,int showId);public abstract boolean isHitPlayerPlane(PlaneClass plane);public abstract boolean isBulletHitPlane(ArrayList<BulletClass> bulletList,int bulletCount);
}

---------------------------------------------------------------------------------------
-------------------------------------MyPlane---------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;
import java.util.Random;public class MyPlane extends PlaneClass{public MyPlane() {init();}@Overridepublic void init() {//位置坐标planeX=200;planeY=580;//尺寸参数width=102;height=126;//行为参数//speed=4;    //timer采集频率为50ms//属性参数blood=15;isPlaneDead=false;}@Overrideprotected void finalize(){init();}@Overridepublic void move() {}@Overridepublic void planeShow(GamePanel p, Graphics g, int showId) {if (showId==1) {Images.planeImg.paintIcon(p, g, planeX, planeY);} else {Images.planeImg2.paintIcon(p, g, planeX, planeY);}}@Overridepublic boolean isHitPlayerPlane(PlaneClass plane) {return false;}@Overridepublic boolean isBulletHitPlane(ArrayList<BulletClass> bulletList,int bulletCount) {return false;}
}

---------------------------------------------------------------------------------------
-------------------------------------PlaneBig--------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;
import java.util.Random;public class PlaneBig extends PlaneClass{public PlaneBig() {init();}@Overridepublic void init() {//位置坐标planeX=new Random().nextInt(480-169);planeY=-260;//尺寸参数width=169;height=258;//行为参数speed=2;    //timer采集频率为50ms//属性参数blood=10;isPlaneDead=false;}@Overrideprotected void finalize(){init();}@Overridepublic void move() {planeY+=speed;}@Overridepublic void planeShow(GamePanel p,Graphics g,int showId) {switch (showId){case 1:Images.planeBigImg.paintIcon(p, g, planeX, planeY);break;case 2:Images.planeBigImg2.paintIcon(p, g, planeX, planeY);break;case 3:Images.planeBigImg3.paintIcon(p, g, planeX, planeY);break;case 4:Images.planeBigImg4.paintIcon(p, g, planeX, planeY);break;case 5:Images.planeBigImg5.paintIcon(p, g, planeX, planeY);break;case 6:Images.planeBigImg6.paintIcon(p, g, planeX, planeY);break;case 7:Images.planeBigImg7.paintIcon(p, g, planeX, planeY);break;case 8:Images.planeBigImg8.paintIcon(p, g, planeX, planeY);break;case 9:Images.planeBigImg9.paintIcon(p, g, planeX, planeY);break;default:break;}}@Overridepublic boolean isHitPlayerPlane(PlaneClass plane) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(plane.planeX, plane.planeY, plane.width, plane.height));return flag;}@Overridepublic boolean isBulletHitPlane(ArrayList<BulletClass> bulletList,int bulletCount) {for (int i = 0; i < bulletCount; i++) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(bulletList.get(i).BulletX, bulletList.get(i).BulletY,bulletList.get(i).width, bulletList.get(i).height));if(flag) {bulletList.get(i).isHitPlane = true;return true;}}return false;}
}

---------------------------------------------------------------------------------------
-------------------------------------PlaneMid--------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;
import java.util.Random;public class PlaneMid extends PlaneClass{public PlaneMid() {init();}@Overridepublic void init() {//位置坐标planeX=new Random().nextInt(480-69);planeY=-99;//尺寸参数width=69;height=99;//行为参数speed=4;    //timer采集频率为50ms//属性参数blood=5;isPlaneDead=false;}@Overrideprotected void finalize(){init();}@Overridepublic void move() {planeY+=speed;}@Overridepublic void planeShow(GamePanel p,Graphics g,int showId) {switch (showId){case 1:Images.planeMidImg.paintIcon(p, g, planeX, planeY);break;case 2:Images.planeMidImg2.paintIcon(p, g, planeX, planeY);break;case 3:Images.planeMidImg3.paintIcon(p, g, planeX, planeY);break;case 4:Images.planeMidImg4.paintIcon(p, g, planeX, planeY);break;case 5:Images.planeMidImg5.paintIcon(p, g, planeX, planeY);break;case 6:Images.planeMidImg6.paintIcon(p, g, planeX, planeY);break;default:break;}}@Overridepublic boolean isHitPlayerPlane(PlaneClass plane) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(plane.planeX, plane.planeY, plane.width, plane.height));if(flag){return true;}else {return false;}}@Overridepublic boolean isBulletHitPlane(ArrayList<BulletClass> bulletList,int bulletCount) {for (int i = 0; i < bulletCount; i++) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(bulletList.get(i).BulletX, bulletList.get(i).BulletY,bulletList.get(i).width, bulletList.get(i).height));if(flag) {bulletList.get(i).isHitPlane = true;return true;}}return false;}
}

---------------------------------------------------------------------------------------
-----------------------------------PlaneSmall--------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;
import java.util.Random;public class PlaneSmall extends PlaneClass{public PlaneSmall() {init();}@Overridepublic void init() {//位置坐标planeX=new Random().nextInt(480-57);planeY=-43;//尺寸参数width=57;height=43;//行为参数speed=6;    //timer采集频率为50ms//属性参数blood=2;isPlaneDead=false;}@Overrideprotected void finalize(){init();}@Overridepublic void move() {planeY+=speed;}@Overridepublic void planeShow(GamePanel p,Graphics g,int showId) {switch (showId){case 1:Images.planeSmallImg.paintIcon(p, g, planeX, planeY);break;case 2:Images.planeSmallImg2.paintIcon(p, g, planeX, planeY);break;case 3:Images.planeSmallImg3.paintIcon(p, g, planeX, planeY);break;case 4:Images.planeSmallImg4.paintIcon(p, g, planeX, planeY);break;case 5:Images.planeSmallImg5.paintIcon(p, g, planeX, planeY);break;default:break;}}@Overridepublic boolean isHitPlayerPlane(PlaneClass plane) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(plane.planeX, plane.planeY, plane.width, plane.height));if(flag){return true;}else {return false;}}@Overridepublic boolean isBulletHitPlane(ArrayList<BulletClass> bulletList,int bulletCount) {for (int i = 0; i < bulletCount; i++) {boolean flag=new Rectangle(planeX,planeY,width,height).intersects(new Rectangle(bulletList.get(i).BulletX, bulletList.get(i).BulletY,bulletList.get(i).width, bulletList.get(i).height));if(flag) {bulletList.get(i).isHitPlane = true;return true;}}return false;}
}

---------------------------------------------------------------------------------------
-------------------------------------BulletBox--------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;public class BulletBox {public int bulletCount = 0;public ArrayList<BulletClass> arrBulletList = new ArrayList<>();public void allBulletShow(GamePanel p, Graphics g) {for (int i = 0; i < bulletCount; i++) {arrBulletList.get(i).bulletShow(p, g);}}public void allBulletMove() {//int arrSize= arrBulletList.size();for (int i = 0; i < bulletCount; i++) {arrBulletList.get(i).move();}}public void createBullet(PlaneClass plane, boolean flag) {bulletCount++;arrBulletList.add(new BulletClass(plane, flag));}public void destroyAllUselessBullet() {for (int i = 0; i < bulletCount; i++) {if (arrBulletList.get(i).BulletY < -11 || arrBulletList.get(i).BulletY > 700 || arrBulletList.get(i).isHitPlane) {bulletCount--;arrBulletList.get(i).finalize();arrBulletList.remove(i);}}}public void destroyAllBullet() {for (int i = 0; i < bulletCount; i++) {bulletCount--;arrBulletList.get(i).finalize();arrBulletList.remove(i);}}
}

---------------------------------------------------------------------------------------
-----------------------------------BulletClass--------------------------------------

package gamepack;import java.awt.*;
import java.util.ArrayList;public class BulletClass {//位置坐标public int BulletX;public int BulletY;//尺寸参数public int width;public int height;//行为参数public int speed;    //timer采集频率为50ms//属性参数public boolean isHitPlane;public boolean isMyPlane;public BulletClass(PlaneClass plane,boolean flag) {init(plane,flag);}protected void finalize(){this.BulletX = -width;this.BulletY = -height;}public void init(PlaneClass plane,boolean flag){if(flag){this.BulletX = plane.planeX+ plane.width/2;this.BulletY = plane.planeY;this.speed = 45;}else{this.BulletX = plane.planeX+plane.width/2;this.BulletY = plane.planeY+plane.height;this.speed = -45;}this.width = 5;this.height = 11;this.isMyPlane = flag;this.isHitPlane = false;}public void move(){if(isMyPlane){this.BulletY -=speed;}else{this.BulletY +=speed;}}public void bulletShow(GamePanel p, Graphics g){if(isMyPlane){Images.bulletImg.paintIcon(p, g, BulletX, BulletY);}else{Images.bulletImg2.paintIcon(p, g, BulletX, BulletY);}}
}

---------------------------------------------------------------------------------------
逻辑和代码重复性的问题还有待优化,交给你们了,朋友们!

学习JAVA.day05相关推荐

  1. Java学习路线图,如何学习Java事半功倍?

    作为一个初学者想掌握Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来 ...

  2. JAVA培训哪里好?学习Java难不难

    学习技术目的是为了找个好工作,对于很多人来说就业是前提,如果学习完毕业以后知识没学到,工作方面也就不了业,那学习还有什么用呢?所以选择Java培训机构的时候要选择一家就业率好的机构,这对往后就业帮助是 ...

  3. 学习java周期_Java第一作业周期总结

    1.作业总结 自java开课,我们已经进行了三次作业的练习,一步步的从最开始的没有什么特别之处,到运用到java中独有的知识,从简单到复杂,初步了解了Java编程的基本准则.最开始的作业,写完之后,并 ...

  4. java培训分享:学习java开发的优势是什么

    想要进入到互联网行业的小伙伴,经常比较纠结学那个学科比较好,目前java.web前端.Python等都是非常热门的行业,前景也是比较好的,选择java学科的人比较多,那么学习java开发的优势是什么呢 ...

  5. 零基础怎么学习Java?

    最近几年,有很多小伙伴都比较关注"零基础怎么学习Java?"这个问题,因为很多小伙伴都是从其他行业转型来参加java培训学习的,都很担心自己学不会,那么来看看下面的详细介绍吧. 零 ...

  6. java培训分享:学习Java需要什么软件

    在参加java培训过程中学习java技术,需要用到很多辅助工具,这些辅助工具是具有多功能性和实用性的,从代码构建到bug压缩.学习这些工具可以帮助您提高代码的质量,并成为一个更高效的Java开发人员. ...

  7. 哪些人适合学习java技术

    java技术在互联网行业一直都是非常重要的存在,学习java技术只会多不会少,那么目前哪些人适合学习java技术呢?来看看下面的详细介绍就知道了. 哪些人适合学习java技术? 1.在家待业人员,没有 ...

  8. 零基础学习java,这些书一定要看!

    学习java技术除了看视频,看书也是非常重要的,尤其是零基础同学,本文包含学习Java各个阶段的书籍推荐,史上最全,学习Java,没有书籍怎么行,就好比出征没带兵器一个道理,这些书籍整理出来给大家作为 ...

  9. 学习Java知识应该注意哪些基础原则

    想要做java程序猿,学习起来没有那么快的,尤其是零基础学员,java技术在学习的过程中是比较枯燥的,下面小编就为大家详细的介绍一下学习Java知识应该注意哪些基础原则,方便大家在学习的时候能够更加有 ...

最新文章

  1. php网络相关的扩展,文章专题扩展功能组件
  2. 浅谈数据中台安全体系构建思路
  3. Function与Object
  4. Python刷题之路,怎样做才能让技术突飞猛进
  5. 如何使用T-SQL生成随机SQL Server测试数据
  6. iis php 知乎,设置 | WeCenter创建你的知乎
  7. 图片文字提取之路-01预处理
  8. c++ fbxsdk安装配置_Linux上安装软件 - coydone
  9. 【一步步学OpenGL 20】 -《点光源》
  10. C# winform 魔兽MH全图制作教程(2):创建项目与关键类
  11. [附源码]SSM计算机毕业设计st音乐网站论文JAVA
  12. 【ABAP】-第四堂课-创建函数FM
  13. css3基础知识总结
  14. r720换固态硬盘后如何重装系统_换了固态硬盘后怎么重装系统?小白
  15. R学习之统计实验(四)--蒲丰投针(R语言编程)-----数模
  16. Python项目设计计划——树莓派自动浇花系统
  17. 《途客圈创业记:不疯魔,不成活》一一1.2 Alex和剑桥MBA
  18. uboot配置和编译过程详解
  19. 图像检索--Deep Supervised Hashing for Fast Image Retrieval
  20. [转]泡沫破裂的经济学

热门文章

  1. Python将字符串转换成dataframe
  2. 「作于2018初」我的撸码人生
  3. 经典升级,长直播 | 第 19 期高级转录组分析和R数据可视化火热报名中!!!...
  4. C51单片机,基于LCD液晶屏的简易时钟
  5. 亲爱的老狼-display的使用
  6. 速卖通自定义html模板,速卖通运费模版如何设置?
  7. arcgis制图 ——羽化效果
  8. 化妆品APP开发快速制作
  9. java--五子棋人机大战--课程设计
  10. 小米智能电视怎么投屏