1. 程式人生 > 其它 >1月14號筆記

1月14號筆記

Java程式執行機制

編譯型、解釋型

用一個例子來解釋。有一個美國人想看中文的小說,他有兩種辦法。

一種是僱一箇中國人把這本小說直接翻譯成英文的,這種就類似編譯型。

如果美國人足夠有錢,他可以僱個翻譯直接給他翻譯這本小說,這種類似解釋型。

JAVA檔案到CLASS檔案的過程就是一個編譯的過程

JAVA結合了編譯和解釋,先編譯,然後再解釋

image-20210114135719706

浮點數

詭異的事情

float f1 = 0.1f;   //0.1
double f2 = 1.0/10;   //0.1
System.out.println(f1==f2); //結果是false
float d1 = 1231546489798798;
float d2 =
d1 + 1; System.out.println(d1==d2); //結果竟然是true

因為浮點數是有限的 離散的 舍入誤差 大約 接近但不等於的

因此,最好避免使用浮點數進行比較

字元轉換

        char c1= 'a';
        char c2= '你';

        System.out.println(c1);
        System.out.println((int)c1);

        System.out.println(c2);
        System.out.println((int)c2);

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-qKveSfiy-1610636281202)(C:\Users\大鼻子\AppData\Roaming\Typora\typora-user-images\image-20210114210915408.png)]

所有的字元本質還是數字,程式是通過Unicode表進行轉換的,比方說 97對應於’a’

而Unicode佔兩個位元組,也就是說Unicode最多有2^16=65536個數

char c3 = '\u0097'; //這樣也是表示 char c3 = 'a'

轉義字元

/t 空格

/n 換行

布林

boolean flag = true;
if(flag==true){};
if(flag){};//以上兩種表示的是一個意思,老手喜歡用下面的,精簡易讀

an flag = true;
if(flag==true){};
if(flag){};//以上兩種表示的是一個意思,老手喜歡用下面的,精簡易讀