java基礎學習之二:變數、基本資料型別及其對應的包裝型別
一、變數
任何的語言必須要的恐怕是變數了
Java變數的定義
在Java中變數是十分的容易上手,於C、C++語言類似,Java的變數宣告:
資料型別 變數名;//分號是必須的
變數名命名規則:包括 英文,數字, _ ,$ ,而且不能以數字開頭;
基本資料型別:
如圖:
變數的定義舉個例子:
int a;
int _b;
int $c;
int 3a;//編譯錯誤
int &c;//編譯錯誤
編譯錯誤是指,在程式執行前,編譯器對程式做的一些基本語法的檢查錯誤;
另外要注意的一點:
沒有初始化的區域性變數不能直接使用; 如:
int a;
System.out.println(a);//編譯錯誤
如果作為成員變數出現,即這個變數是屬於某個類所有,而不屬於某個方法函式所有的變數,可以不初始化,其預設的值為對應的0,或者是null;
二、基本資料型別
基本資料型別如上圖的八種
使用的時候主要注意的有以下幾點:
字面量:如
int a = 3;//3就是字面量,或者稱作直接量
1、整形型別的字面量預設為int
所以在初始化或者賦值的時候不能超過int的最大值,如果超過;則編譯錯誤,
如下面就是編譯錯誤:
int a = 1000000000000;
所以當:數值較大的時候要使用long 型別;
long a = 1000000000000L;//加個L代表是long 型別
同時double和float也有這樣的問題;
float c = 1.222222222222222222;//編譯錯誤
double d = 1.222222222222222222;
帶小數點的字面量的資料型別為double:
float i = 1.02f;
double j = 1.02;
2、另外在做運算的時候,要注意不同型別的轉換問題
轉換如圖所示:
排在最右端的是大型別,也就是當把小型別的字面量賦給大型別字面量的時候,會發生型別自動向大型別轉化,但是大型別不能直接向小型別轉化,需要強制轉化如:
double i = 2;//此時的 i 為double
int j = i; //編譯錯誤;此時的i為double大型別 不能直接轉化為小型別;
int j = (int)i;
但是 如果double有小數點的話,強制轉化會造成小數點的損失精度,如:
double i = 2.6;
int j = (int)i;
System.out.println(j); //結果是2,並不會四捨五入
如果強轉為小型別的資料型別的範圍較大,會出現異常.如:int i = (int)10000000000000000000000;錯誤,所以要根據資料型別的具體情況而.
3、變數的作用域
Java語言支援的變數型別有:
- 成員變數
- 區域性變數
其實變數的這些分類就如下圖一樣明瞭,
- class 中定義的變數 而不屬於其他任何方法的變數,叫做成員變數.
- 屬於某個方法的變數叫做區域性變數
4、 變數作用域和生命週期
作用域:
成員變數的作用域比較大,站得高看得遠,這個類的所有的方法都能夠"看到它",都能去用它 區域性變數作用域:只在它所在的方法中被使用,其他方法"看不到"這個變數,但是也可以與成員變數同名,但是這個時候成員變數的呼叫就不能直接呼叫了要用到this,this說明是這個類的東西.
生命週期:
明顯的:
成員變數的生命週期和整個類的生命週期是一致的,就是這個類 活到什麼時候,這個成員變數就活到什麼時候.
區域性變數的生命週期和它所在方法的生命週期一致,呼叫這個方法結束後,這個區域性變數就被銷燬了.
練一練:
這就像"男人(女人)和 人 分不開,人 和 運動 分不開"一樣 ,資料型別 和 變數 是分不開的,變數 和 運算子 也是分不開的.像人天生為分為男女一樣,一個變數在宣告的時候也要先說明資料型別.
//類的宣告一定要大寫,而且要與檔案同名
public class MyProgram {
char x = 0;
public void main(String[] args) {
//java的輸出函式 System.out.println()
//資料型別 和 變數 是分不開的,變數 和 運算子 也是分不開的
//這就像"男人(女人)和 人 分不開,人 和 運動 分不開"
//像人天生為分為男女一樣,一個變數在宣告的時候也要先說明資料型別
int a, b, c; // 宣告三個int型整數:a、 b、c。
int d = 3, e, f = 5; // d宣告三個整數並賦予初值。
byte z = 22; // 宣告並初始化z。
double pi = 3.14159; // 宣告瞭pi。
char x = 'x'; // 變數x的值是字元'x'。 可以與成員變數重名,
x = this.x; //用this可以呼叫到成員變數
System.out.println(x); //輸出將是0;
}
}
三、基本資料型別對應的包裝型別
基本資料型別:byte,int,short, long,boolean,char,float,double
包裝型別: Byte,Integer,Short,Long,Boolean,Character,Float,Double
包裝資料型別不僅僅看上去是把首字母大寫了,而且還有了一個本質的變化,那就是搖身一變,變成了引用型別
隨著JDK的升級,包裝類有了自動拆包(包裝型別變成對應的基本型別),裝包(基本型別變成對應的包裝型別): 例如:
Integer i = new Integer(1);//初始化
System.out.println(i.getClass());//class java.lang.Integer
int j = 0;
i = Integer.valueOf(j);//這就是所謂的裝包但是可以直接寫成, i = j;
int a = i.intValue(); //這就是所謂的拆包,也可以直接寫作,int a = i
System.out.println(i);//此處進行了自動拆包
String與基本資料型別的轉化,可以參考第六節,
四、運算子
在發例子之前先了解一下運算子和優先順序,其實裡面大部分大家都認識了;
特別注意的是++
和--
,++
或--
在變數前,先做自增或自減操作,再用,在變數後面的話,先用變數,然後做自增或自減操作
例如:
int B = 20;
int x = ++B;
int y = B++;
//結果
x = 21;y=21;
但B最終都是發生變化的,B = 22;
關係運算子:
Java運算子優先順序
當多個運算子出現在一個表示式中,誰先誰後呢?這就涉及到運算子的優先順序別的問題。在一個多運算子的表示式中,運算子優先順序不同會導致最後得出的結果差別甚大。
例如,(1+3)+(3+2)*2
,這個表示式如果按加號最優先計算,答案就是 18,如果按照乘號最優先,答案則是 14。
再如,x = 7 + 3 * 2;
這裡x得到13,而不是20,因為乘法運算子比加法運算子有較高的優先順序,所以先計算3 * 2得到6,然後再加7。
下表中具有最高優先順序的運算子在的表的最上面,最低優先順序的在表的底部。
相關文章
- Java基礎-基本型別和包裝型別Java型別
- 基本資料型別及其包裝類(一)資料型別
- 基本資料型別及其包裝類(二)資料型別
- java基本資料型別包裝類Java資料型別
- java基礎之java的基本資料型別Java資料型別
- javascript基本型別 引用型別 基本包裝型別JavaScript型別
- Java中基本資料型別和包裝型別有什麼區別?Java資料型別
- Java基礎:Java變數、資料型別、運算子(2)Java變數資料型別
- java基礎之一:基本資料型別Java資料型別
- Oracle資料型別對應Java型別Oracle資料型別Java
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- Java基礎知識-基本資料型別相互轉型Java資料型別
- 學習變數的目的及基本資料型別介紹變數資料型別
- Java-API-基本資料型別包裝類JavaAPI資料型別
- (2)Java基本資料型別和包裝類Java資料型別
- 【Java】基本型別包裝類Java型別
- Go變數與基礎資料型別Go變數資料型別
- java基本型別和包裝型別的“==”和equals()方法Java型別
- Java基礎知識(變數、資料型別、運算子)Java變數資料型別
- java基礎學習之五:引用資料型別Java資料型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- java資料型別基礎Java資料型別
- Java 包裝類和基本型別Java型別
- JavaScript 基礎 (一) - 基本資料型別JavaScript資料型別
- Go 基礎之基本資料型別Go資料型別
- Flutter學習筆記(3)--Dart變數與基本資料型別Flutter筆記Dart變數資料型別
- Java的基本資料型別Java資料型別
- [java基礎]之資料型別Java資料型別
- Java 基本資料型別Java資料型別
- Java -基本資料型別Java資料型別
- Java基本資料型別Java資料型別
- 【Java】基本資料型別包裝類面試題之一Java資料型別面試題
- Java中的基本資料型別與引用資料型別Java資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- Python基礎02 基本資料型別Python資料型別
- [轉]ABAP資料型別與Java資料型別的對應關係資料型別Java
- 草根學 Python(二)基本資料型別和變數Python資料型別變數
- 草根學Python(二)基本資料型別和變數Python資料型別變數