【2021年】小哪吒入门学习Java的第一天打卡

哪吒人生信条:如果你所学的东西 处于喜欢 才会有强大的动力支撑。

把你的前端拿捏得死死的,每天学习得爽爽的,关注这个不一样的程序员,如果你所学的东西 处于喜欢 才会有强大的动力支撑。

感谢不负每一份热爱前端的程序员,不论前端技能有多奇葩,欢迎关注加我入群vx:xiaoda0423

前言

希望可以通过这篇文章,能够给你得到帮助。(感谢一键三连)

内存分析,底层算法,JDK源码分析( idea版本和 jdk13

初级学习方向:Java入门,idea开发环境使用(idea,eclipse),面向对象基础和面向对象设计,Java虚拟机内存机制,内存分析全面理解面向对象,内存分析全面理解编程语言,面向对象深入,数组和数据存储,异常机制和可视化bug追踪,常用类和jdk底层源码分析,容器的使用,io流技术,网络编程,多线程和并发编程,函数式编程。

程序员职业发展:技术总监,资深码农,架构师,项目经理,ceo等。

常见的语言:c,java,python,c++,c#,javascript,php,swift,kotlin等。

掌握:代码能力,面向对象分析能力,内存底层和源码分析习惯,调试和查错能力。

javase java标准版本, ee企业级开发必学。

程序是现实逻辑的表达,程序的本质三个因素,变量,if语句,循环语句。考虑因素(变量),判断条件,无限极。

表格思想去理解数据库存储数据

如何理解Java中的类和对象?-表格思想

  • 表结构对应:类
  • 一行数据对应:对象

xml文档:表结构对应:文档标签定义;一行数据对应:指定元素。

争对公司:了解该公司基本情况,侧重哪款技术,研究该公司产品。

java版本

  • JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用。
  • JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用。

Java的特性和优势

Java程序的运行机制

计算机高级语言的类型主要有编译型和解释型两种,而Java 语言是两种类型的结合。

Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class; 最后利用虚拟机(解释器,java)解释执行。

画了个图:

JVM、JRE和JDK

JVM (Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的"虚拟计算机"。它包含了:指令集,寄存器集,结构栈,垃圾收集堆,内存区域。JVM负责java字节码解释运行,边解释边运行,这样速度就会受到一定的影响。

不同的操作系统有不同的虚拟机,java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。java虚拟机是实现跨平台的核心机制。

画了个图:

Java Development Kit(JDK)包含:JRE虚拟机,库函数,运行Java应用程序所必须的文件。

Java Runtime Environment(JRE)包含:Java虚拟机,库函数,运行Java应用程序所必须的文件。

JVM (Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的"虚拟计算机"。

JDK、JRE和JVM的关系如图:

如果只是运行 Java程序,只需要 JRE就可以, JRE通常非常小,其中包括了 JVM;如果要开发 Java程序,就需要安装 JDK

JDK下载和安装

下载地址

现新:

点击”Accept License Agreement”,然后选择对应的版本,下载即可

再进入JDK的安装目录

  • bin目录是存储一些可执行的二进制文件
  • lib存储相关jar
  • src.zipJDK相关JAVA类的源代码

环境变量Path的配置

C:\Program Files\Java\jdk-15.0.1

右键计算机,属性,高级系统设置

一定是英文分号而不是中文分号

测试JDK安装成功

第一个Java程序

使用记事本开发第一个Java程序

public class helloWorld{
    public static void main(String[] args){
        System.out.println("Hello Java!我的掘金魔王哪吒作者");
    }
}

保存在d盘,文件名helloWorld.java,打开命令行窗口,进入java文件所在目录,执行javac helloWorld.java,生成class文件。

解释并运行阶段:java helloWorld,运行编译生成的helloWorld.class文件,输出结果。

常见错误

  1. path变量配置错误导致没有找到javac命令
  2. 可能是操作系统显示设置的问题,隐藏了文件的扩展名
  3. 找不到main方法,应该是main方法书写有误

常用DOS命令

  • cd目录路径,进入一个目录
  • cd ... ,进入父目录
  • dir,查看本目录下的文件和子目录列表
  • cls,清除屏幕命令
  • Tab键,自动补齐命令

常用Java开发工具

下载和安装eclipse

下载地址

选择Eclipse IDE for Java Developers,根据自己安装的JDK,下载完成后,直接解压。进入目录,双击eclipse.exe即可使用。

工作空间指Java项目存储的目录,一般采用默认工作空间目录即可。

在eclipse中创建Java项目,选择new,Java Project,开始新建Java项目。

使用eclipse开发和运行Java程序

在src目录上右键单击,建立一个Java类。

Java项目的src目录和bin目录

  • src用于存放源代码
  • bin用于存放生成的class文件

桌球小游戏

ball.png

desk.jpg

import  java.awt.*;
import javax.swing.*;
  
public class BallGame extends JFrame {
      
    Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
     
    double  x=100;    //小球的横坐标
    double  y=100; //小球的纵坐标
    boolean  right = true;   //方向
    //画窗口的方法
    public void paint(Graphics  g){
        System.out.println("窗口被画了一次!");
        g.drawImage(desk, 0, 0, null);
        g.drawImage(ball, (int)x, (int)y, null);
        
        if(right){
            x = x + 10;            
        }else{
            x = x - 10;
        }
         
        if(x>856-40-30){    //856是窗口宽度,40是桌子边框的宽度,30是小球的直径
            right = false;
        }
         
        if(x<40){        //40是桌子边框的宽度
            right = true;
        }
    }
     
    //窗口加载
    void launchFrame(){
        setSize(856,500);
        setLocation(50,50);
        setVisible(true);
        
      //重画窗口,每秒画25次
        while(true){
            repaint(); 
            try{
                Thread.sleep(40);   //40ms,   1秒=1000毫秒.  大约一秒画25次窗口
            }catch(Exception e){
                e.printStackTrace();
            }
             
        }
    }
      
     //main方法是程序执行的入口
     public static void main(String[] args){
         System.out.println("掘金:魔王哪吒");
         BallGame game = new BallGame();
         game.launchFrame();
     }
      
}

效果图:

import  java.awt.*;
import javax.swing.*;
 
public class BallGame2 extends JFrame {
     
    Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
     
    double  x=100;    //小球的横坐标
    double  y=100; //小球的纵坐标
     
    double degree = 3.14/3;    //弧度。此处就是:60度
     
    //画窗口的方法
    public void paint(Graphics  g){
        System.out.println("窗口被画了一次!");
        g.drawImage(desk, 0, 0, null);
        g.drawImage(ball,(int)x, (int)y, null);
         
         
        x  = x+ 10*Math.cos(degree);
        y  = y +10*Math.sin(degree); 
         
        //碰到上下边界
        if(y>500-40-30||y<40+40){//500是窗口高度;40是桌子边框,30是球直径;最后一个40是标题栏的高度
            degree = -degree;
        }
         
        //碰到左右边界
        if(x<40||x>856-40-30){
            degree = 3.14 - degree;
        }
         
    }
     
    //窗口加载
    void launchFrame(){
        setSize(856,500);
        setLocation(50,50);
        setVisible(true);
         
        //重画窗口,每秒画25次
        while(true){
            repaint(); 
            try{
                Thread.sleep(40);   //40ms,   1秒=1000毫秒.  大约一秒画25次窗口
            }catch(Exception e){
                e.printStackTrace();
            }
             
        }
         
    }
     
    //main方法是程序执行的入口
    public static void main(String[] args){
        System.out.println("掘金:魔王哪吒");
        BallGame2 game = new BallGame2();
        game.launchFrame();
    }
     
}

效果图如下:

点赞、收藏和评论

我是Jeskson(达达前端),感谢各位人才的:点赞、收藏和评论,我们下期见!(如本文内容有地方讲解有误,欢迎指出☞谢谢,一起学习了)

我们下期见!

文章持续更新,本文 http://www.dadaqianduan.cn/#/ 已经收录

github收录,欢迎Star:https://github.com/webVueBlog/WebFamily

你可能感兴趣的:(java,程序员,后端)