W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
上篇文章中我們學習了JAVA底層的運行機制與深入剖析以及解釋其中JAVA基礎(chǔ)代碼的含義
本篇文章將JAVA基礎(chǔ)Ⅱ全面剖析解釋,因為JAVA基礎(chǔ)非常重要,務(wù)必要牢記知識點?。。?/p>
JAVA采用unicode編碼
1.JAVA代碼都定義在類中,類由class來定義,注意:區(qū)分 public class 和 class
2.代碼嚴格區(qū)分大小寫,如:main 和 Main 是不一樣的
3.JAVA中的標識符與關(guān)鍵字以及注釋
4.main方法的作用:程序的入口,保證程序的獨立運行,被JVM(JAVA虛擬機)調(diào)用
5.一個Java文件中只能有一個公共類,并且該公共類的類名必須和文件名相同。
注釋要養(yǎng)成習慣: 在學習中或工作中,只要是寫代碼就一定要加以注釋,這是修煉成為程序員的基本功之二
注釋例子:
public class HelloWorld {
/* 這是第一個Java程序
*它將打印Hello World
* 這是一個多行注釋的示例
*/
public static void main(String []args){
// 這是單行注釋的示例
/* 這個也是單行注釋的示例 */
System.out.println("Hello World");
}
}
## 2.JAVA語言分隔符
1.分號 ;
語句的分割,表示一句話結(jié)束,好比咱們使用的句號
2.花括號 { }
表示一個代碼塊,是一個整體,花括號要一起使用
3.方括號 [ ]
定義數(shù)組和訪問數(shù)組元素時使用
4.圓括號 ( )
使用很廣泛,具體用到細講
5.圓點 .
類/對象 訪問它的成員(字段,方法)時使用等
6.空格
分割一條語句的不同部分,空格的次數(shù)不限制
下面列出了Java保留字,(注):這些保留字不能用于常量、變量、任何標識符的名稱
| 關(guān)鍵字 | 描述 |
| :-------- | --------:|
| class | 定義類 |
| public | 表示共有屬性或者方法 |
| private | 表示私有字段,或者方法等,只能從類內(nèi)部訪問 |
| protected | 表示字段只能通過類或者其子類訪問子類或者在同一個包內(nèi)的其他類 |
| abstract | 抽象方法,抽象類的修飾符 |
| extends | 表示一個類是另一個類的子類 |
| super | 表示基類 |
| interface | 接口,一種抽象的類型,僅有方法和常量的定義 |
| implements | 表示一個類實現(xiàn)了接口 |
| static | 表示在類級別定義,表示靜態(tài)的,所有實例共享的|
| this | 表示調(diào)用當前實例或者調(diào)用另一個構(gòu)造函數(shù) |
| void | 標記方法不返回任何值 |
| return | 方法返回值 |
| new | 分配新的類實例 |
| import | 導(dǎo)入類 |
| package | 一系列相關(guān)類組成一個包 |
| goto | 作為保留關(guān)鍵字,未使用 |
| const | 作為保留關(guān)鍵字,未使用 |
| final | 表示一個值在初始化之后就不能再改變了表示方法不能被重寫,或者一個類不能有子類 |
| if | 條件語句 |
| else | if條件不成立時執(zhí)行的分支 |
| continue | 不執(zhí)行循環(huán)體剩余部分 |
| while | while循環(huán) |
| do | 循環(huán)語句,循環(huán)體至少會執(zhí)行一次 |
| for | for循環(huán)語句 |
| switch | 選擇語句 |
| case | switch語句的一個條件 |
| default | switch語句中的默認分支 |
| try | 表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執(zhí)行finally中的代碼 |
| catch | 和try搭配撲捉異常信息 |
| finally | 為了完成執(zhí)行的代碼而設(shè)計的,主要是為了程序的健壯性和完整性,無論有沒有異常發(fā)生都執(zhí)行代碼 |
| throw | 拋出異常 |
| throws | 定義方法可能拋出的異常 |
| instanceof | 測試一個對象是否是某個類的實例 |
| transient | 修飾不要序列化的字段 |
| volatile | 標記字段可能會被多個線程同時訪問,而不做同步 |
| synchronized | 表示同一時間只能由一個線程訪問的代碼塊 |
| assert | 斷言條件是否滿足 |
| boolean | 布爾數(shù)據(jù)類型 |
| byte | 8-bit 有符號數(shù)據(jù)類型 |
| char | 16-bit Unicode字符數(shù)據(jù)類型 |
| short | 16位數(shù)字 |
| int | 32位整型數(shù) |
| float | 32-bit單精度浮點數(shù) |
| double | 64-bit雙精度浮點數(shù) |
| long | 64位整型數(shù) |
| strictfp | 浮點數(shù)比較使用嚴格的規(guī)則 |
| enum | 枚舉類型 |
| assert | 斷言條件是否滿足 |
常量:程序中固定不變化的值,例如:整數(shù)1,2,3,小數(shù)3.14,false,true等
變量的概念:占據(jù)著內(nèi)存中的某一個存儲區(qū)域
該區(qū)域有自己的名稱(變量名)和類型(數(shù)據(jù)類型);
該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化;
為什么要定義變量 ?定義變量:用來不斷的存放同一類型的常量,并可以重復(fù)使用
使用變量注意:變量的作用范圍, 初始化值
定義變量的格式:數(shù)據(jù)類型 變量名 = 初始化值
注:格式是固定的,記住格式,以不變應(yīng)萬變
作用范圍:定義開始到定義它的代碼塊結(jié)束
同一范圍內(nèi),不允許多個個局部變量命名沖突
如何聲明數(shù)據(jù)類型變量:
聲明類型三種格式 變量名首字母小寫,多個單詞之間首字母大寫
1.聲明變量 數(shù)據(jù)類型 變量名; 如:int a;boolean flag;
2.聲明同時給變量賦值 數(shù)據(jù)類型 變量名 = 值;如:char b = ‘中’;
3.給已經(jīng)聲明過得變量賦值 變量名 = 值;如:falg = true;
變量的起名::有時候很難給變量取一個好的名字,于是有的程序員將變量名命名為類型名
例如: String string; 或縮寫,String str ,取變量名最好給有意義的名稱,或名稱短語。
String username; String password; double pi = 3.14;
成員變量:在方法體外,類體內(nèi)聲明的變量,又稱字段或全局變量;成員變量的作用域是整個類中
成員變量就是在方法外定義的,相當于成員變量是定義在類的里面
局部變量:不是聲明在類體括號里面的變量,局部變量使用前必須初始化值,局部變量沒有默認初始化值
局部變量就是在方法或方法塊內(nèi)定義的
局部變量的作用域是從定義開始到定義它的代碼塊結(jié)束;
按數(shù)據(jù)類型劃分為:數(shù)據(jù)類型變量,引用數(shù)據(jù)類型變量
| 數(shù)據(jù)類型 | 大小/位(B) 1字節(jié) = 8位| 數(shù)據(jù)取值范圍|
| :-------- | --------:| | --------:|
| boolean | 1 | true / false |
| byte | 8 | [-128,127] |
| short | 16 | [-215,215-1] |
| char | 16 | [0,216-1] |
| int | 32 | [-231,231-1] |
| float | 32| [-3.4E38(-3.41038),3.4E38(-1.71030] |
| double | 64 | [-1.7E308(-1.710308),1.7E308(-1.710308] |
| long | 64 | [-263,263-1] |
布爾型boolean:boolean類型通常用于邏輯運算和程序流程控制。
boolean 類型數(shù)據(jù)只允許取值true 或 false(不可以使用0 或非0的整數(shù)來代替true和false,區(qū)分于C語言)
整數(shù)類型(byte、short、int、long),JAVA語言整型常量的四種表示形式:
Int類型的默認值是0;
二進制整數(shù),0b或0B開頭,如:int a = 0B110;
十進制整數(shù),如:int a = 17;
八進制整數(shù),要求以0開頭,如 int a = 012;
十六進制整數(shù),要求0X或0x開頭,如int a = 0x12;
浮點類型(float、double):JAVA浮點類型常量有兩種表示方式:
十進制形式: 例如:3.14 ,168.0, .618,科學計數(shù)法形式: 例如:3.14e2, 3.14E2, 1000E-2
Java浮點型常量默認是double,則要聲明一個常量為float型,則需在常量后加上f 或 F
如:double pi = 3.14;//正確 float pi = 3.14F;//必須加上f,或轉(zhuǎn)型 float pi3 = (float)3.14;
(注):double和float并不能表示一個精確的數(shù)字;
字符型char: char型數(shù)據(jù)用來表示通常意義上得“字符”,char類型默認是為空:
char占2字節(jié),的范圍是[0,65535],但是前256個表示特殊字符;字符常量為 用單引號括起來的單個字符
java字符采用Unicode編碼,可用十六進制編碼形式表示
引用數(shù)據(jù)類型(String):String不屬于基本數(shù)據(jù)類型,String是一個類,表示字符串
所謂字符串,就是一串字符,也就是多個字符連接在一起,字符串都得使用 "" 括起來的,連接字符串使用 + ;
例如
String str; //聲明一個引用數(shù)據(jù)類型
str = "這是一個引用數(shù)據(jù)類型"; 或 String str = "這是一個引用數(shù)據(jù)類型";
String s = "目標" + "產(chǎn)生" + "動力"; //字符串的連接采用 + 符號
System.out.println(s);//輸出結(jié)果,目標產(chǎn)生動力
運算符是一種特殊符號,用以表示數(shù)據(jù)的運算、賦值和比較等共分以下幾種:
算術(shù)運算符:++是前綴先對此變量加1自增1,在執(zhí)行其他操作++a,后綴先執(zhí)行其他操作,在對此變量加1;b++
| 運算符 /運算 | 例子| 結(jié)果|
| :-------- | --------:| | --------:|
| + 正號 | +6 | 6 |
| - 負號| a = 5;-a; | -4|
| + 加 | 5 + 5 | 10 |
| - 減 | 3 - 2 | 1 |
| 乘| 3 2 | 6 |
| / 除 | 5 / 5| [ 1 |
| % 取余 | 5 % 5 | 0 |
| ++ 自增(前) | a = 2;b = ++a; | a = 3;b = 3; |
| ++ 自增(后) | a = 2;b = a++; | a = 3;b = 2; |
| -- 自減(前) | a = 2;b = --a; | a = 1;b = 1; |
| -- 自減(后) | a = 2;b = a--; | a = 1;b = 2 |
| + 字符串相加 | " He"+"llo" | "Hello" |
賦值運算符:
*= ,+=,-=,=, /=,%=**
int a = 3; a += 5;等同于運算a = a + 5;
邏輯運算符:
邏輯運算符用于boolean類型,結(jié)果總是boolean類型:
&與,必須兩個都為真才是真,| 或,一真一假就是真
^異或,//不同為true,相同為flase
移位運算符
計算機存儲數(shù)據(jù)基本單位//字節(jié):byte,一字節(jié)=8位=8個0或1表示(bit比特)1位=0和1;
計算機二進制0和1,逢二進一,優(yōu)勢:字節(jié)少數(shù)據(jù)運算速度快,
八進制逢八進一以0開頭 ,十進制0到9,逢十進一,十六進制逢十六進一;
補碼:計算機內(nèi)二進制數(shù)值是以補碼形式表示,一個正數(shù)的補碼和其原碼形式是一樣的,但在負數(shù)上有去區(qū)別 , 負數(shù)的補碼& 的二進制形式,按位取反在加1,
如正數(shù)10的二進制位一字節(jié)0000 1010 存入計算機為補碼
-10的補碼是絕對值是10,絕對值的表示方式0000 1010,取反為1111 0101再加1為1111 0110是-10的補碼
數(shù)學運算10-2=8;計算運算是還原成二進制:10+(-2)=8;
十的二進制是0000 1010,-2的二進制是2的絕對值(0000 0010)的二進制,
按位取反=(1111 1101)再加1=(1111 1110);
按位相加0000 1010 + 1111 1110 = 0000 1000 再還原成十進制=8;
位運算符是對兩個操作數(shù)中的每一個二進制位都進行運算:
1.按位取反如:按位還原成二進制是01001111,取反后10110000,還原十進制11001011
2.按位與&,3.按位或|,4.按位異或^
位移運算符 左移:a<<b將二進制形式的a逐位左移b位,最低位空出的b位補0;
代碼如正數(shù)100,還原成二進制是00000000 00000000 00000000 01100100
100<<3左移三位:00000000 00000000 00000011 00100000
100>>3帶符號右移3位:00000000 00000000 00000000 00001100
100>>>3無符號右移3位:00000000 00000000 00000000 00001100
代碼如負100:還原成二進制是11111111 11111111 11111111 10011100
-100<<左移3位:11111111 11111111 11111100 11100000
-100>>3帶符號位右移3位:11111111 11111111 11111111 11110011
-100>>>3無符號右移3位:00011111 11111111 11111111 11110011
計算機就是按位移來計算數(shù)的,面試題用最快速度計算出3*8,就是要位移來計算是最快的
8移多少位來計算24;
自動類型轉(zhuǎn)換:容量小的自動轉(zhuǎn)換容量大的數(shù)據(jù)類型,byte,short,int,三者不會互相轉(zhuǎn)換,
如代碼:byte b=10; float f=b;//把一個字節(jié)類型變量賦給浮點型變量;
強制類型轉(zhuǎn)換:容量大的轉(zhuǎn)換容量小的數(shù)據(jù)類型;
如代碼: long g=1000L; int i=(int)g; //把長整形賦給整形變量
char c=‘a(chǎn)’; int ic=c; 輸出結(jié)果為ASCII碼a為97;
| 符號 | 符號含義|
| :-------- | --------:|
| \n | 換行 |
| \r | 回車符在當前第一個 |
| \t | 制表符 |
| \t | 水平制表符 |
| \' | 輸出單引號 |
| \“” | 輸出雙引號 |
| \ | 輸出斜杠 |
| \ddd | 八進制字符(ddd) |
| \uxxxx | 16進制Unicode字符 (xxxx) |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: