Java的概念
注釋
注釋概念
用來對程序中的代碼進行解釋說明的部分
注釋的特點
編譯的時候不會檢測注釋中的語法是否正確
程序運行的時候不會運行注釋中內(nèi)容
注釋的分類
單行注釋? 樣式:? //? 注釋的內(nèi)容
單行注釋注釋的內(nèi)容不能回車
單行注釋可以嵌套
多行注釋? 樣式: /*? 注釋的內(nèi)容? ? */
多行注釋可以有回車
多行注釋不能嵌套
文本注釋(今天不講)
注釋用的總結(jié)
對代碼進行解釋說明
對程序的設(shè)計思路進行描述
可以用來調(diào)試程序(把認為有問題的代碼注釋掉,逐行打開注釋運行.直到找到錯誤所在位置)

關(guān)鍵字?
關(guān)鍵字的含義:?
在java中有一些被賦予特殊含義的英文單詞,這些單詞稱之為保留字.每個單詞都有特殊的功能?

?關(guān)鍵字特點 :
?都是純小寫字母 java是嚴格區(qū)分大小寫的: new New new1?
?其中const,goto雖然被保留了,但是沒有特殊含義?
?以后我們要給自定的內(nèi)容取名字,一定不要和關(guān)鍵字重名.

標識符
標識符的作用:?
用來給自定義內(nèi)容取名字的字符序列就叫做標識符. 以后給java中那些內(nèi)容取名字: 類, 接口, 枚舉, 變量, 常量, 方法, 包
標識符的組成內(nèi)容:
英文字母大小寫: a-z, A-Z
數(shù)字: 0-9
英文特殊符號: _(下劃線) $(美元符號)
其他國家的語言符號(中文, 日文, 泰文),實際開發(fā)不會實用.(基本不用)
標識符注意事項
不能和關(guān)鍵字重名 例如: class(錯誤)? class1(正確)
不能以數(shù)字開頭? 例如: 1a(錯誤)? a1(正確)
標識符區(qū)分大小寫 例如: a 和A? 不同的標識符

常量
常量的概念:
指的是程序的執(zhí)行過程中,值不能發(fā)生改變的量就是常量
賦值運算符:
=? 作用:把符號右邊的值,賦值給左邊的內(nèi)容
常量根據(jù)表現(xiàn)形式的分類
字面值常量 任意寫出一個數(shù)據(jù),這個數(shù)據(jù)根據(jù)他字面意思就知道它代表什么值,這樣常量就叫做字面值常量:? 比如: 5,? 3.14? “helloworld”,? -100
符號常量: 給常量取了個名字,通過這個名字就可以獲取到它存儲常量值, 根據(jù)這符號也能知道他表示的是什么意思.像這樣的常量就是符號常量? ? ? ? ? ? ? ? 例如: MAX = 100;? MIN = -100;
根據(jù)數(shù)據(jù)類型對常量的分類
基本類型的數(shù)據(jù):
簡單的數(shù)據(jù),數(shù)據(jù)就是表示自己
整數(shù)類型常量
? 隨便寫一個整數(shù)就是整型常量: 比如: 100, -1, 0, 530, 1314
小數(shù)類型常量
? 隨便寫一個小數(shù)就是小數(shù)常量: 比如:3.14, 0.2, -0.615
字符類型常量
? 使用單引號括起來的單個字符就是字符常量: 比如:’a’, ‘國’, ‘1’
布爾類型常量
? 用來表示真假的常量, 只有兩個值: true 和 false
引用類型的數(shù)據(jù):?
復(fù)雜的數(shù)據(jù)類型,數(shù)據(jù)表示不再是自身,是一種由多種其他類型的數(shù)據(jù)組合而成的類型.
字符串常量:?
使用雙引號括起來的字符序列就是字符串常量,字符序列個數(shù)可以0或者n個.? 比如: “”, “a”, “HelloWorld!!!”
空常量:?
null, 表示空,代表不指向任何內(nèi)存空間的位置. null不能打印,否則報錯

