兼容類型
java八種基本類型(byte桶略、short语淘、int、long 际歼、float惶翻、double、char鹅心、boolean)中吕粗,除了布爾類型(boolean)與其他7中類型不兼容外,其他7種類型都是互相兼容的巴帮。-
類型轉換
- 順箭頭溯泣,范圍由小到大,精度由低到高榕茧,java幫著自動轉換垃沦。
注意像byte可以直接轉換為long、double等用押,沒必要先把byte轉換為short肢簿,再轉換為int,再轉換為long蜻拨,就是不用沿箭頭一步一步來池充,可以跳著轉換的,只要是小范圍到大范圍缎讼,低精度到高精度收夸。 - 逆箭頭,需要進行強制類型轉換血崭。
例如:double d = 3.2;
float f = (float)d;
因為double不能轉換為float卧惜,所以要轉換必須借助強制轉換符(float)厘灼,要轉換成誰,就在小括號內寫上誰咽瓷。
又如:double d = 3.2;
float f = (float)(d * 2.0);//后面括起來
- 順箭頭溯泣,范圍由小到大,精度由低到高榕茧,java幫著自動轉換垃沦。
-
表達式中的操作數(shù)類型自動提升
在表達式中设凹,如果參與運算的操作數(shù)(變量、字面量茅姜、方法調用的結果闪朱、其他子表達式的結果)不屬于同一類型,則會發(fā)生自動類型提升钻洒。
規(guī)則如下:- 如果表達式中存在double類型的操作數(shù)奋姿,結果為double
- 如果表達式中不存在double類型的情況下,存在float類型航唆,結果為float
- 如果表達式中不存在double胀蛮、float類型的情況下,存在long類型糯钙,結果為long
- 如果表達式中不存在double粪狼、float、long類型任岸,結果為int
注意:即使參與運算的操作數(shù)沒有int類型再榄,其結果也是int類型的
例:
byte b1 = 1;
byte b2 = 2;
int result = b1 + b2;
注意:編譯過程中,編譯器會把那些可以直接得出結果的表達式的值直接編譯到字節(jié)碼中
如:
byte res = 10 + 20;//本語句會被編譯器直接編譯為
byte res = 30;
-
數(shù)組
聲明數(shù)組:
int[] arr1;//推薦用這種方式
int arr2[];實例化數(shù)組對象
arr1 = new int[5];
這個數(shù)組中可以包含5個int類型的數(shù)據(jù)元素享潜,每個元素的初始值為0困鸥。
當數(shù)組被實例化以后爽哎,每個元素都會被賦一個初始值:
整數(shù)類型:0
浮點類型:0.0
布爾類型:false
char:'\u0000'
引用類型:null顯示數(shù)組
import java.util.Arrays;
public class Demo001 {
public static void main(String[] args) {
int[] arr1;//聲明一個數(shù)組
arr1 =new int[5];//實例化數(shù)組
System.out.println(Arrays.toString(arr1));
}
}
在打出Array后浪默,按ALT+/再按回車,會在代碼行首出現(xiàn)import java.util.Arrays; 陷揪,然后就可以顯示數(shù)組了
訪問數(shù)組長度
System.out.println("數(shù)組長度是" + arr1.length);
length屬性是只讀的艺蝴,不能被再次賦值數(shù)組索引
通過數(shù)組元素的索引可以訪問某個數(shù)組中的元素
合法的索引范圍是從0~length-1修改數(shù)組元素
把第4個元素的值修改為100
arr1[3] = 100;
把倒數(shù)第1個元素的值修改為-1024
arr1[arr1.length - 1] = -1024;獲取數(shù)組元素
獲取第4個元素
System.out.println(arr1[3]);
獲取倒數(shù)第1個元素
System.out.println(arr1[arr1.length - 1]);
數(shù)組可在聲明的同時進行實例化操作
boolean[] boolArr = new boolean[10];
實例化數(shù)組的同時猬腰,可以為其各個元素進行賦值
int[] arr4 = new int[] { 1, 2, 3, 4, 5 };
以下形式不可用于方法實際參數(shù)的傳遞
可以使用new int[]{5,4,3....,-5}進行方法實際參數(shù)的傳遞
int[] arr5 = { 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5 };二維度數(shù)組
二維數(shù)組:即數(shù)組的數(shù)組,規(guī)則的二維數(shù)據(jù)是一張表格
Java中可以聲明和使用多維數(shù)組猜敢,但在開發(fā)工作中很少使用到
import java.util.Arrays;
public class Demo001 {
public static void main(String[] args) {
int[][] arr1 = new int[4][3];
arr1[1][1] = 10;
arr1[2][2] = -10;
arr1[3][1] = 1024;
// System.out.println(Arrays.deepToString(arr1));橫著排
System.out.println(Arrays.toString(arr1[0]));
System.out.println(Arrays.toString(arr1[1]));
System.out.println(Arrays.toString(arr1[2]));
System.out.println(Arrays.toString(arr1[3]));//豎著排
}
}
二維數(shù)組也可以在聲明的同時進行元素的初始化
以語句聲明并初始化一個二維數(shù)組(char[4][4])
char[][] arr2 = {
{'a','b','c','d'},
{'e','f','g','h'},
{'i','j','k','l'},
{'m','n','o','p'}
};
System.out.println(Arrays.toString(arr2[0]));
System.out.println(Arrays.toString(arr2[1]));
System.out.println(Arrays.toString(arr2[2]));
System.out.println(Arrays.toString(arr2[3]));