【2021年】小哪吒入門學習Java的第一天

前言

希望可以通過這篇文章,能夠給你得到幫助。(感謝一鍵三連)

內存分析,底層算法,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();
    }
     
}

效果圖如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章