1. 程式人生 > >Java基礎入門

Java基礎入門

返回值 ket final das 單獨 div abstract 語句 執行

一.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類型的變量。常量初始化後不可改變。

靜態變量儲存在靜態存儲區。經常被聲明為常量,很少單獨使用static聲明變量。
靜態變量在第一次被訪問時創建,在程序結束時銷毀。
與實例變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為public類型。
默認值和實例變量相似。數值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構造方法中指定。此外,靜態變量還可以在靜態語句塊中初始化。
靜態變量可以通過:ClassName.VariableName的方式訪問。
類變量被聲明為public static final類型時,類變量名稱一般建議使用大寫字母。如果靜態變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
3.成員變量

實例變量聲明在一個類中,但在方法、構造方法和語句塊之外;
當一個對象被實例化之後,每個實例變量的值就跟著確定;
實例變量在對象創建的時候創建,在對象被銷毀的時候銷毀;
實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;
實例變量可以聲明在使用前或者使用後;
訪問修飾符可以修飾實例變量;
實例變量對於類中的方法、構造方法或者語句塊是可見的。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;
實例變量具有默認值。數值型變量的默認值是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基礎入門