Arrays类:针对数值操作的工具类
Arrays类的方法是静态方法,直接用类名.方法()
pbulic static void sort(int [ ] a)方法:将数组排序
pbulic static StingtoString(int [ ] a):将数组转化成字符串
pbulic static intbinarySearch(int [ ] a,int key):二分查找数组中的指定元素,返回其索引值。
int[] arr = {4,67,2,5,1,6};
Arrays.sort(arr);//Arrays类的方法是静态方法,直接用类名.方法()排序
System.out.println(Arrays.toString(arr));//Arrays.toString(arr)将数组转化成对应字符串
int[] arr2 = {11,22,33,44,55,66,77};
System.out.println(Arrays.binarySearch(arr2, 22));//二分查找法Arrays.binarySearch(arr2, 22)
System.out.println(Arrays.binarySearch(arr2, 66));//包含在数组中,返回该索引,否则返回:(-(插入点)-1).
//插入点:即如果要将改数放在数组中应该在什么位置。
System.out.println(Arrays.binarySearch(arr2, 88));
System.out.println(Arrays.binarySearch(arr2, 9));
System.out.println(Arrays.binarySearch(arr2, 24));
*****************************
[1, 2, 4, 5, 6, 67]
1
5
-8
-1
-3
基本数据类型的包装类
* 基本数据类型是不能创建对象并调用方法的,如果有了包装类就可以封装方法提供给我们使用,比如说将整数转换成二进制* byte Byte
* short Short
* int I nteger
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
Integer的构造方法
public Integer(int value) int---->Integer对象
public Integer(String s) 数字String---->Integer对象
Integer i = new Integer(100);//将一个int数转换成Integer的对象
Integer i2 = new Integer("100");//将数字字符串转换成Integer对象
int ---> String:
* 1.何数据与字符串用+连接
* 2.调用String.valueOf()可以将任何数据转换成字符串
int num = 100;
String x = num + "";//任何数据与字符串用+连接都会产生新的字符串
String y = String.valueOf(num); //valueOf()静态方法可以将任何数据转换成字符串
parseXxx方法:将String类型对象转换成Xxx对象
只有Character中没有parseXxx方法,因为字符串是由多个字符组成转换的时候char只能接收一个字符。字符串转成字符数组有toCharArray()方法
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
//int x = sc.nextInt(); //如果录入的是非int数,会抛异常
String line = sc.nextLine(); //录入的所有元素都能存储在line中
//可以对line进行操作
int x = Integer.parseInt(line); //将一个数字字符串转换成数字
//parseInt()静态方法
System.out.println(x);
******************************
10
10
blic static void demo4() {
//parseXxx方法将Stringl类型对象转换成Xxx对象
String s = "100";
byte b = Byte.parseByte(s);
short sh = Short.parseShort(s);
int i = Integer.parseInt(s);
long l = Long.parseLong(s);
float f = Float.parseFloat(s);
double d = Double.parseDouble(s);
String s2 = "true";
boolean b2 = Boolean.parseBoolean(s2);//parseBoolean()只能转换"ture"或"false"
String s3 = "我不爱北京"; //只有Character中没有parseXxx方法,因为字符串是由多个字符组成
//转换的时候char只能接收一个字符。字符串转成字符数组有toCharArray()方法
自动拆装箱:
装箱:基本数据类型— —>对象
拆箱:对象— —>基本数据类型
Integer i2 = x; //自动装箱,把基本数据类型变成对象(x自动装换成Integer付给i2)
x = i2.intValue(); //手动将Integer对象转换成基本数据类型
int y = i2 + 20; //自动拆箱,把对象变成基本数据类型(i2自动转换成int)
Integer i1 = new Integer(97);
Integer i2 = new Integer(97);
//因为new得到的是两个对象"=="比较俩对象的地址所以是false
//equals()方法是比较俩对象引用的值是否相同
System.out.println(i1 == i2); //false
System.out.println(i1.equals(i2)); //true
System.out.println("-----------");
Integer i3 = new Integer(197);
Integer i4 = new Integer(197);
System.out.println(i3 == i4); //false
System.out.println(i3.equals(i4)); //true
System.out.println("-----------");
/* * 当Integer直接赋值的范围是在-128到127之间,也就是一个byte的取值范围,不会创建多个对象。当第一次直接赋值范围在-128到127之间时,的底层处理过程是:创建一个数组来存储这些值(Integer[] arr = {new Integer(-128),127,-126}; //数组中可以存储引用数据类型)。再一次直接赋值时,先在数组中查找有没有该数,有则不再创建该对象。
* 第一次Integer = -128,会在底层有一个数组存储-128到127之间的Integer对象值,直接从数组中获取Integer对象 * 第二次Integer = -128,不会重新创建对象,继续从数组中获取 */
Integer i5 = -128; Integer i6 = -128; System.out.println(i5 == i6); //? System.out.println(i5.equals(i6)); //true System.out.println("-----------"); Integer i7 = 128; Integer i8 = 128; System.out.println(i7 == i8); //? System.out.println(i7.equals(i8)); //true ******************************* false true ----------- false true ----------- true true ----------- false true