溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java基本語法總結(jié)

發(fā)布時(shí)間:2021-09-09 11:42:08 來源:億速云 閱讀:129 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“Java基本語法總結(jié)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

標(biāo)識(shí)符
概念
Java對(duì)各種變量,方法和類等要素命名時(shí)使用的字符序列稱為標(biāo)識(shí)符
規(guī)則
1.標(biāo)識(shí)符由字母,下劃線,美元符或數(shù)字組成
2.標(biāo)識(shí)符應(yīng)由字母,下劃線,美元符開頭
3.Java標(biāo)識(shí)符大小寫敏感,長度沒有限制
注:Java標(biāo)識(shí)符要見名知意,且不能與關(guān)鍵字重名
關(guān)鍵字
概念
Java中一些賦以特定含義,擁有特殊用途的字符串叫做關(guān)鍵字,所有的Java關(guān)鍵字都是小寫英文,關(guān)鍵字大寫后不再被當(dāng)作關(guān)鍵字。
關(guān)鍵字的分類
用于控制訪問相關(guān)4個(gè):public(公共的)、protected(受保護(hù)的,同一個(gè)包中的其它類及子類可以訪問。)、 缺省的、 private(私有的,本類可以訪問)
修飾符與包及類之間的關(guān)系以及訪問關(guān)系:
public  protected   缺省  private
本類  可以  可以  可以  可以
同包子類    可以  可以  可以  不可以
同包非子類   可以  可以  可以  不可以
不同包子類   可以  可以  不可以 不可以
不同包且非子類 可以  不可以 不可以 不可以
類、接口、抽象類相關(guān)、實(shí)例化對(duì)象相關(guān)6個(gè):abstract(抽象的)class(定義類)、interface(定義接口)implements(實(shí)現(xiàn))、extends(繼承)new(創(chuàng)建新對(duì)象)
程序控制相關(guān)12個(gè):if(如果)、else(否則) 、instanceof(判斷一個(gè)對(duì)象是否是某個(gè)類的實(shí)例)switch(開關(guān))、case(switch語句的一個(gè)條件)、break(跳出循環(huán)/跳出switch語句塊)、default(switch語句的默認(rèn)分支,當(dāng)所有的case都不滿足條件時(shí)會(huì)執(zhí)行)for(for循環(huán)語句)、do(循環(huán)語句,循環(huán)體至少會(huì)被執(zhí)行一次)、while(當(dāng)…時(shí))、continue(結(jié)束本次循環(huán),繼續(xù)下一次循環(huán))return(返回…,用于跳出方法)、
修飾方法,變量方法相關(guān)8個(gè):static(靜態(tài)的)、final(最終的不可被改變的)、const(const是Java預(yù)留關(guān)鍵字,用于后期擴(kuò)展用,用法跟final相似,不常用)native(表示方法用非java代碼實(shí)現(xiàn))synchronized(線程同步的)transient(修飾不要序列化的字段)volatile(標(biāo)記字段可能會(huì)被多個(gè)線程同時(shí)訪問)strictfp(嚴(yán)格的/精準(zhǔn)的)
異常處理相關(guān)5個(gè):try(捕獲異常)、catch(處理異常)、finally(有無異常都會(huì)執(zhí)行)throw(拋出一個(gè)異常對(duì)象)、throws(聲明一個(gè)方法可能拋出異常)
包相關(guān)2個(gè):import(引入包)package(定義包)
數(shù)據(jù)類型相關(guān)8個(gè):8種基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean
變量引用相關(guān)3個(gè):super(調(diào)用父類的方法/構(gòu)造函數(shù)/成員變量)this(表示調(diào)用當(dāng)前實(shí)例的成員變量或方法/調(diào)用另一個(gè)重載的構(gòu)造函數(shù))void(沒有返回值)
其他相關(guān)2個(gè):assert(斷言條件是否滿足,滿足則繼續(xù)向下執(zhí)行,不滿足則拋出異常終止執(zhí)行)、enum(枚舉類型)
保留字:goto const false true。
常量
Java的常量值用不同的數(shù)據(jù)類型字符串表示,
比如:整數(shù)型:123 ;字符常量 ‘a(chǎn)’ ;邏輯常量:true;字符串常量:“Hello World”。
變量
Java變量是程序中最基本的存儲(chǔ)單元,其要素包括變量名,變量類型和作用域。
Java中每一個(gè)變量都屬于特定的數(shù)據(jù)類型,在使用前必須申明變量類型:
int i = 1;
float f = 12.3f; //注意float a = (float)1.3;或者float a = 1.3f;(f或F都可以不區(qū)分大小寫)
double d=1.3; //注意和單精度浮點(diǎn)數(shù)float區(qū)分
String name ="hello world";
變量的分類
按聲明位置劃分
局部變量:在方法或者語句塊內(nèi)部定義的變量
成員變量:在方法的外部,類的內(nèi)部定義的變量
所屬數(shù)據(jù)類型劃分
基本數(shù)據(jù)類型變量
引用數(shù)據(jù)類型變量
局部變量和成員變量
public class Test{
public int i;//成員變量
public void method(){
int j;//局部變量 局部變量不允許使用訪問修飾符修飾
}}
基本數(shù)據(jù)類型的轉(zhuǎn)換
boolean類型不可轉(zhuǎn)換為其他的數(shù)據(jù)類型
字符型,浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算中相互轉(zhuǎn)換要準(zhǔn)守如下規(guī)則
容量小的類型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型:
byte,char,short > int > long > float > double
byte,char,short不會(huì)相互轉(zhuǎn)換,他們?cè)谟?jì)算式先轉(zhuǎn)換成int類型
容量大的類型轉(zhuǎn)換成容量曉得類型要加上強(qiáng)制轉(zhuǎn)換符,可能會(huì)造成精度降低或者溢出
public class TestConvert {
public static void main(String arg[]) {
int i1 = 123;
int i2 = 456;
double d1 = (i1+i2)1.2;//系統(tǒng)將轉(zhuǎn)換為double型運(yùn)算 因?yàn)樾〉念愋蜁?huì)自動(dòng)轉(zhuǎn)換為大的數(shù)據(jù)類型 1.2 默認(rèn)是double類型
float f1 = (float)((i1+i2)
1.2);//需要加強(qiáng)制轉(zhuǎn)換符 (i1+i2)1.2是double類型,如果用float接受 需要使用強(qiáng)制轉(zhuǎn)換因?yàn)?double類型大于float
byte b1 = 67;
byte b2 = 89;
byte b3 = (byte)(b1+b2);//系統(tǒng)將轉(zhuǎn)換為int型運(yùn)算,需要強(qiáng)制轉(zhuǎn)換符
System.out.println(b3);
double d2 = 1e200;
float f2 = (float)d2;//會(huì)產(chǎn)生溢出
System.out.println(f2);
float f3 = 1.23f;//必須加f
long l1 = 123;
long l2 = 30000000000L;//必須加l
float f = l1+l2+f3;//系統(tǒng)將轉(zhuǎn)換為float型計(jì)算
long l = (long)f;//強(qiáng)制轉(zhuǎn)換會(huì)舍去小數(shù)部分(不是四舍五入)
}}
Java運(yùn)算符分類
算術(shù)運(yùn)算符:+ -
/ % ++ --;
關(guān)系運(yùn)算符:> < <= >= == !=
邏輯運(yùn)算符:! & | ^ && ||
位運(yùn)算符:& | ^ ~ >> << >>>
賦值運(yùn)算符:=
擴(kuò)展賦值運(yùn)算符:+= -= /= *=
字符串連接運(yùn)算符:+
語句
條件語句
if //如果條件為true則執(zhí)行
if...else //如果if條件為true執(zhí)行if語句,否則執(zhí)行else語句
if...else if //同上
if...else if...else if...else //有一條執(zhí)行就不會(huì)再判斷后續(xù)天劍
switch
swtich()//變量類型只能是int、short、char、byte和enum類型。當(dāng)進(jìn)行case判斷時(shí),JVM會(huì)自動(dòng)從上到小掃描,尋找匹配的case。
循環(huán)語句
for
while
do while
break 語句,終止某個(gè)語句塊的執(zhí)行,在循環(huán)語句體系中,可以強(qiáng)制退出循環(huán)
Continue 語句,跳過本次循環(huán)進(jìn)入下一次循環(huán)
數(shù)組
定義
dataType[] arrayVar;
dataType arrayVar [ ];
說明: 首先dataType它可以是基本數(shù)據(jù)類型比如 int array [ ];也可以是引用類型 比如Object [ ]。
方法
方法是語句的集合,它可以實(shí)現(xiàn)一個(gè)功能,比如println()方法它可以實(shí)現(xiàn)打印輸出。在java中方法是包含在類或?qū)ο笾?,方法?chuàng)建于程序中,在其他地方被引用。
定義一個(gè)方法
修飾符  返回值類型  方法名(參數(shù)類型 參數(shù)名){
...
方法體
...
return 返回值;
}
//示例
public  int  addNumber(int a, int b){
int x=0;
x=a+b;
retutn x;
}
定義規(guī)則
1、命名規(guī)則,方法名一般以小寫字母開頭,后邊的單詞首字母大寫
2、return后邊跟的值的類型必須與返回值類型相同,除了void,因?yàn)関oid是無返回值的。
解析方法
修飾符:修飾符,這是可選的,告訴編譯器如何調(diào)用該方法。定義了該方法的訪問類型。
返回值類型 :方法可能會(huì)返回值。returnValueType 是方法返回值的數(shù)據(jù)類型。有些方法執(zhí)行所需的操作,但沒  有返回值。在這種情況下,returnValueType 是關(guān)鍵字void。
方法名:是方法的實(shí)際名稱。方法名和參數(shù)表共同構(gòu)成方法簽名。
參數(shù)類型:參數(shù)像是一個(gè)占位符。當(dāng)方法被調(diào)用時(shí),傳遞值給參數(shù)。這個(gè)值被稱為實(shí)參或變量。參數(shù)列表是指方法的參數(shù)類型、順序和參數(shù)的個(gè)數(shù)。參數(shù)是可選的,方法可以不包含任何參數(shù)。
方法體:方法體包含具體的語句,定義該方法的功能如 int x=0; x=a+b。
main方法
main 方法是被 JVM調(diào)用的,除此之外,main 方法和其它方法沒什么區(qū)別。main 方法的頭部是不變的,如下所示,帶修飾符 public 和 static,返回 void 類型值,方法名字是 main,此外帶個(gè)一個(gè) String[] 類型參數(shù)。String[] 表 明參數(shù)是字符串?dāng)?shù)組。
public class TestMax {
/* 主方法 /
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println( i + " 和 " + j + " 比較,最大值是:" + k);
}

/* 返回兩個(gè)整數(shù)變量較大的值 /
public static int max(int num1, int num2) {
return num1>num2? num1:num2;
}
}
構(gòu)造方法
class Student {
int id;//ID
String name;//姓名
int age;//年齡
Student(String n) {//擁有一個(gè)參數(shù)的構(gòu)造方法
name = n;
}
Student(int i, String n) {//擁有二個(gè)參數(shù)的構(gòu)造方法
id = i;
name = n;
}
Student(int i, String n, int a) {//擁有三個(gè)參數(shù)的構(gòu)造方法
id = i;
name = n;
age = a;
}
public void show() {//普通方法
System.out.println(id + " " + name + " " + age);
}

public static void main(String args[]) {
    Student s1 = new Student("小紅");//創(chuàng)建一個(gè)小紅
    Student s2 = new Student(250, 18);//創(chuàng)建一個(gè)
    s1.show();//對(duì)象調(diào)用方法
    s2.show();
}

}
Java文件經(jīng)過JVM編譯成字節(jié)碼文件,即.class文件,將字節(jié)碼文件在不同的操作系統(tǒng)中運(yùn)行時(shí),操作系統(tǒng)再將字節(jié)碼文件編譯成機(jī)器碼文件。這就是Java跨平臺(tái)
首先明確一點(diǎn),java 的 GC 回收是完全自動(dòng)的,沒有提供相關(guān) api 手動(dòng)回收,所有的內(nèi)存分配和回收權(quán)限都在 jvm,在開發(fā)人員手里沒有絕對(duì)的強(qiáng)制垃圾回收的方法,不過可以這樣去做:
對(duì)于不再引用的對(duì)象,及時(shí)把它的引用賦為 null。 obj = null;
如果內(nèi)存確實(shí)很緊張,調(diào)用 System.gc () 方法來建議垃圾回收器開始回收垃圾,通知 GC 運(yùn)行,但是 Java 語言規(guī)范并不保證 GC 一定會(huì)執(zhí)行。
java 基本類型的默認(rèn)值和取值范圍
整數(shù)類型 byte(1 個(gè)字節(jié))short(2 個(gè)字節(jié))int(4 個(gè)字節(jié))long(8 個(gè)字節(jié))
字符類型 char(2 個(gè)字節(jié))
浮點(diǎn)類型 float(4 個(gè)字節(jié))double(8 個(gè)字節(jié))
常見字符的ASCII碼值如下:空格的ASCII碼值為32;數(shù)字0到9的ASCII碼值分別為48到57;大寫字母“A”到“Z”的ASCII碼值分別為65到90;小寫字母“a”到“z”的ASCII碼值分別為97到到122。
Java 標(biāo)識(shí)符有如下命名規(guī)則:
由 26 個(gè)英文字母大小寫,數(shù)字:0-9 符號(hào): $ ¥ 組成
標(biāo)識(shí)符應(yīng)以字母、
、$ 開頭。
標(biāo)識(shí)符不能是關(guān)鍵字。
抽象類和接口
關(guān)于抽象類
JDK 1.8 以前,抽象類的方法默認(rèn)訪問權(quán)限為 protected
JDK 1.8 時(shí),抽象類的方法默認(rèn)訪問權(quán)限變?yōu)?default
關(guān)于接口
JDK 1.8 以前,接口中的方法必須是 public 的
JDK 1.8 時(shí),接口中的方法可以是 public 的,也可以是 default 的
JDK 1.9 時(shí),接口中的方法可以是 private 的
裝箱和拆箱
基本數(shù)據(jù)類型轉(zhuǎn)化成包裝類是裝箱 (如: int --> Integer)。
包裝類轉(zhuǎn)化成基本數(shù)據(jù)類型就是拆箱 (如:Integer --> int)。
包裝類就是引用類型,基本數(shù)據(jù)類型就是值類型。
通過 裝箱 和 拆箱 操作,XM代理申請(qǐng)www.kaifx.cn/broker/xm.html,能夠在值類型和引用類型中架起一做橋梁。換言之,可以輕松的實(shí)現(xiàn)值類型與引用類型的互相轉(zhuǎn)換,裝箱和拆箱能夠統(tǒng)一考察系統(tǒng),任何類型的值最終都可以按照對(duì)象進(jìn)行處理。
序列化和反序列化
Java 在序列化時(shí)不會(huì)實(shí)例化 static 變量和 transient 修飾的變量,因?yàn)?static 代表類的成員,transient 代表對(duì)象的臨時(shí)數(shù)據(jù),被聲明這兩種類型的數(shù)據(jù)成員不能被序列化
Java有兩種傳遞方式,值傳遞和引用傳遞?;绢愋秃鸵詓tring str = “aaa”;這種方式創(chuàng)建的都是值傳遞,對(duì)象創(chuàng)建和數(shù)組都是引用傳遞,所以在函數(shù)的判斷形參需要特別注意。
Java垃圾回收機(jī)制
垃圾回收主要針對(duì)的是堆區(qū)的回收,因?yàn)闂^(qū)的內(nèi)存是隨著線程而釋放的。堆區(qū)分為三個(gè)區(qū):年輕代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法區(qū))。
年輕代:對(duì)象被創(chuàng)建時(shí)(new)的對(duì)象通常被放在 Young(除了一些占據(jù)內(nèi)存比較大的對(duì)象), 經(jīng)過一定的 Minor GC(針對(duì)年輕代的內(nèi)存回收)還活著的對(duì)象會(huì)被移動(dòng)到年老代(一些具體的移動(dòng)細(xì)節(jié)省略)。
年老代:就是上述年輕代移動(dòng)過來的和一些比較大的對(duì)象。Major GC (FullGC) 是針對(duì)年老代的回收。
永久代:存儲(chǔ)的是 final 常量,static 變量,常量池。

“Java基本語法總結(jié)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI