1.代碼書寫規則:
關鍵字:必須小寫
標識符:
由26個英文字母大小寫,數字0~9,符號_ $組成
(符號一般用於公司統一規範名稱)
不能以數字開頭
不能使用關鍵字(用關鍵字名字的大寫形式也不建議)
2.代碼書寫規範:
類名首字母一般大寫,後面每個單詞首字母也大寫(駝峯命名法)
3.註釋
單行註釋 //
多行註釋 /* */
多行註釋不能嵌套多行註釋
註釋的另一個作用:調試縮小代碼錯誤範圍
註釋存在源文件中,但在編譯的字節碼class文件中註釋不會被編譯進去。
java特有註釋:
文檔註釋
/**
文檔註釋
*/
註釋應用:
開發 或者 面試上機:要寫註釋
學習當中:第一步寫多行註釋,需求,思路,步驟:
/*
需求:練習一個hello world程序。
思路(通用的,不分語言):
1.定義一個類。因爲java程序都定義在類中,類的形式其實就是一個字節碼文件的最終體現
2. 定義一個主函數。爲了讓類可以獨立運行
3. 輸出語句
步驟(根據具體語言,用不同的表現形式寫出來):
1.用class關鍵字來完成類的定義,起一個閱讀性強的類名
2.主函數:public static void main(String[] agrs) 這是固定格式,JVM認識
3.使用輸出語句:System.out.println("Hello Java!");
代碼僅僅是思想的一種體現形式
*/
4.常量,變量:
(1)基本常量(6種):
1.整數常量(4個字節)
2.小數常量
3.布爾(boolean)常量:true false
4.字符常量:將一個數字字母或者符號 用單引號 ' ' 標識
5.字符串常量:將一個或多個字符用雙引號 " " 標識
6.null常量:只有一個數值:null
"" 空字符串
null: 空值(串都給扔了,啥也沒有)
整數:表現形式
二進制(Bin,Binary system):0,1 滿2進1
八進制(Oct,Octal number system):0~7 滿8進1,用0開頭
十進制(Dec,Decimal system):0~9 滿10進1
十六進制(Hex,Hexadecimal ):0~9,A~F 滿16進1,用0x開頭
數據最小單元:byte 字節(一個字節等於8個bit位(二進制位))
1byte = 8bit
計算機中:1k = 1024
生活中(U盤等):1k = 1000
0101 1101
三個一組 轉換成對應十進制數,形成的數爲八進制數
四個一組 轉換成對應十進制數,形成的數爲十六進制數
負數的二進制形式:(二進制最高位是1)
是這個數的正數的二進制取反,加1。
(2)變量:
內存中的一個存儲區域
該區域有自己的名字(變量名)和類型(數據類型)
該區域的數據可以在同一類型範圍內不斷變化
作用範圍:
一對 { } 之內
格式:
數據類型 變量名 = 初始化值;
定義變量時必須進行初始化。
細分:
數據類型:
基本數據類型:
數值型:
整數類型(byte(1),short(2),int(4)默認,long(8))
浮點類型(單精度float(4),雙精度double(8)默認)
字符型:char(2),可以放中文,一箇中文佔兩個字節
布爾型:boolean
引用數據類型:
類:class
數組:[]
接口:interface
3.強制類型轉換中 數據溢出計算:
正向溢出:byte b = (byte)128; b=128 - 2^8 = -128
反向溢出:short s = (short)-32770; s=2^16 -32770= 32766
有一種情況不需要強轉,會默認進行無條件強轉:
當操作數都是默認類型時,而且單個運算數值都沒有超過類型範圍,但是運算後的結果超出類型範圍時,編譯檢查不會報錯,結果會自動強轉,造成精度丟失,如:
int x = 0, y = 2147483647; //y = Integer.MAX_VALUE;
x = y + 1; // x = - 2147483648
4.類型轉換:
不同類型的數據是不能一起運算的。
不過 數值型數據 存在特殊情況,通過類型轉換來運算:
自動類型轉換(隱式):以佔用內存大的類型爲主,自動提升。
特別的:
如果操作數有long,結果就是long;
如果操作數有float,結果就是float;
如果操作數有double,結果就是double。
int x = 3;
byte b =5;
x = x + b; //正確
b = b + 4; //左邊爲byte類型,右邊爲int類型,大內寸轉小內存,可能會丟失精度,此時需要強制類型轉換。
強制類型轉換(顯示):慎用,可能丟失精度。
b = (byte)(b + 4)
5.字符類型運算:
字符型(2個字節)和 int型(4個字節)運算: 字符型數據自動提升爲 int型(對應的ASCII編碼),然後進行運算。
中文編碼表 GB2312 國標碼 6000多漢字
GBK 國標擴展碼 (目前通用) 2萬多漢字
GBK18030
常用ASCII碼:
A 65
a 97
0 48
JDK內置unicode國際標準碼錶,包括ASCII等。
面試題:
byte b = 4; //編譯器自動判斷int型4是否在byte範圍內,如果在則進行一次默認強轉。
byte b1 = 3;
byte b2 = 7;
b = b1 + b2; //編譯出現丟失精度錯誤,b1和b2是非默認型變量,不能進行檢查判斷後面的byte型值和是否在byte範圍內,以及後續的默認強轉賦值操作。
//另一種情況不會報錯,即當b1,b2是默認型變量(int,double...):
int b = 4;
int b1 = 3;
int b2 = 7;
b = b1 + b2; //和如果超出了int範圍,默認強轉,不報錯。