1. 程式人生 > 其它 >第一階段 javaSE java基礎語法01

第一階段 javaSE java基礎語法01

java執行機制

C和C++是編譯型語言,java是先將java檔案預編譯成class檔案,即位元組碼檔案,介於java語言和機器語言之間,再將位元組碼檔案放入類載入器中,在位元組碼校驗器中校驗是否程式碼出錯,然後通過直譯器給作業系統解釋為機器語言

IDEA開發工具的安裝

IDE是指整合開發環境,IDEA是其中的一種,通過官網下載安裝idea,將所有軟體等下載到自己建立的程式檔案中,防止忘記,配置jdk,寫第一個HelloWorld程式,可使用psvm和sout來寫主方法和輸出語句

java基礎語法

註釋

書寫註釋是一個非常好的習慣,很多大公司都要求必須寫註釋,平時寫程式碼一定要注意規範

IDEA中註釋設定在settings-Editer-Java-Comments

java的註釋有三種:單行註釋,多行註釋,文件註釋,可在網站搜尋有趣的註釋

//單行註釋
/*多行註釋*/
/**
 *文件註釋:是有功能的	
 *@Author fengbihuoche
*/

識別符號和關鍵字

關鍵字是java系統定義的,有一些特殊作用的詞,如public,class,static等

java所有的組成部分都需要名字,類名,變數名以及方法名都被成為識別符號,識別符號注意點:

  • 所有的識別符號都應該以大寫或小寫字母,美元符($)或下劃線開始,首字元後可以使字母,美元符,下劃線或數字的任何字元組合
  • 不能使用關鍵字作為變數名或方法名
  • 識別符號是大小寫敏感的
  • 可以使用中文命名,但是一般不建議這樣去使用,也不建議使用拼音,顯得不專業

資料型別

java是強型別語言,要求變數的使用要嚴格符合規定,所有變數都必須先定義後才能使用

弱型別語言包括python等

java的資料型別分為兩大類

  • 基本資料型別(8種):分為數值型別和boolean型別,數值型別又分為整數型別,浮點型別和字元型別
  • 引用資料型別:類(字串string是一個類,是引用資料型別),介面,陣列
//八大基本資料型別
	//數值型別
		//整數型別
		int num1 = 10;//最常用,佔4個位元組範圍,包裝類為intager,用於定義int,確定取值範圍
		byte num1 = 10;//佔1個位元組範圍,包裝類為Byte
        short num3 = 10;//佔2個位元組範圍
		long num4 = 10L;//佔8個位元組範圍,Long型別要在數字後面加個L,大小寫均可,儘量用大寫
		//浮點型別
		float num5 = 3.1F;//佔4個位元組,Float型別要在數字後面價格F,大小寫均可
		double num6 = 3.1;//佔8個位元組
		//字元型別
		char num7 = "可";//佔2個位元組,只能是一個字元
        //boolean型別
        boolean num8 = true;//佔一位,只有true和false兩個值

什麼是位元組

位(bit):是計算機內部 資料儲存的最小單位,一個二進位制數是一位

位元組(byte):是計算機 資料處理 的基本單位,習慣用B表示,一個位元組等於8位

字元:是指計算機中使用的字母,數字,字和符號

1024B = 1KB

1024KB = 1M

1024M = 1G

資料型別擴充套件(面試)

整數拓展:

進位制:二進位制(以0b開頭),十進位制,八進位制(以0開頭),十六進位制(以0x開頭,每一個進位制位可寫0-9 A-F代表0-16),要求會轉換

浮點數拓展:

浮點數代表的數是有限的,離散的,舍入誤差,大約,接近但不等於的,最好完全避免使用浮點數進行比較,故銀行業務表示數字和金額使用數字工具類BigDecimal

float f = 0.1f; //0.1
double b = 1.0/10; //0.1
System.out.println(f==b); //false
    
float f1 = 212121212122212f;
float f2 = f1 + 1;
System.out.println(f1==f2); //true

字元拓展:

所有的字元本事還是數字,不同字元是使用Unicode的數字進行編碼的

char c1 = 'a';
char c2 = '中';
System.out.println((int)c1);//強制轉換,97
System.out.println((int)c2);//強制轉換20013

常見轉義字元:

\t 製表符 \n 換行 \r 回車 \\ 代表一個反斜線字元 \

\' 代表一個單引號字元

System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");

字串擴充套件:

涉及到面向物件時記憶體空間的使用

String s1 = new String("hello world");
String s2 = new String("hello world");
System.out.println(s1==s2);//false

String s3 = "hello world";
String s4 = "hello world";
System.out.println(s3==s4);//true

布林值拓展:

boolean flag = true;
if(flag){} //常見寫法

型別轉換

由於java是強型別語言,所以要進行有些運算的時候,需要用到型別轉換

型別由低到高為:byte,short,char -> int -> long -> float -> double

運算中,不同型別的資料先轉換為同一型別,然後進行運算

  • 強制型別轉換:將高型別轉換為低型別
  • 自動型別轉換:將低型別轉換為高型別

注意點:

  • 不能對布林值進行轉換
  • 不能把物件型別轉換為不相干的型別
  • 在把高容量轉換到低容量的時候,強制轉換
  • 轉換的時候可能存在記憶體溢位(佔記憶體較高的型別轉換為佔記憶體較低的型別),或者丟失精度(轉換浮點數的時候)

常見問題:操作比較大的數的時候,注意溢位問題,如下:

int money = 1_000_000_000; //JDK新特性,數字之間可以用下劃線分割,不影響輸出
int years = 20;
int total = money*years; //造成記憶體溢位
long total2 = money*years; //預設是int,轉換之前已經存在問題了

long total3 = money*((long)years); //先把一個數轉換為long,問題就解決了