1.Arrays類的概述和方法使用
- A:Arrays類概述
針對數組進行操作的工具類。
提供了排序,查找等功能。 - B:成員方法
public static String toString(int[] a)
public static void sort(int[] a)
public static int binarySearch(int[] a,int key)
static boolean equals(int[] a, int[] a2)
比較兩個數組中的元素,是否一樣
static int[] copyOf(int[] original, int newLength)
複製舊數組中的元素到一個新的數組中,新的數組長度是newLength 從0開始複製舊數組
static int[] copyOfRange(int[] original, int from, int to)
複製舊數組中的指定範圍間的幾個元素到新數組中
案例1:
public class MyTest {
public static void main(String[] args) {
//Java針對數組的操作,給我們提供了一個工具類Arrays
//此類包含用來操作數組(比如排序和搜索)的各種方法。
int[] arr = {10, 20, 5, 3, 8, 7, 6};
//排序
Arrays.sort(arr);
//打印數組元素
String string = Arrays.toString(arr);
System.out.println(string);
//二分查找:前提數組元素有序
int index = Arrays.binarySearch(arr, 80);
System.out.println(index);
}
}
案例2:
public class MyTest2 {
public static void main(String[] args) {
int[] arr = {10, 20, 5, 3, 8, 7, 6};
int[] arr2 = {10, 20, 5, 3, 8, 7, 6};
boolean b = Arrays.equals(arr, arr2);
System.out.println(b);
/* static int[] copyOf ( int[] original, int newLength)
複製指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度。*/
int[] ints = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(ints));
"abc".concat("abc");
/* static int[] copyOfRange ( int[] original, int from, int to)
將指定數組的指定範圍複製到一個新數組。
*/
//從指定索引處,拷貝舊數組元素到你指定的終止索引處,含頭不含尾
int[] ints1 = Arrays.copyOfRange(arr, 1, 3);
System.out.println(Arrays.toString(ints1));
}
}
2.基本類型包裝類的概述
- A: 需求:
a:將100轉換成二進制 , 八進制 , 十六進制
b:判斷一個數是否在int的範圍內 - B:爲什麼會有基本類型包裝類
爲了對基本數據類型進行更多的操作,更方便的操作,java就針對每一種基本數據類型提供了對應的類類型. - C:常用操作: 常用的操作之一:用於基本數據類型與字符串之間的轉換。
- D:基本類型和包裝類的對應
byte----Byte
short—Short
int-------Integer
long ----Long
float-----Float
double–Double
char ----Character
boolean—Boolean
public class MyTest {
public static void main(String[] args) {
//byte -128 ---127
//int 4個字節 -2^31-<=num-<=-2^31-1
//Java爲了我們方便的去操作這些基本類型的數據,那麼針對每個基本數據類型,都提供了他所對應的包裝類(引用類型)
int num=100;
String string = Integer.toBinaryString(num);
String string1 = Integer.toHexString(num);
String string2 = Integer.toOctalString(num);
System.out.println(string);
System.out.println(string2);
System.out.println(string1);
if(2000>=Integer.MIN_VALUE&& 2000<=Integer.MAX_VALUE){
System.out.println("int 類型的值");
}
}
}
3.Integer類
- A:Integer類概述
Integer 類在對象中包裝了一個基本類型 int 的值,
該類提供了多個方法,能在 int 類型和String 類型之間互相轉換還提供了處理 int 類型時非常有用的其他一些常量和方法 - B:構造方法
public Integer(int value)
public Integer(String s)
4.String和int類型的相互轉換
- A:
int -- String
a:和""進行拼接
b:public static String valueOf(int i)
c:int – Integer – String
d:public static String toString(int i) - B:
String -- int
a:String – Integer – intValue();
b:public static int parseInt(String s)
public class MyTest {
public static void main(String[] args) {
// String和int類型的相互轉換
//int------String
int num = 100;// ----->"100"
//方式1
String str = num + ""; //拼接空串
//方式2 記憶這個
//String 中 靜態方法 valueOf(num) 可以把多種類型轉換成字符串
String s = String.valueOf(num);
/* char[] chs={'a','b','c'};
String s1 = new String(chs);
//把字符數組轉換成字符串
String s2 = String.valueOf(chs);*/
//方式3
Integer integer = new Integer(num);
String string = integer.toString();
System.out.println(string);
// String------int
String strNum = "100";//----100
//方式1
Integer integer1 = new Integer(strNum);
int i = integer1.intValue(); //把包裝類型轉成他對應的基本類型
//方式2 記這個方法
int nun = Integer.parseInt(strNum);
}
}
5.JDK5的新特性自動裝箱和拆箱
- A:JDK5的新特性
自動裝箱:把基本類型轉換爲包裝類類型
自動拆箱:把包裝類類型轉換爲基本類型 - B:案例演示
JDK5的新特性自動裝箱和拆箱
public class MyTest2 {
public static void main(String[] args) {
//JDK1.5之後有的自動拆裝箱
//自動裝箱:將基本類型自動轉換成他所對應的包裝類型
//自動拆箱:將包裝類型自動轉換成他所對應的基本類型
Integer integer = new Integer(20);
Integer integer2 = new Integer(200);
/* int a=20;
int b=200;*/
int num2=integer+integer2; //自動拆箱
//收動拆箱
int i = integer.intValue();
int i1 = integer2.intValue();
int num=i+i1;
System.out.println(num);
int aa=200;
Integer integer1=aa; //自動裝箱
Integer integer3 = Integer.valueOf(200); //手動裝箱
//都完成了哪些操作?
Integer ii = 100; //自動裝箱
ii += 200;//自動拆箱,自動裝箱
}
}
- C:注意事項
在使用時,Integer x = null;代碼就會出現NullPointerException。
建議先判斷是否爲null,然後再使用。
6.Integer的面試題
public class MyTest3 {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);//false
//Integer類重寫了equals方法比值是否相同
System.out.println(i1.equals(i2));//true
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);//false
System.out.println(i3.equals(i4));//true
System.out.println("-----------");
Integer i5 = 128; //自動裝箱
Integer i6 = 128;
System.out.println(i5 == i6); //false
System.out.println(i5.equals(i6)); //true
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); //true
}
}