Java關(guān)鍵字、標(biāo)識(shí)符、常量、變量語(yǔ)法詳解
一、關(guān)鍵字
關(guān)鍵字:被Java語(yǔ)言賦予特定含義的單詞。組成關(guān)鍵字的字母全部小寫(xiě)。注:goto和const作為保留字存在,目前并不使用。main并不是關(guān)鍵字。
二、標(biāo)識(shí)符
標(biāo)識(shí)符:就是給類,接口,方法,變量等起名字時(shí)使用的字符序列。
組成規(guī)則:英文大小寫(xiě)字母、數(shù)字字符、$和_
注意事項(xiàng):不能以數(shù)字開(kāi)頭、不能是Java中的關(guān)鍵字、區(qū)分大小寫(xiě)
我們通常會(huì)給下面的這些東西起一個(gè)標(biāo)識(shí)符:
包、類或者接口、方法和變量、常量
三、注釋
單行注釋的格式: //注釋文字
多行注釋的格式: /* 注釋文字 */
文檔注釋的格式:/** 注釋文字 */
注:多行注釋不能嵌套使用,而單行是可以的。
文檔注釋:被javadoc工具解析成一個(gè)說(shuō)明書(shū),面向?qū)ο蟛糠值闹R(shí)中會(huì)用到。
四、常量、進(jìn)制和進(jìn)制轉(zhuǎn)換
常量:在程序執(zhí)行的過(guò)程中其值不可以發(fā)生改變
Java中常量分類:
字面值常量自定義常量(面向?qū)ο蟛糠种v)
1、常見(jiàn)常量:
字符串常量:用雙引號(hào)括起來(lái)的內(nèi)容
整數(shù)常量、
小數(shù)常量、
字符常量:用單引號(hào)括起來(lái)的內(nèi)容
布爾常量:較為特有,只有true和false
空常量:null(數(shù)組部分講解)
2、進(jìn)制與轉(zhuǎn)換:
Java針對(duì)整數(shù)常量提供了4種表現(xiàn)形式:二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制。
八進(jìn)制的整數(shù)以0開(kāi)頭,十六進(jìn)制的整數(shù)以0x開(kāi)頭。
注:現(xiàn)在的計(jì)算機(jī)系統(tǒng)很少用八進(jìn)制的了。二進(jìn)制表示法太冗長(zhǎng),所以在程序中一般喜歡用十六進(jìn)制
二進(jìn)制與八進(jìn)制的轉(zhuǎn)換:
二進(jìn)制與十六進(jìn)制的轉(zhuǎn)換:
3、有符號(hào)數(shù)據(jù)表示法:
在計(jì)算機(jī)內(nèi),有符號(hào)數(shù)有3種表示法:原碼、反碼和補(bǔ)碼。所有數(shù)據(jù)的運(yùn)算都是采用補(bǔ)碼進(jìn)行的。
原碼:就是二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。反碼:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼按照位取反,但符號(hào)位(最高位)不變。補(bǔ)碼:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。
主要原因:使用補(bǔ)碼,可以將符號(hào)位和其它位統(tǒng)一處理;同時(shí),減法也可按加法來(lái)處理。
另外,兩個(gè)用補(bǔ)碼表示的數(shù)相加時(shí),如果最高位(符號(hào)位)有進(jìn)位,則進(jìn)位被舍棄。
五、變量
變量概述:在程序執(zhí)行的過(guò)程中,在某個(gè)范圍內(nèi)其值可以發(fā)生改變的量
變量定義格式:數(shù)據(jù)類型 變量名 = 初始化值;
注:Java語(yǔ)言是強(qiáng)類型語(yǔ)言,對(duì)于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間
變量按數(shù)據(jù)類型劃分:
注:引用類型中還有一種特殊的null類型。所謂引用數(shù)據(jù)類型就是對(duì)一個(gè)對(duì)象的引用,對(duì)象包括實(shí)例和數(shù)組兩種。實(shí)際上,引用類型變量就是一個(gè)指針,只是Java中沒(méi)有指針這個(gè)說(shuō)法。
變量按被聲明的位置劃分:
局部變量:方法或語(yǔ)句塊內(nèi)部定義的變量成員變量:方法外部、類的內(nèi)部定義的變量
六、八種基本數(shù)據(jù)類型和類型轉(zhuǎn)換
1、計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的基本單位:
字節(jié)(Byte)是:計(jì)算機(jī)文件大小的基本計(jì)算單位。
1個(gè)字節(jié)(Byte) = 8個(gè)位(Bit)
Bit意為“位”或“比特”,是計(jì)算機(jī)運(yùn)算的基礎(chǔ);二進(jìn)制中的一位,是二進(jìn)制最小信息單位。二進(jìn)位可以用來(lái)表示一個(gè)簡(jiǎn)單的正/負(fù)的判斷,有兩種狀態(tài)的開(kāi)關(guān)(如電燈開(kāi)關(guān))。
說(shuō)明:
在內(nèi)存計(jì)算過(guò)程中,字節(jié)少的數(shù)據(jù)運(yùn)算速度更快;在硬盤存儲(chǔ)中,字節(jié)少的數(shù)據(jù)類型也可充分存入更多的數(shù)據(jù)。
2、八種基本數(shù)據(jù)類型:
注:
(1)整數(shù)默認(rèn):int。聲明long型常量必須在數(shù)字后面加‘l'或‘L' ,如: long l1 = 88888888888L; //必須加l否則會(huì)出錯(cuò)
(2)浮點(diǎn)型常量(小數(shù))默認(rèn):double。聲明一個(gè)float型常量,則需在數(shù)字后面加 f 或 F ,如:double d = 12345.6; //正確 float f = 12.3f; //必須加f否則會(huì)出錯(cuò)
(3)Java 字符采用 Unicode 編碼,每個(gè)字符占兩個(gè)字節(jié),因而可用十六進(jìn)制編碼形式表示。注:Unicode是全球語(yǔ)言統(tǒng)一編碼。Java語(yǔ)言中的字符char可以存儲(chǔ)一個(gè)中文漢字,因?yàn)閖ava語(yǔ)言中的字符占用兩個(gè)字節(jié)。
(4)boolean 類型適于邏輯運(yùn)算,一般用于程序流程控制。
boolean 類型數(shù)據(jù)只允許取值 true 或 false ,不可以 0 或非 0 的整數(shù)替代 true 和 false ,這點(diǎn)和C語(yǔ)言不同。
(5)byte、short在定義的時(shí)候,他們接收的其實(shí)是一個(gè)int類型的值。這個(gè)是自己做了一個(gè)數(shù)據(jù)檢測(cè)的,如果不再它們的范圍內(nèi),就報(bào)錯(cuò)。
128:10000000
-128:10000000 (這里的1即是符號(hào)位,也是數(shù)值位)
使用變量注意事項(xiàng):
作用域:變量定義在哪一級(jí)大括號(hào)中,哪個(gè)大括號(hào)的范圍就是這個(gè)變量的作用域。相同的作用域中不能定義兩個(gè)同名變量。初始化值:沒(méi)有初始化值不能直接使用在一行上建議只定義一個(gè)變量:可以定義多個(gè),但是不建議
3、數(shù)據(jù)類型轉(zhuǎn)換:
注:boolean類型不能轉(zhuǎn)換為其他的數(shù)據(jù)類型
默認(rèn)轉(zhuǎn)換:(從小到大的轉(zhuǎn)換)
byte,short,char—int—long—float—double
byte,short,char相互之間補(bǔ)轉(zhuǎn)換,他們參與運(yùn)算首先轉(zhuǎn)換為int類型
強(qiáng)制轉(zhuǎn)換:
目標(biāo)類型 變量名=(目標(biāo)類型)(被轉(zhuǎn)換的數(shù)據(jù));
總結(jié):那么,我們到底用那種轉(zhuǎn)換呢?
一般建議,最好不要隨意使用強(qiáng)制類型轉(zhuǎn)換,容易造成數(shù)據(jù)精度的損失。
(1)容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型時(shí),要加上強(qiáng)制轉(zhuǎn)換符,但可能造成精度降低或溢出;使用時(shí)要格外注意。
(2)有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動(dòng)的將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的那一種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。
面試題:
A:下面兩種方式有區(qū)別嗎?
float f1 = 12.345f;
float f2 = (float)12.345;
答案:有區(qū)別:f1其實(shí)是通過(guò)一個(gè)double類型轉(zhuǎn)換過(guò)來(lái)的;而f2本身就是一個(gè)float類型。
B:下面的程序有問(wèn)題嗎,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
答案:byte b3 = b1 + b2;是有問(wèn)題的。因?yàn)樽兞肯嗉?,?huì)首先看類型問(wèn)題,最終把結(jié)果賦值的也會(huì)考慮類型問(wèn)題。
常量相加,先把結(jié)果計(jì)算出來(lái),然后看是否在byte的范圍內(nèi),如果不是,才報(bào)錯(cuò)。
C:下面的操作結(jié)果是什么呢?
byte b = (byte)130;
System.out.println(b);
答案:-126
D:字符參與運(yùn)算:是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
System.out.println('a');
System.out.println('a' + 1);
E:字符串參與運(yùn)算:這里其實(shí)是字符串的拼接
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
注:這里的+不是加法運(yùn)算,而是字符串連接符。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)整數(shù)的逆序輸出的三種方法
這篇文章主要介紹了Java實(shí)現(xiàn)整數(shù)的逆序輸出的三種方法,第一種是無(wú)限制整數(shù)的逆序輸出,第二種是非負(fù)整數(shù)的逆序輸出,第三種是非特殊情況的逆序輸出,每種方法給大家講解的非常詳細(xì)需要的朋友可以參考下2022-11-11JAVA多線程處理for循環(huán)數(shù)據(jù)詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于JAVA多線程處理for循環(huán)數(shù)據(jù)的相關(guān)資料,我們?cè)诖a中經(jīng)常需要使用for循環(huán)這個(gè)操作來(lái)達(dá)到目的,而當(dāng)for循環(huán)的次數(shù)過(guò)多時(shí)我們會(huì)發(fā)現(xiàn)執(zhí)行效率會(huì)變的很低,整體耗時(shí)非常多,需要的朋友可以參考下2023-07-07Java異常處理運(yùn)行時(shí)異常(RuntimeException)詳解及實(shí)例
這篇文章主要介紹了 Java異常處理運(yùn)行時(shí)異常(RuntimeException)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下http://time.qq.com/?pgv_ref=aiotime2017-05-05Spring整合websocket整合應(yīng)用示例(下)
這篇文章主要介紹了Spring整合websocket整合應(yīng)用示例(下)的相關(guān)資料,需要的朋友可以參考下2016-04-04微信支付之公眾號(hào)支付(java實(shí)現(xiàn))
這篇文章主要介紹了微信支付之公眾號(hào)支付(java實(shí)現(xiàn)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10PowerJob的CleanService清理服務(wù)流程
這篇文章主要為大家介紹了PowerJob的CleanService清理服務(wù)流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2024-02-02SpringBoot Nacos實(shí)現(xiàn)自動(dòng)刷新
這篇文章主要介紹了SpringBoot Nacos實(shí)現(xiàn)自動(dòng)刷新,Nacos(Dynamic Naming and Configuration Service)是阿里巴巴開(kāi)源的一個(gè)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)2023-01-01