1. 程式人生 > >Java環境、資料型別

Java環境、資料型別

Java資料型別幾乎是貫徹你以後所有的知識的,所以在學習Java之前一定弄明白這個知識點!!!

* Java是程式設計語言     Java在伺服器端程式設計和跨平臺客戶端應用領域則很有優勢。

* Java語言所具備的特徵

            1)簡單性          2)面向物件          3)分散式          4)健壯性          5)安全性          6)體系結構中立

            7)可移植性      8)解釋型              9)高效能          10)多執行緒          11)動態性

    ps:瞭解下這些java特性有助於你對java的認識。這些也稱作Java“白皮書”的關鍵術語.在oracle官網也可以找到官方解釋(英文版)

1.JAVA環境:

JDK:Java Development Kit java開發環境

面向開發人員使用的SDK,提供了開發環境

和允許環境 包含了一個JRE

JRE: Java Runtime Environment java執行環境

是面向程式的使用者,提供執行環境

JVM :JAVA虛擬機器 jre包含了一個JVM

***注意JDK和JRE的區別:

一個是開發環境,一個是執行環境。

面向的物件不同,JDK面向開發人員、JRE面向程式使用者。

兩者都包含了一個JVM,其中JDK是因為包含了一個JRE才有JVM的。

2.命令提示符執行Java檔案

前提:需要進行Java環境變數設定:基本上現在直接在百度上搜索,會有很多教程的;

JAVA_HOME:C:\Program Files\Java\jdk1.8.0_121

path:%JAVA_HOME%/bin

操作:在命令提示符中切換到需要執行的Java檔案所在目錄

·切換到D盤

C:\Users\lenovo>d:

·切換到D盤的目錄D:\kkk\kk\k

d:>cd kkk\kk\k

命令:

javac命令:將.java檔案編譯成.class檔案

java命令 : 執行.class檔案

3.Java檔名與類名的關係

·一個Java檔案中可以寫多給類

·Java檔名必須與被public修飾的類名相同。

·public修飾的類最多隻能有一個

·如果沒有public的類,則Java檔名與其中一個類名相同即可

·如果一個檔案中有多個類,則會編譯成多個class檔案建議一個類一個檔案

4.資料型別

8種基本資料型別(1位元組 = 8位)

·byte 1位元組

·short 2位元組

·int 4位元組

·long 8位元組

·float 4位元組

·double 8位元組

·boolean 1位

·char 2位元組

JAVA中將小數預設為double型別,若要定義float需在資料後面用f宣告;

對應的類型別:Byte、Short、Integer、Long、Float、Double、Boolean、Character

***資料型別之間的轉換以及Java中轉換遵循的原則

·Java中預設轉換規則

取值範圍小的資料型別與取值範圍大的資料型別進行運算,會先將小的資料型別提升為大的,再運算

·Java語言中的資料型別轉換有兩種:

自動型別轉換:編譯器自動完成型別轉換,不需要在程式中編寫程式碼。

強制型別轉換:強制編譯器進行型別轉換,必須在程式中編寫程式碼宣告。

·自動型別轉換

概念:又叫隱式轉換,系統自動完成型別轉換(由於實際開發中這樣的型別轉換很多,所以 Java 語言在設計時,沒有為該操作設計語法,而是由 JVM 自動完成)

規則:從儲存範圍小的型別到儲存範圍大的型別。(賦值等號右邊的範圍要小於等於左邊的就可以自動向上轉型)

具體規則為:byte→short(char)→int→long→float→double

例子:

byte b=10;

short sh=b;

解析:這裡在給sh賦值時,JVM首先將b的值轉換成short型別然後再賦值給sh。

當然,在型別轉換的時候也可以跳躍,就是byte也可以自動轉換為int型別的。

注意:整數之間進行型別轉換的時候數值不會發生變化,但是當將整數型別特別是較大的整數型別轉換成小數型別時,

由於儲存精度不同可能會存在資料精度的損失。

·強制型別轉換

概念:又叫顯示轉換,必須在程式中編寫程式碼才能完成型別轉換(該型別轉換存在精度的損失可能性較大)

規則:從儲存範圍大的型別到儲存範圍小的型別。

具體規則為:double→float→long→int→short(char)→byte

語法格式為:(轉換到的型別)需要轉換的值

例子:

double d=3.14;

int i=(int) d;

注意:強制型別轉換通常都會儲存精度的損失,謹慎使用。

ps:型別轉換的概念到後面也會運用到,所以這裡一定不要死記。尤其是在多型的運用中。

5.運算子:對常量和變數進行操作的符號

算數運算子

賦值運算子

關係運算符

邏輯運算子

位運算子

三目運算子

6.在賦值中使用二元運算子

x+=4; 等價於 x = x+4;

ps:使用二元運算子有一個好處,當等式一邊需要進行型別轉換時,使用二元運算子會自動轉換。

int x = 0; //宣告一個int型別的變數,並進行賦值初始化

x+=3.5; //3.5是一個浮點型,需要轉換成int,這裡會自動轉

x = (int) (x+3.5); //需要顯示宣告轉換型別

7.自增和自減

int i = 12;

i++;

i--;

++i;

--i;

這四種情況都會使變數i的值加1或減1.但是在具體表達式中使用時,放在前面的和放在後面的就有所區別了。字首形式會先完成加1;而後綴形式會使用變數原來的值。

int m = 7;

int n = 7;

int x = 2*++m; //結果是:x=16 m=8

int y = 2*--n; //結果是:y=14 n=8

8.三目運算

三元操作符:? :

表示式:condition ? expression1 : expression2

x<y ? x:y;

如果x小於y,則返回x,否則返回y

變數

宣告變數:變數型別 變數名;

變數名:變數名必須是一個以字母開頭並由字母或數字構成的序列。變數名是區分大小寫的。一般一個合格的程式設計師所定義的變數名是要具有意義的。

可以在一行中宣告多個變數;

int a,b;

但是,一般不提倡使用這種風格。逐一宣告每一個變數可以提高程式的可讀性。

變數初始化:

宣告一個變數後,必須用賦值語句對變數進行顯示初始化,千萬不要使用未初始化的變數。否則會報錯:error--variable not initialized

常量:在Java中利用關鍵字final指示常量。

final double MAX_SCORE = 100.0;

關鍵字final表示這個變數只能被賦值一次。一旦被賦值後,就不能再更改了。有個不成文的約定,常量名使用全大寫。

關於資料型別的相關面試題:

1、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 +=1;有什麼錯?

答:對於short s1=1;s1=s1+1來說,在s1+1運算時會自動提升表示式的型別為int,那麼將int賦予給short型別的變數s1會出現型別轉換錯誤。

對於short s1=1;s1+=1來說 +=是java語言規定的運算子,java編譯器會對它進行特殊處理,因此可以正確編譯。