JAVA入門 第二章 JAVA基本語法(一)變量與運(yùn)算符

2.1 關(guān)鍵字和保留字

2.1.1 關(guān)鍵字

定義:被Java語言賦予了特殊含義糊秆,用做專門用途的字符串(單詞)

特點(diǎn):關(guān)鍵字中所有字母都為小寫

  • 用于定義數(shù)據(jù)類型的關(guān)鍵字??

    class interface

    enum byte

    short int long

    float double

    char

    boolean

    void

  • 用于定義數(shù)據(jù)類型值的關(guān)鍵字

    true false null

  • 用于定義流程控制的關(guān)鍵字

    if else

    switch case default

    while do

    for

    continue break return

  • 用于定義 訪問權(quán)限修飾符 的關(guān)鍵字

    public protect private

  • 用于定義 類、函數(shù)醋拧、變量修飾符 的關(guān)鍵字??

    abstract final static synchronize

  • 用于定義 類與類之間關(guān)系 的關(guān)鍵字

    extends implements

  • 用于定義 建立實例、引用實例及判斷實例 的關(guān)鍵字

    new

    this super

    instanceof

  • 用于 異常處理 的關(guān)鍵字

    try catch finally

    throw throws

  • 用于 的關(guān)鍵字

    package import

  • 其它修飾符關(guān)鍵字

    native strictfp transient valatile assert

2.1.2 保留字 待之后的JAVA版本使用

cast固蚤、future饼齿、generic、inner珍剑、operator、outer死陆、rest招拙、var、goto措译、const

2.2 標(biāo)識符(identifier)

2.2.1 定義

Java 對各種變量迫像、方法和類等要素命名時使用的字符序列稱為標(biāo)識符
技巧:凡是自己可以起名字的地方都叫標(biāo)識符。

2.2.2 定義合法標(biāo)識符規(guī)則:

  • 由26個英文字母大小寫瞳遍,0-9 闻妓,_或 $ 組成
  • 數(shù)字不可以開頭。
  • 不可以使用關(guān)鍵字和保留字掠械,但能包含關(guān)鍵字和保留字由缆。
  • Java中嚴(yán)格區(qū)分大小寫注祖,長度無限制。
  • 標(biāo)識符不能包含空格均唉。

2.2.3 Java的名稱命名規(guī)范----約定俗成

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

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

  • 變量名舔箭、方法名:多單詞組成時罩缴,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz

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

    注意1:在起名字時箫章,為了提高閱讀性,要盡量有意義镜会,“見名知意”檬寂。

    注意2:Java采用unicode字符集,因此標(biāo)識符也可以使用漢字聲明戳表,但是不建議使用桶至。

2.3 變量

使用變量注意:

  1. Java中每個變量必須先聲明,后使用匾旭,同時避免使用關(guān)鍵字和保留字
  2. 變量的作用域:一對{ }之間有效
  3. 初始化值
  4. 使用變量名來訪問這塊區(qū)域的數(shù)據(jù)

2.3.1 變量的分類

  • 按數(shù)據(jù)類型

//??添加圖片

整數(shù)類型

Java各整數(shù)類型有固定的表數(shù)范圍和字段長度镣屹,不受具體OS的影響,以保證java程序的可移植性价涝。

類型 占用存儲空間 表數(shù)的范圍 特殊備注
byte 1字節(jié)=8bit位 -2^7 ~ 2^7-1 (-128 ~ 127)
short 2字節(jié) -2^15 ~ 2^15-1 (-32768 ~ 32767)
int 4字節(jié) -2^31 ~ 2^31-1 (-21億4748萬3648 ~ 21億4748萬3658) 通常聲明為int型
long 8字節(jié) -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775808)約922兆(億億) 除非不足以表示較大的數(shù)女蜈,才使用long。聲明long型常量須后加‘l’或‘L’
浮點(diǎn)類型

也有固定的表數(shù)范圍和字段長度飒泻,不受具體操作系統(tǒng)的影響鞭光。

兩種表示形式

  • 十進(jìn)制數(shù)形式

    5.12 1024.0f .128

  • 科學(xué)記數(shù)法形式

    5.12E2 1024E2 100E-2

類型 占用存儲空間 表數(shù)的范圍 特殊備注
單精度float 4字節(jié) 大約正負(fù)3.40282347E+38F(有效位數(shù)6~7位) 很多情況下混坞,精度很難滿足需求
雙精度double 8字節(jié) 大約正負(fù)1.79769313486231570E+308(有效位數(shù)位15位) 精度是float的兩倍庆冕,通常采用此類型

