Java基礎入門
一.Java的運行原理
首先介紹幾個東西,jdk 為java的開發工具 ,jvm Java的虛擬機, jre java的運行環境
在此也將java分為了幾個版本,javaSE java標準版 做桌面類,javaMe做Java移動端,javaEE做Java企業級開發
Java的運行原理是將.java源文件執行javac命令通過JVM Java虛擬機把.java源文件編譯成.class結尾的字節碼文件,在執行java命令通過Java虛擬機把字節碼文件解釋為特定平臺能夠識別的機器碼
二.標識符
1.所有的表示符都因該由字母,下劃線,美元符開始
2.首字符以後還可以使用數字。
3.關鍵字不能用作標識符
4.表示符是大小寫敏感的
三.變量
變量分為:局部變量,類變量(靜態變量),成員變量(非靜態變量)
1.局部變量
局部變量聲明在方法、構造方法或者語句塊中;
局部變量在方法、構造方法、或者語句塊被執行的時候創建,當它們執行完成後,變量將會被銷毀;
訪問修飾符不能用於局部變量;
局部變量只在聲明它的方法、構造方法或者語句塊中可見;
局部變量是在棧上分配的。
局部變量沒有默認值,所以局部變量被聲明後,必須經過初始化,才可以使用。
2.類變量
類變量也稱為靜態變量,在類中以 static 關鍵字聲明,但必須在方法之外。
無論一個類創建了多少個對象,類只擁有類變量的一份拷貝。
靜態變量除了被聲明為常量外很少使用。常量是指聲明為public/private,final和static類型的變量。常量初始化後不可改變。
靜態變量在第一次被訪問時創建,在程序結束時銷毀。
與實例變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為public類型。
默認值和實例變量相似。數值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構造方法中指定。此外,靜態變量還可以在靜態語句塊中初始化。
靜態變量可以通過:ClassName.VariableName的方式訪問。
類變量被聲明為public static final類型時,類變量名稱一般建議使用大寫字母。如果靜態變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;
當一個對象被實例化之後,每個實例變量的值就跟著確定;
實例變量在對象創建的時候創建,在對象被銷毀的時候銷毀;
實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
實例變量可以聲明在使用前或者使用後;
訪問修飾符可以修飾實例變量;
實例變量對於類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;
實例變量具有默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;
實例變量可以直接通過變量名訪問。但在靜態方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。
四.函數聲明及使用
訪問修飾符 返回值類型 函數名稱(參數類型 參數名稱){
函數體
}
例如
public void setXXX(String a){//無返回值的帶參函數
this.a = a;
}
public String getXXX(String a){//有返回值的帶參函數
return a;
}
public void setXXX(){//無返回值的無參函數
String a;
this.a = a;
}
public String getXXX(){//有返回值的無參函數
String a = "";
五.基本數據類型
Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。
整數型
byte:byte 數據類型是8位、有符號的,以二進制補碼表示的整數;
short:short 數據類型是 16 位、有符號的以二進制補碼表示的整數;
int:int 數據類型是32位、有符號的以二進制補碼表示的整數;
long:long 數據類型是 64 位、有符號的以二進制補碼表示的整數;
浮點型
float:float 數據類型是單精度、32位、符合IEEE 754標準的浮點數;
double:double 數據類型是雙精度、64 位、符合IEEE 754標準的浮點數;
字符類型
char:char類型是一個單一的 16 位 Unicode 字符;
布爾類型
boolean:boolean數據類型表示一位的信息;
五。運算符
1.算術運算符
算術運算符用在數學表達式中,它們的作用和在數學中的作用一樣
+ 加法 - 相加運算符兩側的值 A + B 等於 30
- 減法 - 左操作數減去右操作數 A – B 等於 -10
* 乘法 - 相乘操作符兩側的值 A * B等於200
/ 除法 - 左操作數除以右操作數 B / A等於2
% 取余 - 左操作數除以右操作數的余數 B%A等於0
++ 自增: 操作數的值增加1 B++ 或 ++B 等於 21(區別詳見下文)
-- 自減: 操作數的值減少1
2.關系運算符
下表為Java支持的關系運算符
== 檢查如果兩個操作數的值是否相等,如果相等則條件為真。 (A == B)為假。
!= 檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。 (A != B) 為真。
> 檢查左操作數的值是否大於右操作數的值,如果是那麽條件為真。 (A> B)為假。
< 檢查左操作數的值是否小於右操作數的值,如果是那麽條件為真。 (A <B)為真。
>= 檢查左操作數的值是否大於或等於右操作數的值,如果是那麽條件為真。 (A> = B)為假。
<= 檢查左操作數的值是否小於或等於右操作數的值,如果是那麽條件為真。 (A <= B)為真。
3.位運算符
Java定義了位運算符,應用於整數類型(int),長整型(long),短整型(short),字符型(char),和字節型(byte)等類型。
作符 描述 例子
& 如果相對應位都是1,則結果為1,否則為0 (A&B),得到12,即0000 1100
| 如果相對應位都是0,則結果為0,否則為1 (A | B)得到61,即 0011 1101
^ 如果相對應位值相同,則結果為0,否則為1 (A ^ B)得到49,即 0011 0001
? 按位取反運算符翻轉操作數的每一位,即0變成1,1變成0。 (?A)得到-61,即1100 0011
<< 按位左移運算符。左操作數按位左移右操作數指定的位數。 A << 2得到240,即 1111 0000
>> 按位右移運算符。左操作數按位右移右操作數指定的位數。 A >> 2得到15即 1111
>>> 按位右移補零操作符。左操作數的值按右操作數指定的位數右移,移動得到的空位以零填充。 A>>>2得
4.邏輯運算符
下表列出了邏輯運算符的基本運算,假設布爾變量A為真,變量B為假
&& 稱為邏輯與運算符。當且僅當兩個操作數都為真,條件才為真。 (A && B)為假。
| | 稱為邏輯或操作符。如果任何兩個操作數任何一個為真,條件為真。 (A | | B)為真。
! 稱為邏輯非運算符。用來反轉操作數的邏輯狀態。如果條件為true,則邏輯非運算符將得到false。 !(A && B)為真。
5.賦值運算符
下面是Java語言支持的賦值運算符:
操作符 描述 例子
= 簡單的賦值運算符,將右操作數的值賦給左側操作數 C = A + B將把A + B得到的值賦給C
+ = 加和賦值操作符,它把左操作數和右操作數相加賦值給左操作數 C + = A等價於C = C + A
- = 減和賦值操作符,它把左操作數和右操作數相減賦值給左操作數 C - = A等價於C = C -
A
* = 乘和賦值操作符,它把左操作數和右操作數相乘賦值給左操作數 C * = A等價於C = C * A
/ = 除和賦值操作符,它把左操作數和右操作數相除賦值給左操作數 C / = A等價於C = C / A
(%)= 取模和賦值操作符,它把左操作數和右操作數取模後賦值給左操作數 C%= A等價於C = C%A
<< = 左移位賦值運算符 C << = 2等價於C = C << 2
>> = 右移位賦值運算符 C >> = 2等價於C = C >> 2
&= 按位與賦值運算符 C&= 2等價於C = C&2
^ = 按位異或賦值操作符 C ^ = 2等價於C = C ^ 2
| = 按位或賦值操作符 C | = 2等價於C = C | 2
六.修飾符
1.訪問修飾符
Java中,可以使用訪問控制符來保護對類、變量、方法和構造方法的訪問。Java 支持 4 種不同的訪問權限。
-
default (即缺省,什麽也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
-
private : 在同一類內可見。使用對象:變量、方法。
-
public : 對所有類可見。使用對象:類、接口、變量、方法
-
protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。
2.非訪問修飾符
為了實現一些其他的功能,Java 也提供了許多非訪問修飾符。
static 修飾符,用來修飾類方法和類變量。
final 修飾符,用來修飾類、方法和變量,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,是不可修改的。
abstract 修飾符,用來創建抽象類和抽象方法。
synchronized 和 volatile 修飾符,主要用於線程的編程。
七.循環結構
1.while 循環
while是最基本的循環,它的結構為:
while( 布爾表達式 ) { //循環內容 } 2.do…while 循環 對於 while 語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。do…while 循環和 while 循環相似,不同的是,do…while 循環至少會執行一次。 do{ //循環內容 }while 3.for 循環雖然所有循環結構都可以用 while 或者 do...while表示,但 Java 提供了另一種語句 —— for 循環,使一些循環結構變得更加簡單。for循環執行的次數是在執行前就確定的。語法格式如下:
for(初始化; 布爾表達式; 更新) {
//代碼語句 }
八.條件語句
if…else 的用法如下:
if(布爾表達式){ //如果布爾表達式的值為true }else{ //如果布爾表達式的值為false } if(布爾表達式 1){ //如果布爾表達式 1的值為true執行代碼}else if( 布爾表達式 2){ //如果布爾表達式 2的值為true執行代碼 }else if( 布爾表達式 3){ //如果布爾表達式 3的值為true執行代碼 }else { //如果以上布爾表達式都不為true執行代碼 }
Java基礎入門