1. 程式人生 > >Java學習總結

Java學習總結

tran 錯誤 out 字符數 無效 switch語句 所有 循環控制 限定

編寫Java程序時,應註意以下幾點:
大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。
類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若幹單詞組成,那麽每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若幹單詞,則後面的每個單詞首字母大寫。
源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的後綴為.java。(如果文件名和類名不相同則會導致編譯錯誤)。
主方法入口:所有的Java 程序由public static void main(String args[])方法開始執行。




關於Java標識符,有以下幾點需要註意:
所有的標識符都應該以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始
首字符之後可以是任何字符的組合
關鍵字不能用作標識符
標識符是大小寫敏感的
合法標識符舉例:age、$salary、_value、__1_value
非法標識符舉例:123abc、-salary


Java關鍵字

下面列出了Java保留字。這些保留字不能用於常量、變量、和任何標識符的名稱。
關鍵字 描述
abstract 抽象方法,抽象類的修飾符
assert 斷言條件是否滿足
boolean 布爾數據類型
break 跳出循環或者label代碼段
byte 8-bit 有符號數據類型
case switch語句的一個條件
catch 和try搭配捕捉異常信息
char 16-bit Unicode字符數據類型
class 定義類
const 未使用
continue 不執行循環體剩余部分
default switch語句中的默認分支
do 循環語句,循環體至少會執行一次
double 64-bit雙精度浮點數
else if條件不成立時執行的分支
enum 枚舉類型
extends 表示一個類是另一個類的子類
final 表示一個值在初始化之後就不能再改變了
表示方法不能被重寫,或者一個類不能有子類
finally 為了完成執行的代碼而設計的,主要是為了程序的健壯性和完整性,無論有沒有異常發生都執行代碼。
float 32-bit單精度浮點數
for for循環語句
goto 未使用
if 條件語句
implements 表示一個類實現了接口
import 導入類
instanceof 測試一個對象是否是某個類的實例
int 32位整型數
interface 接口,一種抽象的類型,僅有方法和常量的定義
long 64位整型數
native 表示方法用非java代碼實現
new 分配新的類實例
package 一系列相關類組成一個包
private 表示私有字段,或者方法等,只能從類內部訪問
protected 表示字段只能通過類或者其子類訪問
子類或者在同一個包內的其他類
public 表示共有屬性或者方法
return 方法返回值
short 16位數字
static 表示在類級別定義,所有實例共享的
strictfp 浮點數比較使用嚴格的規則
super 表示基類
switch 選擇語句
synchronized 表示同一時間只能由一個線程訪問的代碼塊
this 表示調用當前實例
或者調用另一個構造函數
throw 拋出異常
throws 定義方法可能拋出的異常
transient 修飾不要序列化的字段
try 表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執行finally中的代碼
void 標記方法不返回任何值
volatile 標記字段可能會被多個線程同時訪問,而不做同步
while while循環


Java的兩大數據類型:
基本數據類型
引用數據類型
Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。


Java語言支持一些特殊的轉義字符序列。
符號 字符含義
\n 換行
\r 回車
\f 換頁符
\b 退格
\s 空格
\t 制表符
\" 雙引號
\‘ 單引號
\ 反斜杠


關系運算符

下表為Java支持的關系運算符
表格中的實例整數變量A的值為10,變量B的值為20:
運算符 描述 例子
== 檢查如果兩個操作數的值是否相等,如果相等則條件為真。 (A == B)為假(非真)。
!= 檢查如果兩個操作數的值是否相等,如果值不相等則條件為真。 (A != B) 為真。
> 檢查左操作數的值是否大於右操作數的值,如果是那麽條件為真。 (A> B)非真。
< 檢查左操作數的值是否小於右操作數的值,如果是那麽條件為真。 (A <B)為真。
> = 檢查左操作數的值是否大於或等於右操作數的值,如果是那麽條件為真。 (A> = B)為假。
<= 檢查左操作數的值是否小於或等於右操作數的值,如果是那麽條件為真。 (A <= B)為真。


Java 分支結構 - if...else/switch

順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。
Java有兩種分支結構:
if語句
switch語句
if語句

一個if語句包含一個布爾表達式和一條或多條語句。
語法

If語句的用語法如下:
if(布爾表達式)
{
//如果布爾表達式為true將執行的語句
}
如果布爾表達式的值為true,則執行if語句中的代碼塊。否則執行If語句塊後面的代碼。
public class Test {

public static void main(String args[]){
int x = 10;

if( x < 20 ){
System.out.print("這是 if 語句");
}
}
}
以上代碼編譯運行結果如下:
這是 if 語句
if...else語句

if語句後面可以跟else語句,當if語句的布爾表達式值為false時,else語句塊會被執行。
語法

if…else的用法如下:
if(布爾表達式){
//如果布爾表達式的值為true
}else{
//如果布爾表達式的值為false
}
實例

public class Test {

public static void main(String args[]){
int x = 30;

if( x < 20 ){
System.out.print("這是 if 語句");
}else{
System.out.print("這是 else 語句");
}
}
}
以上代碼編譯運行結果如下:
這是 else 語句
if...else if...else語句

if語句後面可以跟elseif…else語句,這種語句可以檢測到多種可能的情況。
使用if,else if,else語句的時候,需要註意下面幾點:
if語句至多有1個else語句,else語句在所有的elseif語句之後。
If語句可以有若幹個elseif語句,它們必須在else語句之前。
一旦其中一個else if語句檢測為true,其他的else if以及else語句都將跳過執行。
語法