Java 的浮點(diǎn)型常量默認(rèn)為double型看幼,聲明float型常量,須后加‘f’或‘F’

char----字符類型

char 型數(shù)據(jù)用來表示通常意義上“字符”(2字節(jié))

字符型常量的三種表現(xiàn)形式:

  • 字符常量是用單引號(‘ ’)括起來的單個字符史辙,涵蓋世界上所有書面語的字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
  • Java中還允許使用轉(zhuǎn)義字符‘\’來將其后的字符轉(zhuǎn)變?yōu)?strong>特殊字符型常量佩伤。例如:char c3 = ‘\n’; // '\n'表示換行符
  • 直接使用 Unicode 值來表示字符型常量:‘\uXXXX’聊倔。其中,XXXX代表一個十六進(jìn)制整數(shù)生巡。如:\u000a 表示 \n耙蔑。

char類型是可以進(jìn)行運(yùn)算的。因為它都對應(yīng)有Unicode碼孤荣。

轉(zhuǎn)義字符 說明
\b 退格符
\n 換行
\r 回車符
\t 制表符
" 雙引號
' 單引號
|反斜線

UTF-8 是在互聯(lián)網(wǎng)上使用最廣的一種 Unicode 的實現(xiàn)方式甸陌。

定義:UTF-8 是一種變長的編碼方式须揣。它可以使用 1-6 個字節(jié)表示一個符號,根據(jù)不同的符號而變化字節(jié)長度钱豁。

UTF-8的編碼規(guī)則

  • 對于單字節(jié)的UTF-8編碼耻卡,該字節(jié)的最高位為0,其余7位用來對字符進(jìn)行編碼(等同于ASCII碼)牲尺。
  • 對于多字節(jié)的UTF-8編碼卵酪,如果編碼包含 n 個字節(jié),那么第一個字節(jié)的前 n 位為1谤碳,第一個字節(jié)的第 n+1 位為0溃卡,該字節(jié)的剩余各位用來對字符進(jìn)行編碼。在第一個字節(jié)之后的所有的字節(jié)估蹄,都是最高兩位為"10"塑煎,其余6位用來對字符進(jìn)行編碼。
boolean:布爾類型

用來判斷邏輯條件臭蚁,一般用于程序流程控制

  • if條件控制語句最铁;
  • while循環(huán)控制語句;
  • do-while循環(huán)控制語句垮兑;
  • for循環(huán)控制語句冷尉;

數(shù)據(jù)只允許取值true和false,無null系枪;

  • 不可以0或非 0 的整數(shù)替代雀哨,這點(diǎn)與 C 語言不同。

  • Java虛擬機(jī)中沒有任何供boolean值專用的字節(jié)碼指令私爷,java語言表達(dá)所操作的boolean值雾棺,在編譯之后都使用 java 虛擬機(jī)中的 int 數(shù)據(jù)類型來代替: true 用1表示, false 用0表示

    參考《java虛擬機(jī)規(guī)范 8版》

String:字符串類型

String不是基本數(shù)據(jù)類型衬浑,屬于引用數(shù)據(jù)類型捌浩。

1) 使用方式跟基本數(shù)據(jù)類型一致:String str = "lona";
2) 一個字符串可以串接另一個字符串,或直接串接其它類型的數(shù)據(jù)工秩。

2.3.2 基本數(shù)據(jù)類型變量間轉(zhuǎn)換

自動類型轉(zhuǎn)換:

容量小的類型自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型尸饺。數(shù)據(jù)類型按容量大小排序為

(byte、char助币、short) -> int -> long -> float -> double
  • 有多種類型的數(shù)據(jù)混合運(yùn)算時浪听,系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的那種數(shù)據(jù)類型,然后再進(jìn)行計算眉菱。
  • byte,short,char之間不會相互轉(zhuǎn)換迹栓,他們?nèi)咴谟嬎銜r首先轉(zhuǎn)換為 int 類型。
  • 當(dāng)把任何基本類型的值和字符串(String)進(jìn)行連接運(yùn)算時(+)俭缓,基本類型的值將自動轉(zhuǎn)化為字符串類型克伊。
強(qiáng)制類型轉(zhuǎn)換
  • 自動類型轉(zhuǎn)換的逆過程叉抡,將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型。使用時要加上強(qiáng)制轉(zhuǎn)換符()答毫,但可能造成精度降低或溢出,格外要注意褥民。??
  • 通常,字符串不能直接轉(zhuǎn)換為基本類型洗搂,但通過基本類型對應(yīng)的包裝類則可以實現(xiàn)把字符串轉(zhuǎn)換成基本類型消返。
    如: String a = “43”; int i = Integer.parseInt(a);
  • boolean類型不可以轉(zhuǎn)換為其它的數(shù)據(jù)類型

