2.java基本語法

一.關(guān)鍵字&標識符

1.關(guān)鍵字:被java語言賦予特殊含義的字符串(或單詞),

2.保留字:被java語言占用,但是還沒有具體含義。關(guān)鍵字保留字都小寫


關(guān)鍵字

3.標識符:凡是可以自己命名的地方,都是標識符。

????定義合法標識符規(guī)則:

????????>由26個英文字母大小寫,0-9 ,_或 $ 組成

????????>數(shù)字不可以開頭。

????????>不可以使用關(guān)鍵字和保留字,但能包含關(guān)鍵字和保留字。

????????>Java中嚴格區(qū)分大小寫,長度無限制。

????????>標識符不能包含空格。

4.java命名規(guī)范

????包名:多單詞組成時所有字母都小寫:xxxyyyzzz

????類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz

????變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz(駝峰

????常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ

? ??在起名字時,為了提高閱讀性,要盡量有意義,“見名知意”。


二.變量

1.變量的聲明格式:數(shù)據(jù)類型 變量名 = 初始化值; ?必須先聲明后使用,都有其作用域。

2.變量類型的分類

變量分類1
變量分類2

3.每種數(shù)據(jù)類型的使用

? ? 1).整型 : byte(1字節(jié)) short(2字節(jié)) int(4字節(jié)) long(8字節(jié)) ??一般使用int型

? ??????????????byte b1 = 127;

? ? ? ? ? ? ? ? b1 = 128;//編譯不通過,超出了byte的取值范圍

????????????????定義一個long型的變量,以"l"或者"L"結(jié)尾 ? ?long l = 1243124L;

? ? ?2)浮點型:float(4字節(jié)) double(8字節(jié)),表示帶小數(shù)的數(shù)值?

? ??????????????比較常用的是double ? ? ?double d1 = 123.3;

????????????????定義float型變量時,需要末尾添加"f"或者"F" ? ?float f1 = 123.2f;

? ? ?3)boolean型:取值只有兩個:true 或 false。不能取值為null

? ? ?4)字符型:char(2字節(jié))

? ??????一個char型變量,表示一個字符

? ??????????char c1 = 'a';

????????????char c2 = 'ab';//編譯不通過

????????????char c3 = '1';

????????????char c4 = '中';

????????????char c5 = '\n'; ? ??c5 = '\t'; ??//轉(zhuǎn)義字符

????????????System.out.println("abcd" + c5 + "def");

????????????char c6 = '\u1234'; ??//用的不多

????????????System.out.println("c6:" + c6);

4.變量間的運算

? ??①自動類型提升:容量小(表數(shù)范圍)的變量與容量大的變量間做運算,結(jié)果的數(shù)據(jù)類型與容量大的變量的類型一致。

????????????byte、short、char ---> int --->long---->float----> double

????????????當byte\short\char三者之間的變量做運算的話,結(jié)果都為int型。

????②強制類型轉(zhuǎn)換:是自動類型提升的逆過程:將容量大的數(shù)據(jù)類型的變量轉(zhuǎn)換為容量小的數(shù)據(jù)類型的變量

????????????使用強制類型轉(zhuǎn)換符:()

????????????double d1 = 123.3;

????????????int i = (int)d1;//123

????????????byte b = (byte)i;

????????????注意:強轉(zhuǎn)時,可能會導致精度損失。


三.運算符

????1. 算術(shù)運算符:+(正) ?-(負) ? ? + - * / % (前)++ (后)++ (前)-- (后)-- +(字符串連接運算)

????????????1) int i = 12;

? ? ????????????? int j = i / 5;

? ? ????????????? System.out.println(j);//2

????????????2)取模運算與被模數(shù)符號一樣。

? ? ? ? ? ? ????????? int i = 12;

? ? ? ? ? ? ????????? int j = 3;

? ? ????????????????? if(i % j == 0){....}

????????????3)(前)++ :先+1,后運算

? ???????????? (后)++:先運算,后+1

? ? 2.賦值運算符: = += -= *= /= %=

? ??????運算結(jié)果不改變原有變量的數(shù)據(jù)類型

????????????int i = 12;

????????????i += 10;//i = i + 10;

????????????short s = 10;

????????????s += 2;//s = (short)(s + 2);

????????????int m = 12;

????????????m *= 0.1;//編譯能通過。

????????????m = m * 0.1;//編譯不通過

? ??3.比較運算符(關(guān)系運算符): == > < >= <= intanceof

? ??????>比較運算符的結(jié)果都為boolean類型!

? ? ? ? >通常使用在條件判斷和循環(huán)語句中

? ? 4.邏輯運算符?且: & && 或: | || ? ! ^

? ??????????>運算符處理的都是boolean類型的變量

????????????>& 與 && 區(qū)別:當符號左邊是false時,& 繼續(xù)執(zhí)行右邊的運算;&& 不再執(zhí)行右邊的運算

????????????>|? 與 || 區(qū)別:當符號左邊是true時,| 繼續(xù)執(zhí)行右邊的運算;|| 不再執(zhí)行右邊的運算

????????????>開發(fā)時,常用&&? 和 ||

? ??5.位運算符: << ? ? >> ?>>> ?& ? ?| ? ?^ ?~

