個人主頁:User_芊芊君子
🎉歡迎大家點贊👍評論📝收藏?文章
文章目錄:
- 1.Java中的注釋
- 1.1.基本規則
- 1.2.注釋規范
- 2.標識符
- 3.關鍵字
- 4.字面常量
- 5.數據類型
- 6.變量
- 6.1變量的概念
- 6.2語法
- 6.3整型變量
- 6.3.1整型變量
- 6.3.2長整型變量
- 6.3.3短整型變量
- 6.3.4字節型變量
- 6.4浮點型變量
- 6.4.1雙精度浮點型
- 6.4.2單精度浮點型
- 6.5字符型變量
- 6.6布爾型變量
- 6.7類型轉換
- 6.7.1?動類型轉換(隱式)
- 6.7.2強制類型轉換(顯式)
- 6.8類型提升
- 6.8字符串類型
1.Java中的注釋
和C語言一樣,注釋的作用是為了讓代碼更容易被理解,雖然不被編譯運行,但卻不可或缺。為了方便你我他,請重視注釋
1.1.基本規則
- 單行注釋://注釋內容
- 多行注釋:/*注釋內容 */
- 文檔注釋:/** 文檔注釋 */(常見于方法和類之上描述方法和類的作用),可以被javadoc?具解
析,?成?套以???件形式體現的程序說明?檔
注:多行注釋不能嵌套使用
1.2.注釋規范
- 內容準確: 注釋內容要和代碼?致, 匹配, 并在代碼修改時及時更新
- 篇幅合理: 注釋既不應該太精簡, 也不應該?篇?論
- 使?中?: ?般中國公司都要求使?中?寫注釋, 外企另當別論
- 積極向上: 注釋中不要包含負能量(例如 領導 SB 等)
2.標識符
標識符是程序中用戶給類名,方法名,或者變量所取的名字。
- 標識符中可以包含:
字母,數字,下劃線及$符號
(合法但不合理)…- 注意:標識符不能以
數字
開頭,也不可能是關鍵字
,且嚴格區分大小寫
- 類名:每個單詞的首字母大寫(大駝峰)
- 方法名:首字母小寫,后面每個單詞的首字母大寫(小駝峰)
- 變量名:與方法名規則相同
3.關鍵字
我們在寫程序時可以發現,public
、class
以及static
等顏?會發?變化,將這些具有特殊含義的標識符稱為關鍵字
。即:關鍵字是由Java語?提前定義好的,有特殊含義的標識符,或者保留字
4.字面常量
public class Test {public static void main(String[] args) {System.out.println("Hello World");}
}
在這串代碼中,“Hello World
”就是字面常量。
常量即程序運行期間,固定不變的量. eg:?個禮拜七天,?年12個?等。
public class Test {public static void main(String[] args) {System.out.println("Hello World");System.out.println(100);System.out.println(3.14);System.out.println('A');System.out.println(true);System.out.println(false);}
}
其中,100,3.14,‘A’,true/false都是常量,將其稱為字面常量
- 字符串常量:由 “” 括起來的,?如"12345"、“hello”、“你好”。
- 整型常量:程序中直接寫的數字(注意沒有?數點),?如:100、1000
- 浮點數常量:程序中直接寫的?數,?如:3.14、0.49
- 字符常量:由 單引號 括起來的當個字符,?如:‘A’、‘1’
- 布爾常量:只有兩種true和false
字符串、整型、浮點型、字符型以及布爾型,在Java中都稱為數據類型。
5.數據類型
Java中數據類型分為兩類:基本數據類型
和引用數據類型
。
基本數據類型有四類八種:
- 四類:整型,浮點型,字符型,及布爾型
- 八種:
注:
- 不論是在16位系統還是32位系統,int都占4個字節,long都占8個字節
- 整型和浮點型都是帶有符號的
- 整型默認是int 型,浮點型默認是double
- 字符串屬于引用類型
6.變量
6.1變量的概念
在Java中,經常改變的量,稱為變量,數據類型就是用來定義不同種類的變量的
6.2語法
數據類型 變量名 = 初始值;
public class Test {public static void main(String[] args) {int a = 10;//變量a,也叫標識符double b =3.14;char c = 'A';boolean d = true;System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);a = 100;//和C語言引用,這里是將100賦值給aSystem.out.println(a);int a1 = 10, a2 = 20, a3= 30;//一行可以定義多個相同類型的變量System.out.println(a1);System.out.println(a2);System.out.println(3);}
}
6.3整型變量
6.3.1整型變量
public class Test {public static void main(String[] args) {//定義方法一:定義時給出初始值int a = 10;System.out.println(a);//定義方法二:賦值(使用前沒有賦值的話會報錯)int b;b = 20;System.out.println(b);//int型變量所能表示的范圍:System.out.println(Integer.MIN_VALUE);System.out.println(Integer.MAX_VALUE);//賦值不能超過int范圍}
}
int的包裝類型為Integer
6.3.2長整型變量
public class Test {public static void main(String[] args) {int a = 10;long b = 10;//為了區分int和long類型,一般long類型變量的初始值后加上Llong c = 10L;}
}
注:
- ?整型變量的初始值后加L或者l,推薦加L
- ?整型不論在那個系統下都占8個字節
- ?整型的表?范圍為:-2^63 ~ (2^63)-1
- long的包裝類型為Long
6.3.3短整型變量
public class Test {public static void main(String[] args) {short a = 10;System.out.println(a);//范圍:System.out.println(Short.MIN_VALUE);System.out.println(Short.MAX_VALUE);}
}
注意事項:
- short在任何系統下都占2個字節
- short的表?范圍為:-32768 ~ 32767
- 使?時注意不要超過范圍(?般使??較少)
- short的包裝類型為Short
6.3.4字節型變量
public class Test {public static void main(String[] args) {byte a = 10;System.out.println(a);// byte型變量所能表?的范圍:System.out.println(Byte.MIN_VALUE);System.out.println(Byte.MAX_VALUE);}
}
注意事項:
- byte在任何系統下都占1個字節
- byte的范圍是:-128 ~ 127
- 字節的包裝類型為Byte
6.4浮點型變量
6.4.1雙精度浮點型
public class Test {public static void main(String[] args) {double a = 3.14;System.out.println(a);int b = 1;int c = 2;System.out.println(b / c);//在 Java 中, int 除以 int 的值仍然是 int(會直接舍棄?數部分)double m = 1.0;double n = 2.0;System.out.println(m / n);//輸出0.5double x = 1.1;System.out.println(x*x);//輸出1.2100000000000002}
}
注意事項:
- double在任何系統下都占8個字節
- 浮點數與整數在內存中的存儲?式不同,不能單純使?的形式來計算
- double的包裝類型為Double
- double 類型的內存布局遵守 IEEE 754 標準(和C語??樣), 嘗試使?有限的內存空間表?可能?限的?數, 勢必會存在?定的精度誤差,因此浮點數是個近似值,并不是精確值。
6.4.2單精度浮點型
public class Test {public static void main(String[] args) {float num = 1.0f;System.out.println(num);}
}
在Java中占4個字節, 不常使用
6.5字符型變量
public class Test {public static void main(String[] args) {char c1 = 'A';char c2 = '1';System.out.println(c1);System.out.println(c2);char c3 = '乾';System.out.println(c3);}
}
注意事項:
- Java 中使? 單引號 + 單個字? 的形式表?字符字?值.
- 計算機中的字符本質上是?個整數. 在 C 語?中使? ASCII 表?字符, ? Java 中使? Unicode 表?字符. 因此?個字符占?兩個字節, 表?的字符種類更多, 包括中?.
- char的包裝類型為Character
6.6布爾型變量
布爾類型常?來表?真假
public class Test {public static void main(String[] args) {boolean a = true;//System.out.println(a);a = false;System.out.println(a);}
}
注意事項:
- boolean 類型的變量只有兩種取值, true 表?真, false 表?假.
- Java 的 boolean 類型和 int 不能相互轉換, 不存在 1 表? true, 0 表? false 這樣的?法.
6.7類型轉換
Java 作為?個強類型編程語?, 當不同類型之間的變量相互賦值的時候, 會有教嚴格的校驗.
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;a = b;//編譯失敗}
}
在Java中,當參與運算數據類型不?致時,就會進?類型轉換。Java中類型轉換主要分為兩類:
?動類型轉換(隱式)
和強制類型轉換(顯式)
。
6.7.1?動類型轉換(隱式)
?動類型轉換:代碼不需要經過任何處理,在代碼編譯時,編譯器會?動進?處理。
特點
:數據范圍?的轉為數據范圍?的時會?動進?。
public class Test {public static void main(String[] args) {System.out.println(1024);//默認intSystem.out.println(3.14);//默認doubleint a = 100;long b = 10L;b = a;//int 類型的值?動轉換為了long類型float m =3.14F;double n = 5.12;n = m;//float 類型的值 ?動轉換為了double 類型}
}
6.7.2強制類型轉換(顯式)
強制類型轉換:當進?操作時,代碼需要經過?定的格式處理,不能?動完成。特點:數據范圍?的到數據范圍?的。
```java
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;//int--long,數據范圍由小到大,隱式轉換a = (int)b;//long--int, 數據范圍由?到?,需要強轉,否則編譯失敗float f = 3.14F;double d = 1.21;d = f;// float-->double,數據范圍由?到?,隱式轉換f = (float)d;// double-->float, 數據范圍由?到?,需要強轉,否則編譯失敗byte m = 100;// 100默認為int,沒有超過byte范圍,隱式轉換byte n = (byte)200;// 200默認為int,超過byte范圍,需要顯?轉換,否則報錯}
}
注意事項:
- 不同數字類型的變量之間賦值, 表?范圍更?的類型能隱式轉換成范圍較?的類型
- 如果需要把范圍?的類型賦值給范圍?的, 需要強制類型轉換, 但是
可能精度丟失
- 將?個字?值常量進?賦值的時候, Java 會?動針對數字范圍進?檢查
- 強制類型轉換不?定能成功,不相?的類型不能互相轉換
6.8類型提升
不同類型的數據之間相互運算時,數據類型?的會被提升到數據類型?的。
int被提升為long
public class Test {public static void main(String[] args) {int a = 10;long b = 20;int c = a + b;//編譯出錯: a + b==》int + long--> long + long 賦值給int時會丟失數據long d = a + b;// 編譯成功:a + b==>int + long--->long + long 賦值給long}
}
byte與byte之間運算
public class Test {public static void main(String[] args) {byte a = 10;byte b = 20;//byte c = a + b;//編譯錯誤byte d = (byte)(a + b);//正確書寫System.out.println(d);}
}
結論:
byte 和 byte 都是相同類型, 但是出現編譯報錯. 原因是, 雖然 a 和 b 都是 byte,但是計算 a + b會先將 a 和 b 都提升成 int, 再進?計算
, 得到的結果也是 int, 這是賦給 c, 就會出現上述錯誤.
由于計算機的 CPU通常是按照 4 個字節為單位從內存中讀寫數據. 為了硬件上實現?便,諸如 byte 和short 這種低于 4 個字節的類型, 會先提升成int
, 再參與計算.
6.8字符串類型
public class Test {public static void main(String[] args) {String s1 = " hello";String s2 = " world";System.out.println(s1);System.out.println(s2);System.out.println(s1+s2);//將s1和s2拼接而不是進行計算}
}
- int轉String
public class Test {public static void main(String[] args) {int num = 10;String str1 = num + "";//方法一String str2 = String.valueOf(num);//方法二}
}
- String轉int
public class Test {public static void main(String[] args) {String str = "100";int num =Integer.parseInt(str);}
}