2.3進(jìn)制與進(jìn)制間的轉(zhuǎn)換

對于整數(shù),有四種表示方式:

  • 二進(jìn)制:0,1 耘拇,滿2進(jìn)1.以0b或0B開頭撵颊。
  • 十進(jìn)制:0-9 ,滿10進(jìn)1.
  • 八進(jìn)制:0-7 惫叛,滿8進(jìn)1. 以數(shù)字0開頭表示倡勇。
  • 十六進(jìn)制:0-9及A-F,滿16進(jìn)1. 以0x或0X開頭表示嘉涌。此處的A-F不區(qū)分大小寫妻熊。
    如:0x21AF +1= 0X21B0
二進(jìn)制
  • 所有數(shù)字在計算機(jī)底層都以二進(jìn)制形式存在。

  • 計算機(jī)以補(bǔ)碼的形式保存所有的整數(shù)仑最。

    • (約定俗成)正數(shù)的原碼扔役、反碼、補(bǔ)碼都相同

    • Java當(dāng)用二進(jìn)制定義整數(shù)時:

      * 整數(shù)常量默認(rèn)是int類型警医,其第32位是符號位亿胸;
      * 當(dāng)是long類型時,二進(jìn)制默認(rèn)占64位预皇,第64位是符號位
    

負(fù)數(shù)時:

為了方便負(fù)數(shù)的計算侈玄,利用補(bǔ)碼,目的是 減法 可以 用加補(bǔ)碼 的方法計算吟温。

  • 原碼:直接將一個數(shù)值換成二進(jìn)制數(shù)序仙。最高位是符號位
  • 負(fù)數(shù)的反碼:是對原碼按位取反,只是最高位(符號位)確定為1溯街。
  • 負(fù)數(shù)的補(bǔ)碼:其反碼加1诱桂。

2.4 運(yùn)算符

是一種特殊的符號洋丐,用以表示數(shù)據(jù)的運(yùn)算呈昔、賦值和比較等。

  • 算術(shù)運(yùn)算符
運(yùn)算符 運(yùn)算 范例 結(jié)果
+ 正號 +8 8
- 負(fù)號 -8 -8
+ 正號 6+2 8
- 減號 6-2 4
* 乘號 6*2 12
/ 除號 6/2 3
% 取模(取余) 7/2 1
++ 自增(前)-先運(yùn)算后取值 a=2;b=++a; a=3;b=3
++ 自增(后)-先取值后運(yùn)算 a=2;b=a++; a=3;b=2
-- 自減(前)-先運(yùn)算后取值 a=2;b=--a; a=1;b=1
-- 自減(后)-先取值后運(yùn)算 a=2;b=a--; a=1;b=2
+ 字符串相加 "lo" + "na" "lona"
int i1 = 10;int i2 = 20;
int i = i1++;
System.out.print("i="+i);
System.out.println("i1="+i1);
i = ++i1;
System.out.print("i="+i);
System.out.println("i1="+i1);
i = i2--;
System.out.print("i="+i);
System.out.println("i2="+i2);
i = --i2;
System.out.print("i="+i);
System.out.println("i2="+i2);
/*
    結(jié)果:
    i=10i1=11
    i=12i1=12
    i=20i2=19
    i=18i2=18
*/
  • 賦值運(yùn)算符

    1. 當(dāng)“=”兩側(cè)數(shù)據(jù)類型不一致時友绝,可以使用自動類型轉(zhuǎn)換或使用強(qiáng)制類型轉(zhuǎn)換原則進(jìn)行處理堤尾。
    2. 支持連續(xù)賦值。
    3. +=, -=, *=, /=, %=
//example1
int i = 1;
i *= 0.1;
System.out.println(i);//0 注意i的類型
i++;
System.out.println(i);//1

//example2
int n = 10;
n += (n++) + (++n);
System.out.println(n);//32
  • 比較運(yùn)算符(關(guān)系運(yùn)算符)
運(yùn)算符 運(yùn)算 范例 結(jié)果
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 true
instanceof 檢查是否是類的對象 “Hello” instanceof String true
  • 邏輯運(yùn)算符
a b a&b a && b a I b a II b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

&—邏輯與 | —邏輯或 迁客!—邏輯非
&& —短路與 || —短路或 ^ —邏輯異或

“&”和“&&”的區(qū)別

