天天看點

2021.9.15Java基礎

2021.9.15

三大開發工具

JDK(包含jre和jvm,還有自己工具java和javac等等)

JRE(運作時環境,包含虛拟機,和一些簡單的函數、庫、檔案等等)

JVM(java虛拟機,模拟了一個小巧的cup運作java)

HelloWold

1.建立檔案夾,存放代碼

2.建立一個Java檔案

3.編寫代碼

public class Hello{
    public static void main(String[] args){
        System.out.println("Hello,World!");
    }
}      

4.編譯檔案javac java檔案(在檔案所在目錄下編譯)

5.運作class檔案,java 檔案名

Java運作機制

編譯型:負責翻譯程式,将進階語言變成機器語言

解釋型:邊寫邊翻譯

IDEA入門

psvm快速打出public static void main(String[] args){ }

sout快速打出System.out.println();

注釋

//這是一個注釋(單行注釋)

/* 這是一個注釋*/(多行注釋)

//JavaDos:文檔注釋

/**

*@Description

*/

辨別符

Java所有的組成部分都需要名字,類名、變量名以及方法名都被稱為辨別符

辨別符隻能以字母,$,下劃線_開頭

不能使用關鍵字作為變量名或者方法名

辨別符是大小寫敏感的

編寫代碼最好使用英文

資料類型

強類型語言:要求變量十分規範,所有變量必須定義再使用(安全性高,但是速度慢)

基本類型
  1. 整數
  2. 浮點數(小數)float4個位元組,double占8個
  3. 字元類型char占2個位元組

    Boolean類型占一位

    public class demo02 {
        public static void main(String[] args) {
            //八大基本資料類型
            //整數
            int num1 = 102222;  //最常用
            byte num2 = 20;
            short num3 = 30;
            long num4 = 30L; //Long類型要在後面加一個L
    ​
            //小數:浮點數
            float num5 = 50.1F;//Float類型要在數字後面加個F
            double num6 =3.14159265358;
    ​
            //字元型
            char name0 = \'a\';
            //字元串,String不是關鍵字,類
            String name1 = "龍玉芹";
    ​
            //布爾值
            boolean flag1 = true;
            boolean flag2 = false;
        }
    }      
    public class demo03 {
        public static void main(String[] args) {
            //整數拓展:     進制   二進制0b     十進制     八進制0     十六進制0x
            //
            int i = 10;
            int i2 = 010;    //八進制
            int i3 = 0x10;    //十六進制0x  0~9 A~F 16
    ​
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
            System.out.println("-----------------------------------------------------");
            //--------------------------------------------------------------------------
            //浮點數拓展
            //float     有限    離散     含有誤差   大約    接近但不等于
            //double
            //最好完全避免使用浮點數進行比較
            //最好完全避免使用浮點數進行比較
            //最好完全避免使用浮點數進行比較
    ​
            float f = 0.1f;
            double d = 1.0 / 10;
    ​
            System.out.println(f == d);
            System.out.println(f);
            System.out.println(d);
    ​
            float d1 = 232323234324324f;
            float d2 = d1 + 1;
            System.out.println(d1 == d2);
    ​
            //-----------------------------------------------
            //字元串擴充
            System.out.println("------------------------------------------------------");
            char c1 = \'a\';
            char c2 = \'中\';
    ​
            System.out.println(c1);
            System.out.println((int) c1);//強制轉換
    ​
            System.out.println(c2);
            System.out.println((int) c2);
    ​
            //所有的字元本質還是數字
            //編碼    Unicode   2位元組  65536   Excel
    ​
    ​
            //轉義字元
            //  \t    制表符
            //  \n   換行
            System.out.println("HEllo\tWorld");
            System.out.println("Hello  \nWorld");
    ​
            //-----------------------------------------------------------------------
            //布爾值擴充
            boolean flag = true;
            if (flag == true) {}      //新手
            if (true) {}              //老手
            //兩者一樣,代碼應該更為精簡一些
        }
    }      
引用類型

類,接口,數組

類型轉換

由于Java是強類型語言,是以要進行運算的時候,有時需要用到類型轉換。

低--------------------------------------------------------高

byte,short,char->int->long->float->double

(小數的優先級一定大于整數)

運算中,不同類型的資料先轉換為同一類型,再進行運算。

強制類型轉換

自動類型轉換

public class demo04 {
    public static void main(String[] args) {
        int i =128;
        /*byte b = (byte)i;*/   //記憶體溢出
        double b = i;
        //強制轉換      (類型)變量名     高--低
        // 自動轉換         低--高
    
        System.out.println(i);
        System.out.println(b);
​
        /*
        注意點:
        1. 不能對布爾值進行轉換
        2.不能把對象類型轉換為不相幹的類型
        3.把高容量轉到低容量時 ,強制轉換
        4.轉換時可能存在溢出,或者精度問題
         */
​
        System.out.println("----------------------");
        System.out.println((int)23.7);
        System.out.println((int)-45.89f);
        System.out.println("----------------------");
        char c = \'a\';
        int d = c + 1;
        System.out.println(d);
        System.out.println((char) d);
​
    }
}
​      
public class demo05 {
    public static void main(String[] args) {
        //操作比較大的數字,注意溢出問題
        //JDK7新特性,數字之間可以用下劃線分割
        int money = 100_0000_000;
        int years = 20;
        int total1 = money * years;   //溢出
        long total2 = money * years;    //預設是int,轉換之前已經存在問題
        long total3 = money * ((long)years);   //把其中一個數轉換成long類型
        System.out.println(total3);
    }
}