? ??????>處理的是數(shù)值型的變量

????????>在一定范圍內(nèi),左移一位,相當于這個數(shù)值 * 2。

????????????int i = 6;

? ? ? ????? int j = ~i; //-7

? ? 6.三元運算符:(條件表達式)? 表達式1 : 表達式2

? ???????注:1.表達式1和表達式2的類型要一致

? ? ? ? ? ? ? 2.表達式1和表達式2的類型,決定了運算符的類型

? ? ? ? ? ? ? 3.凡是使用三元運算符的操作都可以轉(zhuǎn)換為if-else結(jié)構(gòu)。反之不成立.

? ???????????? 如果二者都可以使用的情況下,建議使用三元運算符,效率高。


四.流程控制

1.分支結(jié)構(gòu)

? ? if(){}else{} ? if(){}else if(){}...else{}

? ? 1).如果多個條件表達式是"互斥"關(guān)系,那么執(zhí)行結(jié)構(gòu)誰上誰下都可以。

? ? ? ? ?如果多個條件表達式是"包含"關(guān)系,要求將范圍小的寫在范圍大的上面

? ? ?2)如果條件判斷的執(zhí)行語句只有一行的話,可以省略一對{}.建議不省略

? ??????switch(變量){

????????????????case 值1:

????????????????????語句1;

????????????????????break;

????????????????????????...

????????????????default:

????????????????????語句;

???????????????}

? ? 1)default:可選的,同時位置是靈活的。

? ? 2)switch中的變量只能是如下的類型之一:byte short int char 枚舉類 String(JDK1.7新加入的)

? ? 3)使用switch-case的結(jié)構(gòu)都能轉(zhuǎn)換為if-else結(jié)構(gòu)。反之,不成立

? ? 4)如果switch-case和if-else結(jié)構(gòu)都可以使用,建議使用switch-case,因為效率高

? ? 5)case中只能寫取值(常量),不能表示范圍


2.循環(huán)結(jié)構(gòu)

? ? ? ?1.?循環(huán)結(jié)構(gòu)的4個要素:

????????????①初始化條件

????????????②循環(huán)條件(是boolean類型的結(jié)果)

????????????③循環(huán)體

????????????④迭代條件

? ??2.三種循環(huán)結(jié)構(gòu):

????????????for(①;②;④){

????????????????????????③

????????????????}

????????????①

????????????while(②){

????????????③;

????????????④;

????????????}

????????????①

????????????do{

????????????????????③;

????????????????????④;

? ? ? ? ? ? ? ? ? ?}while(②);

????注:三種循環(huán)間都可以相互轉(zhuǎn)換

????區(qū)別:①for循環(huán)的初始化條件執(zhí)行完循環(huán)以后就不可再在循環(huán)外調(diào)用。而while循環(huán)的初始化條件在循環(huán)結(jié)束以后,初始化變量聲明所在的{}內(nèi)還可以被調(diào)用

????????????????②do-while至少會被執(zhí)行一次。

3.兩個特殊的循環(huán)結(jié)構(gòu):

? ??while(true) 或者 for(;;)

????????第一種情況:當某次執(zhí)行時,②循環(huán)條件返回false,進而結(jié)束當前循環(huán)

????????第二種情況:在循環(huán)結(jié)構(gòu)內(nèi),執(zhí)行到break語句,調(diào)出當前循環(huán)。

????????明確:若循環(huán)結(jié)構(gòu)沒有出現(xiàn)上述兩種情況之一,那這個循環(huán)就是死循環(huán)!

? ? ? ????????????死循環(huán)是我們寫程序要避免的!


五.break和continue關(guān)鍵字的使用

? ??break:①可以使用在switch-case或者循環(huán)結(jié)構(gòu)中

? ? ? ? ? ? ? ②:如果在循環(huán)結(jié)構(gòu)中使用:結(jié)束當前循環(huán)結(jié)構(gòu)(默認結(jié)束的是離break最近的循環(huán)結(jié)構(gòu))

? ??continue:①只能使用在循環(huán)結(jié)構(gòu)中

? ? ? ? ? ? ? ? ? ?②:如果在循環(huán)結(jié)構(gòu)中使用:結(jié)束當次循環(huán)(默認結(jié)束的是離break最近的循環(huán)結(jié)構(gòu))

說明:在break和continue關(guān)鍵字后面不能有任何的操作語句。否則編譯不通過。


示例1


示例2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計...
    子非魚_t_閱讀 4,562評論 1 44
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 在生活中,人們常常被人際關(guān)系問題所困擾。我觀察了很多人,發(fā)現(xiàn)喜歡微笑的人,往往擁有良好的人際關(guān)系,更容易被他人接受...
    唐磊情商閱讀 673評論 0 1
  • 專題鏈接 上一章:霸王美人殺手 第四十二章:命運覺醒破曉 這是一場漫長的夢。它就像無聲黑白電影,從傳說時代一點點放...
    靈夜狼閱讀 486評論 24 10
  • 什么是跨域 不同域名之間相互請求資源,就是跨域。常說的跨域問題,指的是瀏覽器不允許跨域請求。這是由于瀏覽器的同源策...
    NowYouSeeAll閱讀 1,970評論 0 1

友情鏈接更多精彩內(nèi)容