Java语法基础-1
1. 關鍵字
1.1 關鍵字概述
被Java語言賦予特定含義的單詞
1.2 關鍵字特點
組成關鍵字的字母全部小寫
1.3 關鍵字注意事項
- goto和const作為保留字存在,目前并不使用
- 類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀
2. 標識符
2.1 標識符概述
就是給類,接口,方法,變量等起名字時使用的字符序列
2.2 組成規則
由英文大小寫字母、數字字符、$(美元符號)、_(下劃線)組成
2.3 注意事項
- 不能以數字開頭
- 不能是Java中的關鍵字
- 區分大小寫
2.4 標識符常見命名規則:見名知意
2.4.1 包
其實就是文件夾,用于把相同的類名進行區分,全部小寫,單級:liuyi,多級:cn.itcast
2.4.2 類或者接口
一個單詞:單詞的首字母必須大寫,舉例:Student,Dog
多個單詞:每個單詞的首字母必須大寫舉例:HelloWorld,StudentName
2.4.3 方法和變量
一個單詞:單詞的首字母小寫,舉例:main,age
多個單詞:從第二個單詞開始,每個單詞的首字母大寫,舉例:studentAge,showAllNames()
2.4.4 常量
一個單詞:全部大寫,舉例:PI
多個單詞:每個字母都大寫,用_隔開,舉例:STUDENT_MAX_AGE
3. 注釋
3.1 注釋概述
用于解釋說明程序的文字
3.2 Java中注釋分類格式
- 單行注釋,格式: //注釋文字
- 多行注釋,格式: /* 注釋文字 */
- 文檔注釋,格式:/* 注釋文字 /
- 對于單行和多行注釋,被注釋的文字,不會被JVM(java虛擬機)解釋執行
- 對于文檔注釋,是java特有的注釋,其中注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔
- 注釋是一個程序員必須要具有的良好編程習慣
- 初學者編寫程序可以養成習慣:先寫注釋再寫代碼
- 將自己的思想通過注釋先整理出來,在用代碼去體現
- 因為代碼僅僅是思想的一種體現形式而已
4. 常量、進制和進制轉換
4.1 常量概述
在程序執行的過程中其值不可以發生改變
4.2 Java中常量分類
4.2.1 字面值常量
- 字符串常量:用雙引號括起來的內容,舉例:“hello”,“world”
- 整數常量:所有整數,舉例:12,23
- 小數常量:所有小數,舉例:12.34,56.78
- 字符常量:用單引號括起來的內容,舉例:‘a’,’A’,’0’
- 布爾常量,較為特有,舉例:true,false
- 空常量,舉例:null
4.2.2 自定義常量
/*常量:在程序執行過程中,其值不發生改變的量。分類:A:字面值常量B:自定義常量(后面講)字面值常量A:字符串常量 用雙引號括起來的內容。舉例:"hello","world","HelloWorld"B:整數常量 所有的整數舉例:100,200C:小數常量 所有的小數舉例:10.23,110.11D:字符常量 用單引號括起來的內容舉例:'a','A','0'錯誤的:'ab'E:布爾常量 比較特殊舉例:true,falseF:空常量 后面講舉例:null */ class ConstantDemo {public static void main(String[] args) {//字符串常量的輸出System.out.println("hello");//整數常量的輸出System.out.println(100);//小數常量的輸出System.out.println(100.10);//字符常量的輸出System.out.println('a');System.out.println('A');System.out.println('0');//這個是有問題的//System.out.println('ab');//布爾常量的輸出System.out.println(true);System.out.println(false);} }4.3 Java針對整數常量提供了4種表現形式
二進制,八進制,十進制,十六進制
4.4 進制概述
進制:就是進位制,是人們規定的一種進位方法。 對于任何一種進制–X進制,就表示某一位置上的數運算時是逢X進一位。二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一。
PS:
二進制的由來:任何數據在計算機中都是以二進制的形式存在的。二進制早期由電信號開關演變而來。
一個整數在內存中一樣也是二進制的,但是使用一大串的1或者0組成的數值進行使用很麻煩。所以就想把一大串縮短點,將二進制中的三位用一位表示。這三位可以取到的最大值就是7超過7就進位了,這就是八進制。但是對于過長的二進制變成八進制還是較長,所以出現的用4個二進制位表示一位的情況,四個二進制位最大是15,這就是十六進制。
規律:進制越大,表現形式越短。
4.5 不同進制的數據組成
- 二進制,由0,1組成。以0b開頭
- 八進制,由0,1,…7組成。以0開頭
- 十進制,由0,1,…9組成。整數默認是十進制的
- 十六進制,由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭
運行結果
4.6 進制轉換
- 其他進制到十進制
- 十進制到其他進制
- 十進制和二進制的快速轉換,8421碼,也叫BCD碼
- 二進制和八進制,十六進制如何轉換
以十進制作為橋梁,二進制到八進制 3位組合,二進制到十六進制4位組合
PS:
1、其他進制到十進制
- 系數:就是每一位上的數據
- 基數:X進制,基數就是X
- 權:在右邊,從0開始編號,對應位上的編號即為該位的權
- 結果:把系數*基數的權次冪相加即可
2、十進制到其他進制
除基取余,直到商為0,余數反轉。
4.7 有符號數據表示法
在計算機內,有符號數有3種表示法:原碼、反碼和補碼。所有數據的運算都是采用補碼進行的
- 原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小
- 反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外
- 補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1
4.8 練習
4.8.1 得到下面數據的十進制值
0b10101=12^4 + 12^2 + 1*2^0 =16 + 4 + 1 =21 0123=18^2 + 28^1 + 3*8^0 =64 + 16 + 3 =83 0x3c=316^1 + c16^0 =48 + 12 =604.8.2 得到下面數據的二進制,十進制,十六進制
52分別得到二進制,十進制,十六進制
得到二進制:
52 / 2 = 26 026 / 2 = 13 013 / 2 = 6 16 / 2 = 3 03 / 2 = 1 11 / 2 = 0 10b110100得到八進制:
52 / 8 = 6 46 / 8 = 0 6064得到十六進制:
52 / 16 = 3 43 / 16 = 0 30x344.8.3 有符號數據表示法的練習
A:已知某數X的原碼為10110100B,試求X的補碼和反碼。
符號位 數值位
原碼:10110100
反碼:11001011
補碼:11001100
B:已知某數X的補碼11101110B,試求其原碼
符號位 數值位
補碼: 11101110
反碼: 11101101
原碼: 10010010
5. 變量
5.1 變量概述
在程序執行的過程中,在某個范圍內其值可以發生改變的量,理解:如同數學中的未知數
5.2 變量定義格式
數據類型 變量名 = 初始化值;
注意:格式是固定的,記住格式,以不變應萬變
5.3 變量的組成規則
1、從本質上講,變量其實是內存中的一小塊區域,使用變量名來訪問這塊區域,因此,每一個變量使用前必須要先申請(聲明),然后必須進行賦值(填充內容),才能使用。通過畫圖說明一個變量的組成部分
? 數據類型,變量名,變量值
2、為什么要定義變量呢?用來不斷的存放同一類型的常量,并可以重復使用
6. 數據類型和類型轉換
6.1 數據類型
6.1.1 Java語言是強類型語言,對于每一種數據都定義了明確的具體數據類型,在內存總分配了不同大小的內存空間
6.1.2 所謂有效數字:具體地說,是指在分析工作中實際能夠測量到的數字。所謂能夠測量到的是包括最后一位估計的,不確定的數字。對于一個近似數,從左邊第一個不是0的數字起,到精確到的位數止,所有的數字都叫做這個數的有效數字。
6.1.3 Java 各整數類型有固定的表數范圍和字段長度,其不受具體操作系統的影響,以保證Java程序的可移植性。
Java語言的整型常量默認為int型,聲明long型常量可以后加‘ l ’或‘ L ’ ,如:
int i1 = 600; //正確 long l1 = 88888888888L; //必須加l否則會出錯
與整數類型類似,Java浮點類型有固定的表數范圍和字段長度,不受平臺影響。
Java浮點類型常量有兩種表示形式,十進制數形式,如: 3.14 314.0
科學記數法形式,如 3.14e2 3.14*10^2
Java 浮點型常量默認為 double 型,如要聲明一個常量為 float 型,則需在數字后面加 f 或 F ,如:
double d = 12345.6; //正確 float f = 12.3f; //必須加f否則會出錯
char 型數據用來表示通常意義上的“字符”
- 字符常量為用單引號括起來的單個字符,例如:char ch1= ‘a’; char ch2=’中’;
- Java字符采用 Unicode 編碼,每個字符占兩個字節,因而可用十六進制編碼形式表示。
- 注:Unicode是全球語言統一編碼
boolean 類型適于邏輯運算,一般用于程序流程控制 。
- boolean 類型數據只允許取值 true 或 false ,不可以 0 或非 0 的整數替代 true 和 false ,這點和C語言不同。
- 數據類型
- 基本數據類型:整型byte、short、int、long,浮點型float、double,字符型char,布爾型boolean
- 引用數據類型:類class、接口interface、數組[]
運行結果:
6.1.4 使用變量的時候要注意的問題:
A:作用域
變量定義在哪個大括號內,它就在這個大括號內有效。
并且,在同一個大括號內不能同時定義同名的變量。
B:初始化值
沒有初始化值的變量不能直接使用。
你只要在使用前給值就行,不一定非要在定義的時候立即給值。
推薦在定義的時候給值。
定義變量的格式:
? a:數據類型 變量名 = 初始化值;
? b:數據類型 變量名;
變量名 = 初始化值;
C:在一行上建議只定義一個變量
? 可以定義多個,但是不建議
6.2 類型轉換
6.2.2 默認轉換(從小到大的轉換)
A:byte,short,char—int—long—float—double
B:byte,short,char相互之間不轉換,他們參與運算首先轉換為int類型
6.2.2 強制轉換:
從大的數據類型到小的數據類型
格式:目標數據類型 變量 = (目標數據類型) (被轉換的數據);
注意:不要隨意的去使用強制轉換,因為它隱含了精度損失問題
1、在定義Long或者Float類型變量的時候,要加L或者f。
? 整數默認是int類型,浮點數默認是double。
? byte,short在定義的時候,他們接收的其實是一個int類型的值。
? 這個是自己做了一個數據檢測的,如果不再它們的范圍內,就報錯。
2、byte值的問題
byte b1 = 127; byte b2 = (byte)128; //-128 byte b3 = (byte)129; //-127 byte b4 = (byte)130; //-126 byte的范圍:-128 ~ 127 128:10000000 -128:10000000 (這里的1即是符號位,也是數值位)3、數據類型轉換之默認轉換
byte,short,char – int – long – float – double
long:8個字節
float:4個字節
A:它們底層的存儲結構不同
B:float表示的數據范圍比long的范圍要大
long:2^63-1
float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
4、Java語言中的字符char可以存儲一個中文漢字嗎?為什么呢?
? 可以。因為java語言中的字符占用兩個字節。Java語言采用的是Unicode編碼。
7. 運算符
7.1 運算符
- 運算:對常量和變量進行操作的過程稱為運算。
- 運算符:對常量和變量進行操作的符號稱為運算符
- 操作數:參與運算的數據稱為操作數
- 用運算符把常量或者變量連接起來符號java語法的式子就可以稱為表達式。
不同運算符連接的式子體現的是不同類型的表達式。
舉例:int a = 3 + 4;
這是做了一個加法運算,+就是運算符,是算術運算符,我們還有其他很多的運算符,3和4就是參與運算的操作數據,3 + 4整體其實就是一個算數表達式
7.2 算術運算符
除法的時候要注意一個問題,整數相除,只能得到整數,要想得到小數,可以*1.0
- ++和–的應用
單獨使用:放在操作數的前面和后面效果一樣。(這種用法是我們比較常見的)
參與運算使用:放在操作數的前面,先自增或者自減,然后再參與運算;放在操作數的后面,先參與運算,再自增或者自減。
作用:就是對變量進行自增1或者自減1。 - +的用法:加法,正號,字符串連接符
- 運算符的優先級(由高到低)
7.3 賦值運算符
基本的賦值運算符:=,把=右邊的數據賦值給左邊。
擴展的賦值運算符:+=、-=,*=,/=,%=,+= 把左邊和右邊做加法,然后賦值給左邊。
7.4 關系運算符
- 比較運算符的結果都是boolean型,也就是要么是true,要么是false。
- 比較運算符“==”不能誤寫成“=”
7.5 邏輯運算符
- 邏輯運算符用于連接布爾型表達式,在Java中不可以寫成3
7.6 位運算符
位運算是直接對二進制進行運算
/*位運算符:&,|,^,~<<,>>,>>>注意:要做位運算,首先要把數據轉換為二進制。 */ class OperatorDemo {public static void main(String[] args) {//&,|,^,~int a = 3;int b = 4;System.out.println(3 & 4);System.out.println(3 | 4);System.out.println(3 ^ 4);System.out.println(~3);} } /*分析:因為是位運算,所以我們必須先把數據換算成二進制。3的二進制:1100000000 00000000 00000000 000000114的二進制:10000000000 00000000 00000000 00000100&位與運算:有0則0。00000000 00000000 00000000 00000011&00000000 00000000 00000000 00000100-----------------------------------00000000 00000000 00000000 00000000結果是:0|位或運算:有1則1。00000000 00000000 00000000 00000011|00000000 00000000 00000000 00000100-----------------------------------00000000 00000000 00000000 00000111結果是:7^位異或運算:相同則0,不同則1。00000000 00000000 00000000 00000011&00000000 00000000 00000000 00000100-----------------------------------00000000 00000000 00000000 00000111結果是:7~按位取反運算符:0變1,1變000000000 00000000 00000000 00000011~11111111 11111111 11111111 11111100 (補碼)補碼:11111111 11111111 11111111 11111100反碼:11111111 11111111 11111111 11111011原碼:10000000 00000000 00000000 00000100結果是:-4 */7.7 三目運算符
- 格式:(關系表達式)?表達式1:表達式2;
- 如果條件為true,運算后的結果是表達式1;
- 如果條件為false,運算后的結果是表達式2;
- 示例:獲取兩個數中大數。
總結
以上是生活随笔為你收集整理的Java语法基础-1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NIO和AIO
- 下一篇: Java语法基础-2