java基礎學習總結——基礎語法( 入門必備,純乾貨)

只爲成功找方法,不爲失敗找藉口!

標識符

關鍵字

JAVA基礎數據類型

3.1. java常量

3.2. java變量

從本質上來講,變量其實是內存裏面的一小塊區域,一個程序在運行的時候,實際上這個程序是位於內存裏面,然後纔開始運行。一個.exe文件存放在硬盤上是無法運行的,在硬盤上看到的.exe文件無非就是一個文件而已,當我們雙擊個.exe文件時,運行起來的時候實際上是整個.exe文件被放在了在內存裏面,然後操作系統找到main方法,也就是程序的入口,然後就開始執行了。

執行的過程之中,會不斷地在內存裏面分配一些區域,變量在內存裏面就是一小塊區域,變量有兩個概念,一個是變量的名字,另一個是變量的值,即這一小塊區域是有名字的,裏面裝着一個值,因此以後要想訪問這小塊區域裏面的內容就可以根據這小塊區域的名字來訪問了。因此,變量的本質就是一小塊內存區域。就變量來說,該在內存裏面分配多大的存儲空間呢?不同的變量類型分配不同大小的存儲空間,每一個變量都是屬於特定的數據類型的,聲明成不同的數據類型,它就在內存裏面分配不同的存儲空間。

變量作用域:變量的作用域只在“{ }”有效,除了這個“{ }”就沒有作用了

3.3. java變量的分類

3.4. java局部變量與成員變量

3.5. java數據類型劃分

java數據類型講解

4.1.boolean——布爾型

4.2.char——字符型

全球的文字放到計算機裏面表示全是0和1,Unicode是統一了全世界國家文字的一種編碼方式,用這樣的編碼可以把全世界國家的文字連接在一起。Unicode編碼又分爲兩種,一種是Utf-8,另一種是Utf-16。JAVA所採用的是Utf-16,每一個字符佔2個字節,任何國家的文字放到Unicode裏面都是佔2個字節。

4.3.整數類型

C語言編譯好的程序爲什麼不能移植,如把.exe文件放到Linux下是執行不了的,一個很大很大的原因在於C語言定義的變量在不同的操作系統上所佔的大小是不一樣的,聲明一個int類型的變量,在Windows下面佔32位,但放到Linux下面就有可能只佔16位,那麼這時候很可能表示的大小就不一樣了,在Windows下聲明一個很大的數,在Linux下面很可能就會溢出。因此這就是C語言爲什麼在編譯完成之後不能移植的原因。

4.4.浮點類型

4.5.基本數據類型的轉換

類型轉換測試

1publicclassTestConvert{2publicstaticvoidmain(Stringarg[]){3inti1=123;

4inti2=456;5doubled1=(i1+i2)*1.2;//系統將轉換爲double型運算6floatf1=(float)((i1+i2)*1.2);//需要加強制轉換符7byteb1=67;

8byteb2=89;9byteb3=(byte)(b1+b2);//系統將轉換爲int型運算,需要強制轉換符10System.out.println(b3);11doubled2=1e200;12floatf2=(float)d2;//會產生溢出13System.out.println(f2);14floatf3=1.23f;//必須加f15longl1=123;16longl2=30000000000L;//必須加l17floatf=l1+l2+f3;//系統將轉換爲float型計算18longl=(long)f;//強制轉換會捨去小數部分(不是四捨五入)19}20}

運算符

5.1.算術運算符(自加和自減運算符)

5.2.邏輯運算符

5.3.賦值運算符

5.4.字符串連接符

5.5.表達式

5.6.三目運算符

語句

1.1. 條件語句

if語句

 分支語句 (switch語句)

1.2. 循環語句   for循環語句

學會畫內存分析圖分析別人寫的程序,這樣就很容易分析出規律,分析出規律也就明白了別人的算法,也就很容易讀懂別人的程序。

在內存中分析result=1!+2!……+10!的算法

分析到i等於3以後,基本上已經得到規律了,這個程序要計算的就是:result = 1!+2!+3!……+10!。

由此可以看出,懂得畫內存去分析程序對讀懂別人的程序是大有裨益的。以後讀別人的程序的時候,覺得難讀懂的時候就畫內存分析。

學習別人的算法的最好的途徑是分析別人寫的程序,分析的過程結合內存分析是最好的做法。

while循環和do while循環

方法

方法執行到return語句後,這個方法的執行就結束了,方法可以有返回值,但可以不用這個返回值。方法首先要定義,然後才能調用。

1 public class TestMethod{ 2 public static void main(String args[]){3 m(); 4 m1(3); 5 m2(2,3); 6 int i = m3(4,5); 7 System.out.println(i); 8 } 9 //以下定義的都是靜態方法,靜態方法可以在main()方法裏面直接調用10 public static void m(){11 System.out.println("Hello!");12 System.out.println("孤傲蒼狼");13 }14 15 public static void m1(int i){16 if(i==5){17 return;18 }19 System.out.println(i);20 }21 22 public static void m2(inti,int j){23 System.out.println(i+j);24 }25 26 public static int m3(int i,int j){27 return i+j;28 }29 }

變量的作用域

變量的作用域只在“{ }”有效,除了這個“{ }”就沒有作用了

遞歸調用

遞歸:在一個方法內部對自身的調用就稱爲遞歸

整個方法執行在內存中執行的過程

如下圖所示:

範例:使用遞歸計算第5個斐波那契數列數

1 /*計算第5個斐波那契數列數*/ 2 /* 3 斐波那契數列特點:f(1)=1,f(2)=1,f(3)=f(1)+f(2),f(4)=(f2)+(f3)……依次類推。 4 即後一個數都是等於前兩個數的和,這樣的數列就是斐波那契數列。 5 */ 6 /* 7 使用遞歸調用的方法計算 8 */ 9public class Fab{10 public static voidmain(String args[]){11 System.out.println(f(5));12 }13 14 publicstatic int f(int n){15if(n==1||n==2){16 return 1;17}else{18 return f(n-1)+f(n-2);19 }20 }21 }

整個在內存中執行過程

如下圖所示

程序的執行過程

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