【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出
???目錄
?1 注釋
?2 數(shù)據(jù)類型
?3 變量與常量
?4 關(guān)鍵字、標(biāo)識符
?5 運算符
?6 鍵入值、輸出值
?1 注釋
????????注釋就是寫在程序中對代碼進(jìn)行解釋說明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注釋雖然寫在程序中,但是并不參與程序的執(zhí)行,javac.exe程序在將.java文件編譯成.class文件時將不再保留注釋。
注釋的三種格式:
- 單行注釋:// 注釋內(nèi)容
- 多行注釋:/*? 注釋內(nèi)容 */
- 文檔注釋:/**? ?注釋內(nèi)容? ?*/
IDEA中相關(guān)的快捷鍵:
- 對選中的代碼行進(jìn)行單行注釋,默認(rèn)為光標(biāo)所在代碼行進(jìn)行單行注釋:Ctrl + /
- 對選中的代碼行進(jìn)行多行注釋,默認(rèn)在光標(biāo)處添加一個多行注釋:Ctrl + Shift + /
上述快捷鍵按單數(shù)次是加注釋,雙數(shù)次是解開注釋。
?2 數(shù)據(jù)類型
? ? ? ? Java是一種強(qiáng)類型語言,這就意味著必須為每一個變量聲明一種類型。數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,基本數(shù)據(jù)類型又分為4類8種。
2.1 基本數(shù)據(jù)類型
?????2.1.1?整型
| 類型 | 占用字節(jié)數(shù) | 取值范圍 |
| byte | 1 | -128 ~ 127 |
| short | 2 | -32768 ~ 32767 |
| int | 4 | -2147483648 ~?2147483648 |
| long | 8 | -9223372036854775808 ~?9223372036854775808 |
整型數(shù)默認(rèn)為int型,所以在變量初始化的時候,長整型數(shù)值要有一個后綴L或者l表示該數(shù)值是長整型,eg:4000000L即是一個長整型數(shù)值。
????????在Java中不同進(jìn)制整型數(shù)據(jù)的書寫格式不同,二進(jìn)制以0B或者0b開頭,八進(jìn)制以0開頭,十六進(jìn)制以0X或者0x開頭,eg:97的二進(jìn)制寫法0B01100001、八進(jìn)制寫法0141、十六進(jìn)制寫法0x61
??????2.2.2 浮點類型
| 類型 | 占用字節(jié)數(shù) | 精度 |
| float | 4 | 6 ~ 7位有效數(shù)字 |
| double | 8 | 15位有效數(shù)字 |
浮點型數(shù)據(jù)默認(rèn)為double型,所以在變量初始化的時候,單精度數(shù)值要有一個后綴F或者f表示該數(shù)值是單精度的,eg:99.99F。?
? ? ? ? 浮點類型用于表示有小數(shù)部分的數(shù)值,double的精度大概是float的兩倍,所以稱float為單精度數(shù)double為雙精度數(shù)。實際上,只有很少的情況適合使用float類型,eg:需要一個單精度的庫,或者存儲的數(shù)據(jù)量很大的時候。
??????2.3.3 字符型
| 類型 | 占用字節(jié)數(shù) | 取值范圍 |
| char | 2 | 0 ~ 65535 |
? ? ? ? char型的數(shù)據(jù)使用時都要用單引號括起來,eg:'A'。除了常見的char型數(shù)據(jù),還有一些特殊的轉(zhuǎn)義字符,比如:\b表示退格、\t表示鍵盤的tab鍵、\n表示換行操作、\r表示鍵盤的enter鍵、\u加4個十六進(jìn)制數(shù)表示一個Unicode編碼值、\'表示一個單引號、\"表示一個雙引號、\\表示反轉(zhuǎn)義
??
??????2.4.4 布爾類型
| 類型 | 占用字節(jié)數(shù) | 取值范圍 |
| boolean | 1 | true 、 false |
? ? ? ? boolean型只有兩個取值范圍用于判斷邏輯條件,那就是true和false。整型值和boolean值之間不能進(jìn)行相互轉(zhuǎn)換。在C或者其他一些程序語言中,非0的值表示true即真,0表示false即假,但是在Java中boolean只有true和false兩種取值表示真假。
? ?
2.2 類型轉(zhuǎn)換
? ? 2.2.1 自動類型轉(zhuǎn)換
????????類型范圍小的變量可以直接賦值給類型范圍大的變量,char轉(zhuǎn)換成int是將其對應(yīng)的ASCII碼賦給int型變量。實線箭頭表示無損失轉(zhuǎn)換,虛線箭頭的轉(zhuǎn)換可能伴隨有精度損失,不管是什么箭頭都具有傳遞性,即不管通過幾個箭頭能指向的地方都可以進(jìn)行自動類型轉(zhuǎn)換。
? ?
??????2.2.2 表達(dá)式中的自動類型轉(zhuǎn)換
????????在表達(dá)式(用一個二元運算符連接兩個值)中,小范圍的變量會自動轉(zhuǎn)換成較大范圍的類型進(jìn)行計算。
????????😏表達(dá)式的最終結(jié)果由表達(dá)式中的最高類型決定,比如說int + long = long、long + float = float……
????????😣byte、short、char都是直接轉(zhuǎn)換成int進(jìn)行運算,也就是說byte + byte = int、short + short = int……
? ??
? ? 2.2.3 強(qiáng)制類型轉(zhuǎn)換(cast)
? ? ? ??類型范圍小的變量不可以直接賦值給類型范圍大的變量,除非使用強(qiáng)制類型轉(zhuǎn)換,否則會報錯。強(qiáng)制類型轉(zhuǎn)換的格式如下:
大數(shù)據(jù)類型 變量1 = (小數(shù)據(jù)類型) 變量2或者是數(shù)據(jù);
? ? ? ? 🤐如果在強(qiáng)制轉(zhuǎn)換的過程中,數(shù)值大小超過小數(shù)據(jù)類型的取值范圍的話,結(jié)果將會被截斷成兩個完全不同的值,eg:(byte)1500 = -36,原理如下:
? ? ? ? ?🥱浮點型強(qiáng)轉(zhuǎn)為整型,直接丟掉小數(shù)部分,只保留整數(shù)部分,而并不是結(jié)果四舍五入。
?3 變量與常量
????????變量就是一個用來存儲數(shù)據(jù)的內(nèi)存區(qū)域,且里面存儲的數(shù)據(jù)可以發(fā)生改變,常量就是存儲的數(shù)據(jù)不能發(fā)生改變的變量。
變量統(tǒng)一使用 lowerCamelCase 風(fēng)格,也就是常說的駝峰命名中的小駝峰,eg:femaleNum。
常量名全部大寫,單詞間用下劃線隔開,力求語義表達(dá)完整清楚,不要嫌名字長,eg:MAX_STOCK_COUNT。
??3.1 變量的聲明與賦值
聲明并初始化一個變量
數(shù)據(jù)類型 變量名 = 初始值;?
當(dāng)然在還沒想好一個變量的初始值大小的時候,可以先聲明變量再對變量進(jìn)行賦值操作。在Java中,變量的聲明要盡可能的靠近變量的第一次使用或者賦值的地方。
數(shù)據(jù)類型 變量名;
變量名 = 變量值;
Java中允許一次聲明多個變量,但是不提倡這么使用,逐一聲明更能提高程序的可讀性
數(shù)據(jù)類型 變量名,變量名,變量名……;
變量使用的注意事項:
- 變量必須先聲明才能使用
- 變量聲明后只能存儲聲明時的數(shù)據(jù)類型,其他不行
- 變量的有效范圍是從定義的位置開始到“}”截止,在同一個范圍內(nèi)定義的變量命名不能相同。
- 定義變量的時候可以沒有初始值,但是使用時變量必須是已經(jīng)初始化過的,也就是說使用時的變量必須是有值的
??
? ?3.2 常量
? ? ? ? 常量在main方法的外部定義,因此在同一個類的其他地方中也可以使用這個常量,如果這個常量還被聲明為public的話,其他類的方法也能使用它。
常量的聲明并初始化一般采用下列格式:
public static final 數(shù)據(jù)類型 常量名 = 初始值;?
?4 關(guān)鍵字、標(biāo)識符
? ? ? ? 關(guān)鍵字是Java中自己保留的一些單詞,作為特殊功能使用,比如數(shù)據(jù)類型的int、short、long、byte、double……一些特殊含義的單詞class、const、if、for、else……保留字有很多,但是不需要刻意去記,隨著學(xué)習(xí)的深入就可以自己總結(jié)一堆的關(guān)鍵字。
? ? ? ? 標(biāo)識符就是有一些字符、符號組合起來的名稱,用于給類、方法、變量等起名的規(guī)則。標(biāo)識符規(guī)則如下:
??
計算機(jī)中的數(shù)據(jù)存儲形式:
數(shù)字變量在計算機(jī)中的存儲形式:二進(jìn)制
字符變量在計算機(jī)中存儲的形式:ASCII碼
圖片、音視頻在計算機(jī)中的存儲:二進(jìn)制文件?
5 運算符
? ? 5.1? 算術(shù)運算符
| 符號 | 作用 |
| + | 加 |
| - | 減 |
| * | 乘 |
| / | 除(在Java中兩個整數(shù)相處的結(jié)果還是整數(shù)) |
| % | 求余數(shù)(又叫取模運算) |
?????????“+”符號不止可以作加法運算符,在一定條件下還可以作字符串的連接符號,當(dāng)“+”兩邊都是數(shù)值的時候就是加起來得到一個值,“+”兩邊無法運算的時候就連接字符串。其運算如下:?
? ?
? ? 5.2 自增自減運算符
? ? ? ? 自增自減運算符是對變量而言的一種運算符,其他像字面量和常量就不能使用自增自減運算符。自增符號就是++,自減符號就是--?,并且符號放在變量左右的位置不同其運算結(jié)果也會不同。符號在變量左面表示先加減1再用,符號在變量右面表示先用再加減1
? ?
? ? 5.3 賦值運算符
賦值運算符默認(rèn)包含了一步強(qiáng)制轉(zhuǎn)換,并不會像普通的表達(dá)式一樣運算結(jié)果由最大的類型決定。
| 算式 | 等價 |
| a = b | a = b |
| a += b | a = (a的數(shù)據(jù)類型)a + b |
| a -= b | a = (a的數(shù)據(jù)類型)a - b |
| a *= b | a = (a的數(shù)據(jù)類型)a * b |
| a /= b | a = (a的數(shù)據(jù)類型)a / b |
| a %= b | a = (a的數(shù)據(jù)類型)a % b |
? ?5.4 條件運算符
條件運算符是對數(shù)據(jù)進(jìn)行條件判斷的符號,最終會返回一個比較的布爾值結(jié)果也就是true或者false
| 符號 | 說明 |
| == | 判斷是否左右相等 |
| != | 判斷是否左右不相等 |
| > | 判斷是否左大于右 |
| >= | 判斷是否左大于等于右 |
| < | 判斷是否左小于右 |
| <= | 判斷是否左小于等于右 |
? ?
? 5.5 位運算符
? ? ? ?5.5.1 邏輯運算符
| 符號 | 名稱 | 說明 |
| & | 邏輯與(并且) | 全真為真,有假則假 |
| | | 邏輯或(或者) | 全假為假,有真則真 |
| ! | 邏輯非 | 取反操作,非真為假,非假為真 |
| ^ | 邏輯異或 | 相同為假,不同為真 |
除以上邏輯運算符外,還有兩種短路邏輯運算符&&(短路與)和||(短路或),它們倆的運算結(jié)果和邏輯與、邏輯或的結(jié)果一樣,區(qū)別在于:邏輯與、邏輯或無論左邊是true還是false都要執(zhí)行右邊的表達(dá)式,短路與左邊為false不執(zhí)行右邊,短路或左邊是true不執(zhí)行右邊。
? ? 5.5.2 移位運算符?
移位運算符在進(jìn)行運算之前都要轉(zhuǎn)換成二進(jìn)制形式,移位操作是對二進(jìn)制數(shù)的操作。
| 符號 | 說明 |
| >> | 向右移相應(yīng)位數(shù),低位舍去,高位補(bǔ)符號位 |
| << | 向左移相應(yīng)位數(shù),高位舍去,低位補(bǔ)0 |
| >>> | 向右移相應(yīng)位數(shù),低位舍去,高位補(bǔ)0 |
??? 移位運算符的右操作數(shù)需要完成模32運算(除非左操作數(shù)是long型,long型進(jìn)行模64運算),eg:1 >> 35? ?<==> 1 >> 3
? ?
? ??5.6 三元運算符
三元運算符是?:,其使用格式如下:
數(shù)據(jù)類型 變量名 = 條件表達(dá)式 ? 值1 : 值2;
條件表達(dá)式的結(jié)果為true時變量賦值為值1,反之變量的值為值2
? ? 5.7 運算符優(yōu)先級
6 鍵入值、輸出值
? ? 6.1 鍵入
????????無論是鍵入值還是輸出值都需要使用到System類,但是由于System和String等類在java.lang包下,所以不需要導(dǎo)包,Java默認(rèn)導(dǎo)入。
鼠標(biāo)鍵入值需要三到四個步驟
導(dǎo)包:import java.util.Scanner;
創(chuàng)建掃描器對象:
Scaaner sc = new Scanner(System.in);
輸出提醒語句:
System.out.println("提醒語句");
等待用戶輸入數(shù)據(jù):
數(shù)據(jù)類型 變量名= sc.掃描方法;
掃描方法有很多種,具體使用哪一個由前面定義變量的數(shù)據(jù)類型決定,常用的有接收整型nextInt() 、接收鍵入的一行字符串nextLine()、接收鍵入字符串以空格為分界的一個單詞next()、接收單精度數(shù)值nextFolat()、接收雙精度數(shù)值nextDouble()……
??
? ? 6.2 格式化輸出
????????從前面我們就可以知道,Java的輸出要比輸入簡單得多,僅需一句System.out.println();就可以完成輸出,但是如何進(jìn)行格式化輸出就有點困難了,加下來介紹一種格式化輸出的方法:使用靜態(tài)的String.format方法進(jìn)行格式化,可以輸出也可以用字符串變量接收不輸出。由于Java中使用其對小數(shù)進(jìn)行保留位數(shù)的操作最多,故下面主要介紹保留小數(shù)的用法(保留兩位小數(shù))當(dāng)然在格式不錯的情況下保留的位數(shù)是可以改變的
String num = String.format("%.2f",c);System.out.println(String.format("%.2f",c));上一篇:【Java從入門到頭禿專欄 1】學(xué)在Java語法之前
下一篇:?【Java從入門到頭禿專欄 3】語法篇(二)
總結(jié)
以上是生活随笔為你收集整理的【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: keyloadtool_phoenix
- 下一篇: java美元兑换,(Java实现) 美元