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

哪吒人生信條:若是你所學的東西 處於喜歡 纔會有強大的動力支撐。javascript

把你的前端拿捏得死死的,天天學習得爽爽的,關注這個不同的程序員,若是你所學的東西 處於喜歡 纔會有強大的動力支撐。

感謝不負每一份熱愛前端的程序員,不論前端技能有多奇葩,歡迎關注加我入羣vx:xiaoda0423php

前言

但願能夠經過這篇文章,可以給你獲得幫助。(感謝一鍵三連)html

內存分析,底層算法,JDK源碼分析( idea版本和 jdk13

初級學習方向:Java入門,idea開發環境使用(idea,eclipse),面向對象基礎和麪向對象設計,Java虛擬機內存機制,內存分析全面理解面向對象,內存分析全面理解編程語言,面向對象深刻,數組和數據存儲,異常機制和可視化bug追蹤,經常使用類和jdk底層源碼分析,容器的使用,io流技術,網絡編程,多線程和併發編程,函數式編程。前端

程序員職業發展:技術總監,資深碼農,架構師,項目經理,ceo等。java

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

掌握:代碼能力,面向對象分析能力,內存底層和源碼分析習慣,調試和查錯能力。c++

javase java標準版本, ee企業級開發必學。git

程序是現實邏輯的表達,程序的本質三個因素,變量,if語句,循環語句。考慮因素(變量),判斷條件,無限極。程序員

表格思想去理解數據庫存儲數據

如何理解Java中的類和對象?-表格思想github

  • 表結構對應:類
  • 一行數據對應:對象

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

相關文章
相關標籤/搜索