本文原創作者:pipi-changing
本文原創出處:http://www.cnblogs.com/pipi-changing/
本文版權歸作者和博客園共有,未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接 ,否則保留追究法律責任的權利。
關鍵字
關鍵字的定義和特點
定義:被Java語言賦予了特殊含義的單詞
特點:關鍵字中所有字母都為小寫
用於定義數據類型的關鍵字
class
interface
byte
short
int
long
float
double
char
boolean
void
用於定義數據類型值的關鍵字
true
false
null
用於定義流程控制的關鍵字
if
else
switch
case
default
while
do
for
break
continue
return
用於定義訪問權限修飾符的關鍵字
private
protected
public
用於定義類,函數,變量修飾符的關鍵字
abstract
final
static
synchronized
用於定義類與類之間關系的關鍵字
extends
implements
用於定義建立實例及引用實例,判斷實例的關鍵字
new
this
super
instanceof
用於異常處理的關鍵字
try
catch
finally
throw
throws
用於包的關鍵字
package
import
其他修飾符關鍵字
native
strictfp
transient
volatile
assert
標識符
在程序中自定義的一些名稱。 由26個英文字母大小寫,數字:0-9 符號:_ $ 組成 定義合法標識符規則:
1,數字不可以開頭。
2,不可以使用關鍵字。
Java中嚴格區分大小寫。 注意:在起名字的時,為了提高閱讀性,要盡量有意義。Java中的名稱規范:
包名:多單詞組成時所有字母都小寫。 •xxxyyyzzz 類名接口名:多單詞組成時,所有單詞的首字母大寫。 •XxxYyyZzz 變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫。 •xxxYyyZzz 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接。 •XXX_YYY_ZZZ 注釋用於注解說明解釋程序的文字就是注釋。 提高了代碼的閱讀性。 Java中的注釋格式: •單行注釋 •格式: //注釋文字 •多行注釋 •格式: /* 注釋文字 */ •文檔注釋 •格式:/** 注釋文字 */
對於單行和多行注釋,被注釋的文字,不會被JVM(java虛擬機)解釋執行 對於文檔注釋,是java特有的注釋,其中注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。
注釋是一個程序員必須要具有的良好編程習慣。 初學者編寫程序可以養成習慣:先寫注釋再寫代碼。 將自己的思想通過注釋先整理出來,在用代碼去體現。 因為代碼僅僅是思想的一種體現形式而已。 常量與變量
1,整數常量。所有整數
2,小數常量。所有小數
3,布爾(boolean)型常量。較為特有,只有兩個數值。true false。
4,字符常量。將一個數字字母或者符號用單引號( ' ' )標識。
5,字符串常量。將一個或者多個字符用雙引號(“ ”)標識。
6,null常量。只有一個數值就是:null.
對於整數:有四種表現形式。 •二進制:0,1 ,滿2進1. •八進制:0-7 ,滿8進1. 用0開頭表示。 •十進制:0-9 ,滿10進1. •十六進制:0-9,A-F,滿16進1. 用0x開頭表示。
變量的概念: •內存中的一個存儲區域 •該區域有自己的名稱(變量名)和類型(數據類型) •該區域的數據可以在同一類型范圍內不斷變化 為什麼要定義變量: •用來不斷的存放同一類型的常量,並可以重復使用 使用變量注意: •變量的作用范圍(一對{}之間有效) •初始化值 定義變量的格式: •數據類型 變量名 = 初始化值; •注:格式是固定的,記住格式,以不變應萬變。 理解:變量就如同數學中的未知數。 變量字節大小及有效取值范圍
Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存總分配了不同大小的內存空間
整數默認:int 小數默認:double
自動類型轉換(也叫隱式類型轉換) 強制類型轉換(也叫顯式類型轉換) 類型轉換的原理 什麼時候要用強制類型轉換? 表達式的數據類型自動提升 •所有的byte型、short型和char的值將被提升到int型。 •如果一個操作數是long型,計算結果就是long型; •如果一個操作數是float型,計算結果就是float型; •如果一個操作數是double型,計算結果就是double型。
自動類型提升
byte b = 3;
int x = 4;
x = x + b;//b會自動提升為int類型進行運算。
強制類型轉換
byte b = 3;
b = b + 4;//報錯
b = (byte)b+4;//強制類型轉換,強制將b+4的結果轉換為byte類型,再賦值給b。
算術運算符符號:
= , +=, -=, *=, /=, %=
示例:int a,b,c; a=b=c =3;
int a = 3; a+=5;等同運算a=a+5;
思考:
short s = 3;
s=s+2;
s+=2;
有什麼區別?
s=s+2//編譯失敗,因為s會被提升為int類型,運算後的結果還是int類型。無法賦值給short類型。
s+=2//編譯通過,因為+=運算符在給s賦值時,自動完成了強轉操作。
比較運算符
注1:比較運算符的結果都是boolean型,也就是要麼是true,要麼是false。 注2:比較運算符“==”不能誤寫成“=” 。
邏輯運算符
邏輯運算符用於連接布爾型表達式,在Java中不可以寫成3<x<6,應該寫成x>3 & x<6 。 “&”和“&&”的區別: •單&時,左邊無論真假,右邊都進行運算; •雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( | )的不同之處是:當左右都為true時,結果為false。 位運算符
位運算符
運算符
運算
范例
<<
左移
3 << 2 = 12 --> 3*2*2=12
>>
右移
3 >> 1 = 1 --> 3/2=1
>>>
無符號右移
3 >>> 1 = 1 --> 3/2=1
&
與運算
6 & 3 = 2
|
或運算
6 | 3 = 7
^
異或運算
6 ^ 3 = 5
~
反碼
~6 = -7
位運算是直接對二進制進行運算
<<:相當於乘與2的倍數
>>:相當於除以2的倍數
移n位,就是對乘以或者除以2的n次冪。
位運算符的細節
<<
空位補0,被移除的高位丟棄,空缺位補0。
>>
被移位的二進制最高位是0,右移後,空缺位補0;
最高位是1,空缺位補1。
>>>
被移位二進制最高位無論是0或者是1,空缺位都用0補。
&
二進制位進行&運算,只有1&1時結果是1,否則是0;
|
二進制位進行 | 運算,只有0 | 0時結果是0,否則是1;
^
相同二進制位進行 ^ 運算,結果是0;1^1=0 , 0^0=0
不相同二進制位 ^ 運算結果是1。1^0=1 , 0^1=1
技巧:二進制1就是true,0就是false。
1.最有效率的方式算出2乘以8等於幾?
2*8
0001
* 1000
--------
10000
2.對兩個整數變量的值進行互換(不需要第三方變量)
三元運算符
格式
•(條件表達式)?表達式1:表達式2;
•如果條件為true,運算後的結果是表達式1;
•如果條件為false,運算後的結果是表達式2;
示例:
•獲取兩個數中大數。
•int x=3,y=4,z;
•z = (x>y)?x:y;//z變量存儲的就是兩個數的大數。 程序流程控制
判斷結構
if語句
三種格式:
1.if(true)
{
執行語句;
}
2.if(條件表達式)
{
執行語句;
}
else
{
執行語句;
}
3.if(條件表達式)
{
執行語句;
}
else if (條件表達式)
{
執行語句;
}
……
else
{
執行語句;
}
if語句特點:
a,每一種格式都是單條語句。
b,第二種格式與三元運算符的區別:三元運算符運算完要有值出現。好處是:可以寫在其他表達式中。
c,條件表達式無論寫成什麼樣子,只看最終的結構是否是true 或者 false;
選擇結構
switch語句
格式:
switch(表達式)
{
case 取值1:
執行語句;
break;
case 取值2:
執行語句;
break;
…...
default:
執行語句;
break;
}
switch語句特點:
a, switch語句選擇的類型只有四種:byte,short,int , char。
b, case之間與default沒有順序。先執行第一個case,沒有匹配的case執行default。
c, 結束switch語句的兩種情況: 遇到break,執行到switch語句結束。
d, 如果匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行可以執行的語句,直到遇到break或者switch結尾結束。
循環結構
代表語句:while , do while , for
while語句格式:
while(條件表達式)
{
執行語句;
}
do while語句格式:
do
{
執行語句;
}while(條件表達式);
do while特點:
是條件無論是否滿足,
循環體至少執行一次。
格式:
for(初始化表達式;循環條件表達式;循環後的操作表達式)
{
執行語句;(循環體)
}
注:
a, for裡面的兩個表達式運行的順序,初始化表達式只讀一次,判斷循環條件,為真就執行循環體,
然後再執行循環後的操作表達式,接著繼續判斷循環條件,重復找個過程,直到條件不滿足為止。
b, while與for可以互換,區別在於for為了循環而定義的變量在for循環結束時就在內存中釋放。
而while循環使用的變量在循環結束後還可以繼續使用。
c, 最簡單無限循環格式:while(true) , for(;;),無限循環存在的原因是並不知道循環多少次,而是根據某些條件,來控制循環。
其他流程控制語句
break(跳出), continue(繼續)
break語句:應用范圍:選擇結構和循環結構。
continue語句:應用於循環結構。
注:
a,這兩個語句離開應用范圍,存在是沒有意義的。
b,這個兩個語句單獨存在下面都不可以有語句,因為執行不到。
c,continue語句是結束本次循環繼續下次循環。
d,標號的出現,可以讓這兩個語句作用於指定的范圍。