變量
數(shù)據(jù)類型
Java是一門非常嚴謹?shù)恼Z言, 所以它是一種強類型語言,在java要存儲數(shù)據(jù)的時候,就要指明這個數(shù)據(jù)在內(nèi)存中所占的空間大小. 只有這樣才能為這個數(shù)據(jù)開辟內(nèi)存空間存儲它.
數(shù)據(jù)類型的作用就是用來規(guī)定數(shù)據(jù)在內(nèi)存中所占空間大小的.java中提供了豐富的數(shù)據(jù)類型,不同的數(shù)據(jù)類型,表示的內(nèi)存空間大小是不一樣的.
java中數(shù)據(jù)類型的分類
基本類型的數(shù)據(jù)類型:?
這些類型都是在jdk中已經(jīng)提前定義好了,不能添加也不會減少,描述的都是一些簡單的數(shù)據(jù),描述的都是數(shù)據(jù)本身.
引用類型的數(shù)據(jù)類型:?
負責的數(shù)據(jù)類型,描述的不是數(shù)據(jù)本身,而是數(shù)據(jù)在內(nèi)存中地址,根據(jù)這個地址就可以找到他存儲的數(shù)據(jù). 在jdk中有一些引用類型的數(shù)據(jù)已經(jīng)提前定義好了,但是我們也可以自定引用類型的數(shù)據(jù).
基本數(shù)據(jù)類型
整數(shù)類型
byte? ? ? ? ? 1個字節(jié)
short? ? ? ? ?2個字節(jié)
int? ? ? ? ? ? ?4個字節(jié)
long? ? ? ? ? 8個字節(jié)
小數(shù)類型
float? ? ? ? ? ?4個字節(jié)
double? ? ? ?8個字節(jié)
字符類型
char? ? ? ? ? ?2個字節(jié)
布爾類型
boolean? ? ? 未知? ? ? ? ? ? ? true和false

字符類型
字符類型就是char. 存儲的都是使用單引號括起來的單個字符.
在計算機中,所有數(shù)據(jù)最終存儲到計算機中都是以二進制存儲,也就是符號不可能直接放到內(nèi)存或者硬盤上.
字符串類型
字符串是一個引用類型的數(shù)據(jù). 它也有類型名. 類型名為:String
如何定義String類型變量:
String 變量名 = 初始值;
數(shù)據(jù)類型之隱式轉(zhuǎn)換
當小范圍數(shù)據(jù)類型和大范圍數(shù)據(jù)類型在一起運算符時候, 會將小范圍數(shù)據(jù)類型自動提升為大范圍數(shù)據(jù)類型.然后再進行運算. 運算的結(jié)果依然是大范圍數(shù)據(jù)類型.
隱式轉(zhuǎn)換最直接體現(xiàn): 大范圍類型變量 = 小范圍類型變量;
數(shù)據(jù)類型隱式轉(zhuǎn)換只針對數(shù)值類型數(shù)據(jù). boolean不是數(shù)值類型數(shù)據(jù),其他基本類型都是數(shù)值類型的
數(shù)據(jù)類型范圍的大小關(guān)系羅列
? byte < short<int<long<float<double
? char < int < long < float < double
注意事項
byte, short, char, int這幾種類型在運算的時候,統(tǒng)統(tǒng)都會提升為int類型.
int及int類型范圍的數(shù)據(jù)類型做運行的時候, 也會進行類型向上提升,那個類型的范圍大,最終就提升為那個范圍的數(shù)據(jù).
例如; int + float? ---> float
? ? float + float -->? float
? ? float + double-->? double
數(shù)據(jù)類型之顯式轉(zhuǎn)換(強類型轉(zhuǎn)換)
當我們使用大范圍數(shù)據(jù)類型給小范圍的數(shù)據(jù)類型賦值的時候,就需要使用顯示轉(zhuǎn)換或者強制轉(zhuǎn)換的方式才能完成, 否則不允許直接賦值.
強制類型轉(zhuǎn)換的格式:
? 小范圍數(shù)據(jù)類型? = (小范圍數(shù)據(jù)類型名) 大范圍的數(shù)據(jù)類型;
? 比如:? short b = 10; int c = 20;
? ? ? ? ? ? b = (short)c;
注意:
? 強制類型轉(zhuǎn)換有風險, 會導(dǎo)致數(shù)據(jù)溢出.也就是數(shù)據(jù)的丟失.
運算符
運算符的概述:
就是用來對程序中的數(shù)據(jù)進行的操作的符號.
運算符的分類:
1.算術(shù)運算符
用來做算術(shù)運算符的符號
符號的羅列: +, -, *, /, %
+:加號運算符
做加法運算符
表示正數(shù)
表字符串的拼接, 只要加號運算符兩邊有一個邊字符串時,此時加號的作用就是拼接
-:減號運算符
做減法運算符
表示負數(shù)
*:乘法運算符
表示求兩個數(shù)據(jù)的乘積
/:除法運算符
表示求兩個數(shù)的商
注意:
兩邊都是整數(shù),結(jié)果依然整數(shù)
兩邊只要有一邊是小數(shù),結(jié)果就是小數(shù).
除數(shù)不能為0,否則運行報錯
%: 取余(模)運算符
求出兩個數(shù)相除之后的余數(shù)
? 除不盡,余數(shù)的正負只和被除數(shù)有關(guān),被除數(shù)是正的,余數(shù)就是正的,否則就是負的.
? 除的盡余數(shù)就是0.
? 作用: 使用它判斷一個數(shù)字的奇偶.

