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