(一)Java簡介 Java 是由 Sun Microsystems 公司於 1995 年 5 月推出的 Java 面向對象程式設計語言和 Java 平臺的總稱。由 James Gosling和同事們共同研發,併在 1995 年正式推出。 後來 Sun 公司被 Oracle (甲骨文)公司收購,Ja ...
(一)Java簡介
Java 是由 Sun Microsystems 公司於 1995 年 5 月推出的 Java 面向對象程式設計語言和 Java 平臺的總稱。由 James Gosling和同事們共同研發,併在 1995 年正式推出。
後來 Sun 公司被 Oracle (甲骨文)公司收購,Java 也隨之成為 Oracle 公司的產品。
Java分為三個體系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平臺標準版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺企業版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平臺微型版)。
2005 年 6 月,JavaOne 大會召開,SUN 公司公開 Java SE 6。此時,Java 的各種版本已經更名,以取消其中的數字 "2":J2EE 更名為 Java EE,J2SE 更名為Java SE,J2ME 更名為 Java ME。
Java主要特性:java語言是簡單的、面向對象的、分散式的、健壯的、安全的、可移植的、解釋性的、高性能的、多線程的。
(二)Java開發環境
1、編譯運行過程:
- 編譯期:.java源文件,經過編譯,生成.class位元組碼文件
- 運行期:JVM載入.class並運行.class(0和1)
- 特點:跨平臺、一次編譯到處使用(跨平臺特性如下圖)
2、名詞解釋:
- JDK:Java Development Kit:java的開發和運行環境,java的開發工具和jre。
- JRE:Java Runtime Environment:java程式的運行環境,java運行的所需的類庫+JVM(java虛擬機)。
- JVM:Java Virtual Machine: Java虛擬機,載入.class並運行.class。
(三)Java基本數據類型
1、Java語言提供了四類八種基本數據類型:
- 整數類型:byte、short、int、long
- 浮點數類型:float、double
- 布爾類型:boolean
- 字元類型:char
2、簡述java的8種基本數據類型:
- byte: 位元組型,用於存儲整數,占用 1 個位元組,範圍 -128 ~ 127,預設值是 0
- short: 短整型,用於存儲整數,占用 2 個位元組,範圍 -32768 ~ 32767,預設值是 0
- int: 整型,用於存儲整數,占用 4 個位元組,範圍 -2^31 ~ 2^31-1,預設值是 0
- long: 長整型,用於存儲較大的整數,占用 8 個位元組,範圍 -2^63 ~ 2^63-1,預設值是 0L
- float: 單精度浮點數,用於存儲小數,占用 4 個位元組,不能表示精確的值,預設值是 0.0F
- double: 雙精度浮點數,用於存儲小數,占用 8 個位元組,不能表示精確的值,預設值是 0.0D
- boolean: 布爾型,用於存儲 true 和 false,占用 1 個位元組,預設值是 false
- char: 字元型,採用 Unicode 字元集編碼,用於存儲單個字元,占用 2 個位元組,範圍 0 ~ 65535
舉個慄子:
byte a = 100;byte b = -50;
short s = 1000;short r = -20000;
int a = 100000;int b = -200000; //1)整數直接量預設為int類型,但不能超出範圍,若超出範圍則發生編譯錯誤 2)兩個整數相除,結果還是整數,小數位無條件捨棄 3)運算時若超出範圍,則發生溢出,溢出是需要避免的
long a = 100000L;Long b = -200000L; //長整型直接量需要在數字後加 L 或者 l,運算時若可能溢出,建議在第一個數字後加L
//浮點數直接量預設為double類型,若想表示float,需在數字後加F 或 f
//double 或 float型數據參與運算時,有可能出現舍入誤差,精確場合不能使用
float f = 3.14F; //3.14F為float型直接量
double d = 3.14; //3.14為浮點數直接量,預設為double型
boolean b1 = true;boolean b2 = false; //true 和 false 都是布爾類型的直接量
char letter = 'A'; //char類型,字元型直接量必須放到單引號裡面,單引號裡面必須有字元,只能有一個字元,特殊符號需要通過\來轉義,例如:char c = '\\' 表示字元 \ ;
3、數據類型間的轉換
- 小到大依次為:byte-short/char-int-long-float-double
- 自動/隱式類型轉換:由小到大
- 強制類型轉換:語法(要轉換成為的數據類型)變數,由大到小,強轉有可能發生溢出或丟失精度
int a = 5;
long b = a; //自動類型轉換
int c = (int) b; //強制類型轉換
long d = 5;
double e = 5;
long f = 10000000000L;
int g = (int) f;
System.out.println(g); //1410065408 強轉有可能會記憶體溢出
double h = 23.34545;
int i = (int) h;
System.out.println(i); //23 強轉有可能會丟失精度
//整數直接量可以直接賦值給byte、short、char,但是不能超出範圍
//byte、short、char型的數據參與運算,系統會將其自動轉換為int再運算
byte b = 3;
byte b1 = 5;
byte b2 = (byte) (b + b1);
System.out.println(b2);
System.out.println('2' + '2');//100.'2'的碼50 加上 '2'的碼50 ,得100