自增.自減運算符
1. 自增和自減運算符只能操作變量,不能操作常量.
2. 自增運算符運算完之后讓變量+1, 自減運算符運算完之后會讓變量-1.
3. 自增: ++? 運算完的結(jié)果就是變量+1
4. 自減:--? 運算完之后會讓變量 - 1
5. ++和--都可以即出現(xiàn)在變量前,也可以出現(xiàn)變量后.
6. ++和--出現(xiàn)變量前后對整個式子值的影響:
++在變量前: 先對變量加1,再把變量的值當做式子的值.? ? ---> 先加后用
? ++在變量后: 先取出變量的值當做式子的值,再對變量加1? ---> 先用后加
? --在變量前: 先對變量減1,再把變量的值當做式子的值.? ? ---> 先減后用
? --在變量后: 先取出變量的值當做式子的值,再對變量減1? ---> 先用后減

2.賦值運算符
用來給變量進行賦值操作的符號
賦值運算符的分類:
基本賦值運算符:? =
復(fù)合賦值運算符: +=, -=, *=, /=, %=
復(fù)合賦值運算符
? +=:? a+=3, 等價于: a = a + 3
? -=:? a-=3. 等價于: a = a - 3;
? *=:? a*=3 等價于: a = a*3;
? /=:? a/=3? 等價于: a = a / 3;
? %=:? a %=3? 等價于: a = a % 3;
復(fù)合賦值運算符工作的特點: 將變量使用第一個符號對右邊的數(shù)據(jù)操作之后,重新賦值給這個變量本身.

3.比較運算符
比較數(shù)據(jù)大小和數(shù)據(jù)是否相等的運算符.
分類
比較大小的運算符: >, <, >=, <=? ? 只能用來比較數(shù)值類型數(shù)據(jù)
比較是否相等的運算符: ==, !=? ? 可以任意類型的數(shù)據(jù)
運算符的結(jié)果:
比較運算符的結(jié)果都是boolean的數(shù)據(jù), 要么為true,要么為false

4.邏輯運算符
用來對邏輯值進行操作的運算符. 邏輯值指的就是boolean類型的數(shù)據(jù) ,邏輯運算符處理之后的結(jié)果依然是邏輯值.
邏輯運算符的羅列: &&(邏輯與)? || (邏輯或)? !(邏輯非)
&&: 邏輯與, 兩邊全真則真, 一假則假
? true && true? --> true
? false && true? --> false
? true && false? --> false
? false && false? -->false
||:邏輯或, 一真則真,同假才假
? true || true --> true
? false || true --> true
? true || false --> true
? false || false --> false
!:邏輯非, 非真既假,非假既真
? !true -- > false
? !false --> true

5.位運算符
對內(nèi)存中的二進制數(shù)據(jù)進行直接操作的運算符,就是位運算符.
只能操作整數(shù),? 不能操作小數(shù)
咱們要了解位運算符有哪些: <<,? >>,? >>>
<<: 左移運算符 ,每移動一位,相當于乘以2的一次方. 移動幾位就乘以2的幾次方.
5 << 1? 5 * 21? =? 10
>>: 右移運算符, 每移動一位,相當于除以2的一次方,移動幾位就除以 2個幾次方
8 >> 1? 8 / 2 = 4
-16 >> 2? -16 / 4 = -4
>>>:無符號右移運算符: 每移動一位,相當于除以2的一次方,移動幾位就除以 2個幾次方? 只能操作正整數(shù). 負數(shù)不要使用它操作.
總結(jié)特點:如果想讓數(shù)據(jù)快速求出乘2或者2除的結(jié)果,就可以使用這個符號,比直接做*和/的效率要高的多.

6.三目(元)運算符
目和元一個意思: 指的就是運算符能操作的數(shù)據(jù)個數(shù).
三目運算符: 同時能操作三個數(shù)據(jù).
格式: 表達式1 ? 表達式2 : 表達式3;
格式說明:
表達式1: 必須是一個返回值是布爾類型的式子, 如果一個式子返回值是boolean類型,這個式子就稱之為布爾表達式.
表達式2和表達式3可以是任意類型結(jié)果的式子.
三目運算符的運行規(guī)則
1. 計算表達式1的值, 要么為true,要么為false
2. 如果表達式1計算結(jié)果為true, 就會把表達式2的結(jié)果當做整個三目運算符的結(jié)果返回.
3. 如果表達式1計算結(jié)果為false, 就會把表達式3的結(jié)果當做整個三目運算符的結(jié)果返回.
