Java基础知识复习(一)
Java基礎(chǔ)知識復(fù)習(一)
- 目錄
- Java簡介
- 命名規(guī)則
- 八種基本的數(shù)據(jù)類型
- 字面量
- 類型轉(zhuǎn)換
- 變量的形態(tài)
- 邏輯運算符
- 位運算
- 移位運算
- 習題知識點
目錄
Java簡介
Java是由Sun公司在1995年推出的Java面向?qū)ο蟪绦蛟O(shè)計語言和Java平臺的總稱。由James Gosling和同事們共同研發(fā),并在1995年正式推出。
Java分為三個體系:
命名規(guī)則
java中的類名,變量名,方法名都被稱為標識符。
標識符命名規(guī)則:
①由字母,數(shù)字,下劃線,$組成,不能以數(shù)字開頭。
②也可以使用中文來進行命名,但是原則上建議使用英文來 命名。
③大小寫敏感,java中的關(guān)鍵字不能用作標識符。
④在滿足以上命名規(guī)范的前提下,如果能做到見名知意就更好了。
類名:類名一般為名詞,類名的首字母大寫,如果由多個單詞組成,則每個單詞的首字母大寫。如:Product,GuessNumber.
方法名:方法名一般為動詞,類名的首字母小寫,如果由多個單詞組成,則第一個單詞的首字母小學,其后每個單詞的首字母均大寫。如:addDemo.
變量名:參考標識符命名規(guī)則。
八種基本的數(shù)據(jù)類型
數(shù)值型:byte/int/short/long
浮點型:float/double
字符類型(也是一種數(shù)值類型):char
布爾類型:boolean
各類型在內(nèi)存中存儲的大寫(所占字節(jié)數(shù)):
| byte | 1 |
| int | 4 |
| short | 2 |
| long | 8 |
| float | 4 |
| double | 8 |
| char | 2 |
| boolean | 沒有規(guī)定 |
字面量
在這里引入一個字面量的知識點:
比如:double a = 10;a是double類型的,但是10這個字面量的類型其實是int類型的,這里這么定義也是可以的,因為double類型所能表示的范圍要比int類型大,所以int類型的數(shù)值轉(zhuǎn)換為double類型一定不會損失精度,這里會發(fā)生自動轉(zhuǎn)換類型操作。
字面量(以下數(shù)字均為舉例子):
10----int
10L----long
10.0----double
10.0F----float
‘A’----char
true/false----boolean
類型提升:
long+double —> double
byte/short/char = int 類型的字面量時,有特殊處理,只要在可接收的范圍內(nèi)就可以。
byte/short/int/long類型溢出后,會有一個回轉(zhuǎn)操作。
如下:
類型轉(zhuǎn)換
發(fā)生在變量賦值的時候
a=?;
a的類型和?的類型不同時發(fā)生
a表示的范圍比較大自然轉(zhuǎn)換
a表示的范圍比較小,轉(zhuǎn)化的過程中可能發(fā)生精度丟失,需要強制類型轉(zhuǎn)換
變量的形態(tài)
邏輯運算符
&&(與),||(或),!(非)
注意:邏輯運算符的操作數(shù)和返回值都是boolean。
與或非的規(guī)則相信大家都很清楚了,這里不作過多的闡述。
&&和||遵循短路求值的規(guī)則:
短路求值的規(guī)則在&&中是:如果第一個條件表達式的返回值就是false,那么就不用看第二個條件表達式了,該表達式的返回值就是false。
在||中是:如果第一個條件表達式的返回值就是true,那么就不用看第二個條件表達式了,該表達式的返回值就是true。
&,|:如果操作數(shù)為為整數(shù)(int ,short,long,byte)的時候表示按位運算,當操作數(shù)為boolean的時候表示邏輯運算,但是不支持短路規(guī)則。
(p&&q)||r=(p||r)&&(q||r)
(p||q)&&r=(p&&r)||(q&&r)
!(p||q)=!p&&!q
位運算
-
方法
對整數(shù)進行操作
-
用途
優(yōu)化程序
&運算通常用于二進制的取位操作,例如一個數(shù) & 1的結(jié)果就是取二進制的最末位。這可以用來判斷一個整數(shù)的奇偶,二進制的最末位為0表示該數(shù)為偶數(shù),最末位為1表示該數(shù)為奇數(shù)。
相同位的兩個數(shù)字都為1,則為1;若有一個不為1,則為0。
| 運算通常用于二進制特定位上的無條件賦值,例如一個數(shù)| 1的結(jié)果就是把二進制最末位強行變成1。如果需要把二進制最末位變成0,對這個數(shù) |1之后再減一就可以了,其實際意義就是把這個數(shù)強行變成最接近的偶數(shù)。
相同位只要一個為1即為1。
異或的符號是^。按位異或運算, 對等長二進制模式按位或二進制數(shù)的每一位執(zhí)行邏輯按位異或操作. 操作的結(jié)果是如果某位不同則該位為1, 否則該位為0.
異或運算的逆運算是它本身,也就是說兩次異或同一個數(shù)最后結(jié)果不變,即(a ^b) ^ b = a。 ^ 運算可以用于簡單的加密,比如我想對我MM說1314520,但怕別人知道,于是雙方約定拿我的生日19880516作為密鑰。1314520 ^ 19880516 = 20665500,我就把20665500告訴MM。MM再次計算20665500 ^ 19880516的值,得到1314520。
相同位不同則為1,相同則為0。
~ 運算的定義是把內(nèi)存中的0和1全部取反。使用~ 運算時要格外小心,你需要注意整數(shù)類型有沒有符號。如果~的對象是無符號整數(shù)(不能表示負數(shù)),那么得到的值就是它與該類型上界的差.
移位運算
<< ,>> , >>>(無符號右移)
帶符號左移<<:最左側(cè)位不要了,最右側(cè)補0;
帶符號右移>>:最右側(cè)位不要了,最左側(cè)補符號位(整數(shù)補0,負數(shù)補1)
無符號右移>>>:最右側(cè)位不要了,最左側(cè)補0.
注意:
java中的%操作也能針對double進行計算
習題知識點
修飾變量,變量的引用地址不可變,但是地址中的內(nèi)容可以變。
修飾方法,方法不可被重寫,但是可以重載。
修飾類,類不可繼承。
編譯時異常必須顯示處理,運行時異常交給虛擬機。
運行時異常可以不處理。當出現(xiàn)這樣的異常時,總是由虛擬機接管。比如我們從來沒有人去處理過Null Pointer Exception異常,它就是運行時異常,并且這種異常還是最常見的異常之一。出現(xiàn)運行時異常后,系統(tǒng)會把異常一直往上層拋,一直遇到處理代碼。如果沒有處理塊,到最上層,如果是多線程就由Thread.run()拋出,如果是單線程就被main()拋出。拋出之后,如果是線程,這個線程也就退出了。如果是主程序拋出的異常,整個程序也就退出了。運行時異常是Exception的子類,也有一般異常的特點,是可以被Catch塊處理的。只不過往往不對它處理罷了。也就是說,如果不對運行時異常進行處理,那么出現(xiàn)運行時異常之后,要么是線程中止,要么是主程序終止。
正確答案: C 你的答案: D (錯誤)
A11 ,-11
B11 ,-12
C12 ,-11
D12 ,-12
Math類中提供了三個與取整有關(guān)的方法:ceil,floor,round,這些方法的作用于它們的英文名稱的含義相對應(yīng),例如:ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結(jié)果為12,Math.ceil(-11.6)的結(jié)果為-11;floor的英文是地板,該方法就表示向下取整,Math.floor(11.6)的結(jié)果是11,Math.floor(-11.4)的結(jié)果-12;round方法表示“四舍五入”,r就是取最接近整數(shù),如果遇到一樣近,則取較大值。
五個基本原則:
單一職責原則(Single-Resposibility Principle):一個類,最好只做一件事,只有一個引起它的變化。單一職責原則可以看做是低耦合、高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責定義為引起變化的原因,以提高內(nèi)聚性來減少引起變化的原因。
開放封閉原則(Open-Closed principle):軟件實體應(yīng)該是可擴展的,而不可修改的。也就是,對擴展開放,對修改封閉的。
Liskov替換原則(里氏原則)(Liskov-Substituion Principle):子類必須能夠替換其基類。這一思想體現(xiàn)為對繼承機制的約束規(guī)范,只有子類能夠替換基類時,才能保證系統(tǒng)在運行期內(nèi)識別子類,這是保證繼承復(fù)用的基礎(chǔ)。
依賴倒置原則(Dependecy-Inversion Principle):依賴于抽象。具體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象;抽象不依賴于具體,具體依賴于抽象。
接口隔離原則(Interface-Segregation Principle):使用多個小的專門的接口,而不要使用一個大的總接口
總結(jié)
以上是生活随笔為你收集整理的Java基础知识复习(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无法初始化 PowerShell 主机解
- 下一篇: 车价越低补贴越高!广州新规:购新能源车最