1、binarySearch(int[] a,int key) 使用二分搜索法来搜索指定的 int 型数组
2、fill(int[] a,int val)将指定的 int 值分配给指定 int 型数组的每个元素。
3、sort(int[] a) 对指定的 int 型数组按数字升序进行排序
4、toString(int[] a) 返回指定数组内容的字符串表示形式。
package com.DaYu;
import java.util.Arrays;
public class Demo01 {
//Arrays工具类的使用
public static void main(String[] args) {
// int[] arr = {2,3,8,1,0,5,7};
int[] arr = {0,1,2,3,5,7,8};//需要先排序
// binarySearch(int[] a,int key) 使用二分搜索法来搜索指定的 int 型数组
int binarySearch = Arrays.binarySearch(arr,4);
System.out.println(binarySearch);
// fill(int[] a,int val)将指定的 int 值分配给指定 int 型数组的每个元素。
int[] arr1 = {0,1,2,3,5,7,8};
Arrays.fill(arr1, 999);
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i]+ " ");
}
System.out.println("---------------");
// sort(int[] a) 对指定的 int 型数组按数字升序进行排序。
int[] arr2 = {2,3,8,1,0,5,7};
Arrays.sort(arr2);
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i]+ " ");
}
System.out.println();
// toString(int[] a) 返回指定数组内容的字符串表示形式。
String arr2Str = Arrays.toString(arr2);
System.out.println(arr2Str);
}
}
基本数据类型只能表示简单的数据,不能包含一些操作数据的方法,没有办法存储描述这些数据的内容。需要准备引用数据类型,将基本数据类型进行包装,提供一些操作基本数据类型的方法,定义一些描述数据的功能。
基本数据类型 | 引用数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
1、Integer(int i):将一个基本数据类型的int数,转换成Integer类型的对象
2、Integer(String str):将一个字符串类型的数字,转成Integer类型的对象.注意在使用的时候 如果 str 中存在不能被解析成int类型的字符的时候,就会报异常.NumberFormatException
1、xxxValue():可以将Integer类型的对象,转成其他的基本数据类型
2、常用的静态方法
parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。
parseInt(String s, int radix) 使用第二个参数指定的基数(进制),将字符串参数解析为有符号的整数。
toBinaryString(int i) 以二进制(基数 2)的表示方法表示数字i
toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
toOctalString(int i)以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
toString(int i, int radix) 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
valueOf(String s, int radix) 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
// int ---- String ------- Integer 三者之间可以相互转换
// int <----> String
int a = 234;
String s = a+"";
System.out.println(s);
int b = Integer.parseInt(s);
System.out.println(b);
// String <----> Integer
String s = "123";
Integer i = new Integer(s);
String r = i.toString();
System.out.println(r);
//int <----->Integer
int a = 234;
Integer i = new Integer(a);
int b = i.intValue();
System.out.println(b);
1、MAX_VALUE:int类型的最大值
2、MIN_VALUE:int类型的最小值
3、SIZE:int类型在内存中的位数
4、TYPE:表示基本类型 int 的 Class 实例。
package com.DaYu;
public class Demo02 {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.SIZE);
System.out.println(Integer.TYPE);
}
}
装箱:将基本数据类型 封装为一个引用数据类型对象,这个过程叫做装箱 (构造)
拆箱:从包装类型中将基本的数据类型进行提取出来,这个过程叫做拆箱(intValue())
自动装箱和自动拆箱(在jdk5新特性):基本数据类型和包装类可以自动转换
package com.DaYu;
public class Demo03 {
public static void main(String[] args) {
Integer integer = 5;//将基本数据类型自动装箱为 包装类型
int a = integer;//将包装类型自动拆箱为 基本数据类型
}
}
package com.DaYu;
public class Demo04 {
public static void main(String[] args) {
Integer i1 = 50;
Integer i2 = 50;
System.out.println(i1 == i2);//true //判断的引用地址是否相同
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);//false
}
}
原因:JVM会自动维护八种基本数据的常量池,int常量池中初始化-128~127的范围,所以当integer i 处于这个范围 时,在自动装箱过程中是取自常量池中的数值,当其超过这个范围时,在自动装箱过程中需要在堆内存中创建新的对 象,所以地址不一样。