單&時郭宝,左邊無論真假辞槐,右邊都進(jìn)行運(yùn)算;
雙&時粘室,如果左邊為真榄檬,右邊參與運(yùn)算,如果左邊為假衔统,那么右邊不參與運(yùn)算鹿榜。

“|”和“||”的區(qū)別

同理,||表示:當(dāng)左邊為真锦爵,右邊不參與運(yùn)算舱殿。

異或( ^ )與或( | )的不同之處是

當(dāng)異或左右都為true時,結(jié)果為false险掀。
理解:異或沪袭,追求的是“異”!
/*
 * 邏輯運(yùn)算符
 * */
int x = 1;
int y=1;

if(x++==2 & ++y==2){
    x =7;
}
System.out.println("x="+x+",y="+y);//x=2,y=2

if(x++==2 && ++y==2){
    x =7;
}
System.out.println("x="+x+",y="+y);//x=2,y=1
    
if(x++==1 | ++y==1){
    x =7;
}
System.out.println("x="+x+",y="+y);//x=7,y=2
    
if(x++==1 || ++y==1){
    x =7;
}
System.out.println("x="+x+",y="+y);//x=7,y=1

//example2
 boolean x=true;
 boolean y=false;
 short z = 42;
 //if(y == true)
 if((z++==42)&&(y=true))z++;
 if((x=false) || (++z==45))  z++;
 
 System. out.println("z="+z);//46

  • 位運(yùn)算符
運(yùn)算符 運(yùn)算 范例 運(yùn)算細(xì)節(jié)
<< 左移 3 << 2 = 12 --> 3*2*2=12 空位補(bǔ)0,被移除的高位丟棄樟氢,空缺位補(bǔ)0冈绊。
>> 右移 3 >> 1 = 1 --> 3/2=1 被移位的二進(jìn)制最高位是0,右移后埠啃,空缺位補(bǔ)0焚碌;最高位是1,空缺位補(bǔ)1霸妹。
>>> 無符號右移 3 >>> 1 = 1 --> 3/2=1 被移位二進(jìn)制最高位無論是0或者是1十电,空缺位都用0補(bǔ)。
& 與運(yùn)算 6 & 3 = 2 二進(jìn)制位進(jìn)行&運(yùn)算叹螟,只有1&1時結(jié)果是1鹃骂,否則是0;
I 或運(yùn)算 6 I 3 = 7 二進(jìn)制位進(jìn)行 I 運(yùn)算,只有0 I 0時結(jié)果是0罢绽,否則是1; ^ 異或運(yùn)算 6 ^ 3 = 5 相同二進(jìn)制位進(jìn)行 ^ 運(yùn)算畏线,結(jié)果是0;1^1=0 , 0^0=0 不相同二進(jìn)制位 ^ 運(yùn)算結(jié)果是1良价。1^0=1 , 0^1=1
~ 反碼?? ~6 = -7 正數(shù)取反寝殴,各二進(jìn)制碼按補(bǔ)碼各位取反;負(fù)數(shù)取反,各二進(jìn)制碼按補(bǔ)碼各位取反
  • 三元運(yùn)算符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末明垢,一起剝皮案震驚了整個濱河市蚣常,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痊银,老刑警劉巖抵蚊,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡贞绳,警方通過查閱死者的電腦和手機(jī)谷醉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冈闭,“玉大人俱尼,你說我怎么就攤上這事∥埽” “怎么了号显?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長躺酒。 經(jīng)常有香客問我押蚤,道長,這世上最難降的妖魔是什么羹应? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任揽碘,我火速辦了婚禮,結(jié)果婚禮上园匹,老公的妹妹穿的比我還像新娘雳刺。我一直安慰自己,他們只是感情好裸违,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布掖桦。 她就那樣靜靜地躺著,像睡著了一般供汛。 火紅的嫁衣襯著肌膚如雪枪汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天怔昨,我揣著相機(jī)與錄音雀久,去河邊找鬼。 笑死趁舀,一個胖子當(dāng)著我的面吹牛赖捌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矮烹,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼越庇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奉狈?” 一聲冷哼從身側(cè)響起卤唉,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘹吨,沒想到半個月后搬味,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體境氢,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蟀拷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年碰纬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问芬。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡悦析,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出此衅,到底是詐尸還是另有隱情强戴,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布挡鞍,位于F島的核電站骑歹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏墨微。R本人自食惡果不足惜道媚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翘县。 院中可真熱鬧最域,春花似錦、人聲如沸锈麸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忘伞。三九已至薄翅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氓奈,已是汗流浹背匿刮。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留探颈,地道東北人熟丸。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像伪节,于是被迫代替她去往敵國和親光羞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容