Java程序基本設計結構
1、Java程序基本結構
public class FirstSample {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
- public:訪問修飾符,用於控制程序其他部分對代碼的訪問級別和權限;
- class:Java程序中的全部內容都包含在類中,后跟上類名稱;
- 類名稱必須以字母開頭;
- 類名稱可以是字母和數字的任意組合;
- 類名稱不能使用Java的關鍵字和保留字;
注意:源代碼文件名必須與公共類的名稱相同,否則編譯階段會報錯。
1.1、程序的編譯和運行
- 編譯程序:javac FirstSample.java
- 運行程序:java FirstSample
編譯之后,系統會得到一個包含編譯文件類字節碼的.class文件。並與源文件保存在同一個目錄下。運行程序時候,不要添加.class擴展名。
2、數據類型
Java是一種強類型語言,必須為每個變量聲明一個類型
Java中一共有8中基本類型,其中:
- 整型:用來表示沒有小數部分的數值
1. int:4個字節(最常用)
2. short:2個字節
3. long: 8個字節
4. byte: 1個字節(-128 ~ 127) - 浮點型: 用來表示有小數部分的數值
- double:雙精度
- float:單精度
- char類型:表示單個字符
- 布爾值類型:boolean,用來判斷邏輯條件,整型和布爾型之間不能互相轉換
- true:邏輯判斷正確;
- false:邏輯判斷正確;
3、變量
在Java中,每一個變量都屬於一種類型,在聲明時要將變量的所屬類型位於變量之前,變量在使用之前必須要進行賦值或初始化。
double salary;
int vacationDays;
boolean flag;
3.1、變量初始化
Java中,使用一個變量之前,必須要對變量進行初始化,否則,Java編譯器會報錯
public class TestVariable {
public static void main(String[] args) {
double salary;
System.out.println(salary);
/**
* C:\Users\Administrator\Desktop\Java>javac TestVariable.java
* TestVariable.java:5: 錯誤: 可能尚未初始化變量salary
* System.out.println(salary);
*/
}
}
在Java中使用等號"="來對變量進行賦值操作:
double salary;
salary = 2500.00;
// double salary = 2500.00
System.out.println(salary); //2500.00
4、運算符
在Java中,使用算數運算符+、-、 *、 / 、% 來表示加減乘除和取余(取模)。在進行整數運算時,被0整除將會產生異常,而浮點整數被0整除將會得到無窮大或者NaN。
在賦值的語句中可以采用簡化的格式來書寫二元算數運算符。
public class TestOperators {
public static void main(String[] args) {
int x = 10;
int y = 2;
System.out.println("x + y = " + (x + y));
System.out.println("x - y = " + (x - y));
System.out.println("x * y = " + x * y);
System.out.println("x / y = " + x / y);
System.out.println("x % y = " + x % y);
// x = x + 2;
x += 2;
System.out.println("現在X的值為:"+x);
// 運行結果:
// x + y = 12
// x - y = 8
// x * y = 20
// x / y = 5
// x % y = 0
// 現在X的值為:12
}
}
4.1、自增運算符和自減運算符
Java中,使用了自增和自減運算符,n++表示將變量n的當前值加1,n--表示將n的當前值-1。運算符有兩種形式,一種是前綴,一種是后綴。兩種方式都是對變量值加或者減1,但是在表達式中,前綴方式是先進行加減1運算,后綴方式則是先用原來的值運行,然后在加減1。
int m = 7;
int a = 2 * m++;
int b = 2 * ++m;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("m = " + m);
// 運行結果:
// a = 14
// b = 18
// m = 9
4.2、關系運算符與Boolean運算符
Java包含各種關系運算符,其中使用 ==
檢測是否相等,使用 !=
檢測是否不相等。也用<
、 >
、<=
、 >=
。用 &&
表示邏輯“與”,用 ||
表示邏輯“或”。 &&
和 ||
是按照“短路”的方式來求值的,如果第一個操作已經能夠確定表達式的意思,第二操作就不必計算了。此外,Java 還支持三元操作符 ?:
。
三元運算符:
// 條件式 ? 值1 : 值2
condition ? expression1 : expression2
public class TestOperators {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a > b); // false
System.out.println(a < b); // true
System.out.println(a >= b); // false
System.out.println(a <= b); // true
System.out.println(a != b); // true
System.out.println(a > b ? "Helll" : "World"); // World
}
}
5、數值類型之間的轉換
類型轉換時將一個值從一種類型更改為另一種類型的過程。
如果從低精度數據類型向高精度數據類型轉換,則數據永遠不會溢出,並且總會轉換成功;而把高精度數據向低精度數據類型轉換,則必然會有信息丟失,有可能會失敗。
在圖中,有6個實線箭頭表示無信息丟失的轉換;有3個虛線箭頭,表示可能用精度丟失的轉換。
5.1、低精度向高精度數值類型轉換
低精度向高精度轉換的時候,系統將會自動的執行,因此該種類型的轉換也被稱為隱式類型轉換。
public class TestConver {
public static void main(String[] args) {
byte b = 127;
int i = 150;
float f = 452.12f;
double d = 45.4545;
char c = 10;
System.out.println("byte 類型與 int 類型數據進行計算的結果是:"+ (b + i));
System.out.println("byte 類型與 float 類型數據進行計算的結果是:"+ (b + f));
System.out.println("byte 類型與 char 類型數據進行計算的結果是:"+ (b + c));
System.out.println("double 類型與 char 類型數據進行計算的結果是:"+ (d + c));
}
}
5.2 高精度向低精度類型轉換 —— 強制轉換
當把高精度的變量的值賦給低精度的變量時,必須使用顯示類型轉換運算,又稱強制類型轉換。語法:(類型名稱)要轉換的值;
int a = (int)456.45;
long l = (long)123.12F;
int b = (int)'d';
System.out.println("a = " + a); //456
System.out.println("l = " + l); //123
System.out.println("b = " + b); //100
當執行強制轉換時候可能會導致精度的丟失,此外,只要是boolean類型意外的其他基本類型之間的轉換,全部都能以強制類型轉換的方法達到。