if...else語法格式如下:
if(布爾表達式 1){
//如果布爾表達式 1的值為true執行代碼
}else if(布爾表達式 2){
//如果布爾表達式 2的值為true執行代碼
}else if(布爾表達式 3){
//如果布爾表達式 3的值為true執行代碼
}else {
//如果以上布爾表達式都不為true執行代碼
}
實例

public class Test {

public static void main(String args[]){
int x = 30;

if( x == 10 ){
System.out.print("Value of X is 10");
}else if( x == 20 ){
System.out.print("Value of X is 20");
}else if( x == 30 ){
System.out.print("Value of X is 30");
}else{
System.out.print("這是 else 語句");
}
}
}
以上代碼編譯運行結果如下:
Value of X is 30
嵌套的if…else語句

使用嵌套的if-else語句是合法的。也就是說你可以在另一個if或者elseif語句中使用if或者elseif語句。
語法

嵌套的if…else語法格式如下:
if(布爾表達式 1){
////如果布爾表達式 1的值為true執行代碼
if(布爾表達式 2){
////如果布爾表達式 2的值為true執行代碼
}
}
你可以像 if 語句一樣嵌套 else if...else。
實例

public class Test {

public static void main(String args[]){
int x = 30;
int y = 10;

if( x == 30 ){
if( y == 10 ){
System.out.print("X = 30 and Y = 10");
}
}
}
}
以上代碼編譯運行結果如下:
X = 30 and Y = 10
switch語句

switch語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
語法

switch語法格式如下:
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數量的case語句
default : //可選
//語句
}
switch語句有如下規則:
switch語句中的變量類型只能為byte、short、int或者char。
switch語句可以擁有多個case語句。每個case後面跟一個要比較的值和冒號。
case語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。
當變量的值與case語句的值相等時,那麽case語句之後的語句開始執行,直到break語句出現才會跳出switch語句。
當遇到break語句時,switch語句終止。程序跳轉到switch語句後面的語句執行。case語句不必須要包含break語句。如果沒有break語句出現,程序會繼續執行下一條case語句,直到出現break語句。
switch語句可以包含一個default分支,該分支必須是switch語句的最後一個分支。default在沒有case語句的值和變量值相等的時候執行。default分支不需要break語句。
實例

public class Test {

public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = ‘C‘;

switch(grade)
{
case ‘A‘ :
System.out.println("優秀");
break;
case ‘B‘ :
case ‘C‘ :
System.out.println("良好");
break;
case ‘D‘ :
System.out.println("及格");
case ‘F‘ :
System.out.println("你需要繼續努力");
break;
default :
System.out.println("無效等級");
}
System.out.println("Your grade is " + grade);
}
}
以上代碼編譯運行結果如下:
良好
你的等級是 C

Java中有三種主要的循環結構:
while循環
do…while循環
for循環
在Java5中引入了一種主要用於數組的增強型for循環。
while循環

while是最基本的循環,它的結構為:
while( 布爾表達式 ) {
//循環內容
}
只要布爾表達式為true,循環體會一直執行下去。
實例

public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) { System.out.print("value of x : " + x ); x++; System.out.print("\n"); } } }
以上實例編譯運行結果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
do…while循環

對於while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。
do…while循環和while循環相似,不同的是,do…while循環至少會執行一次。
do {
//代碼語句
}while(布爾表達式);
註意:布爾表達式在循環體的後面,所以語句塊在檢測布爾表達式之前已經執行了。 如果布爾表達式的值為true,則語句塊一直執行,直到布爾表達式的值為false。
實例

public class Test {

public static void main(String args[]){
int x = 10;

do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 ); } }
以上實例編譯運行結果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
for循環

雖然所有循環結構都可以用while或者do...while表示,但Java提供了另一種語句 —— for循環,使一些循環結構變得更加簡單。
for循環執行的次數是在執行前就確定的。語法格式如下:
for(初始化; 布爾表達式; 更新) {
//代碼語句
}
關於for循環有以下幾點說明:
最先執行初始化步驟。可以聲明一種類型,但可初始化一個或多個循環控制變量,也可以是空語句。
然後,檢測布爾表達式的值。如果為true,循環體被執行。如果為false,循環終止,開始執行循環體後面的語句。
執行一次循環後,更新循環控制變量。
再次檢測布爾表達式。循環執行上面的過程。
實例

public class Test {

public static void main(String args[]) {

for(int x = 10; x < 20; x = x+1) { System.out.print("value of x : " + x ); System.out.print("\n"); } } }
以上實例編譯運行結果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
Java增強for循環

Java5引入了一種主要用於數組的增強型for循環。
Java增強for循環語法格式如下:
for(聲明語句 : 表達式)
{
//代碼句子
}
聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。
實例

public class Test {

public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};

for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
以上實例編譯運行結果如下:
10,20,30,40,50,
James,Larry,Tom,Lacy,
break關鍵字

break主要用在循環語句或者switch語句中,用來跳出整個語句塊。
break跳出最裏層的循環,並且繼續執行該循環下面的語句。
語法

break的用法很簡單,就是循環結構中的一條語句:
break;
實例

public class Test {

public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

for(int x : numbers ) {
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
以上實例編譯運行結果如下:
10
20
continue關鍵字

continue適用於任何循環控制結構中。作用是讓程序立刻跳轉到下一次循環的叠代。
在for循環中,continue語句使程序立即跳轉到更新語句。
在while或者do…while循環中,程序立即跳轉到布爾表達式的判斷語句。
語法

continue就是循環體中一條簡單的語句:
continue;
實例

public class Test {

public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
以上實例編譯運行結果如下:
10
20
40
50

Java學習總結