1、概述
Arrays是针对数组进行操作的工具类,提供了排序,查找等功能
2、成员方法
a、public static String toString(int[] a)
c将数组变成如下案例所示的字符串
int[]arr={1,2,5,6,7,4,3};
String s = Arrays.toString(arr);
System.out.println(s);
输出:
[1, 2, 5, 6, 7, 4, 3]
b、public static void sort(int[] a)
将数组排序
int[]arr={1,2,5,6,7,4,3};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
输出:
[1, 2, 3, 4, 5, 6, 7]
c、public static int binarySearch(int[] a,int key)
查找元素的索引
int[]arr={1,2,5,6,7,4,3};
int i = Arrays.binarySearch(arr, 5);
System.out.println(i);
输出:2
1、为什么会有基本类型包装类?
为了对基本类型进行更多、更方便地操作,java就针对每一种基本类型提供了对应的类类型,常用操作之一是用于基本数据类型与字符串之间的转换。
2、基本类型与包装类的对应
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
3、Integer类
a、概述
Integer类在对象中包装了一个基本类型的int值,该类提供了多个方法,能在int类型和String类型之间相互转换,还提供了处理int类型时非常有用的其他一些常量和方法
b、构造方法
public Integer(int value)
public Integer(String s)
注意传参如果是字符串型的,字符串中的元素一定要为数字。
int a =123;
Integer integer = new Integer(a);
String s = "123";
Integer integer1 = new Integer(s);
c、String类型和int类型相互转换
int —>String
(1)和""进行拼接
String a = 123+"";
(2)public static String valueOf(int i)
int i = 123;
String a = String.valueOf(i);
(3)int – Integer – String
int i = 123;
Integer integer = new Integer(i);
String s = integer.toString();
(4)public static String toString(int i)
int i = 123;
String s = Integer.toString(i);
String—>int
(1)String – Integer – intValue();
String s = "123";
Integer integer = new Integer(s);
int i = integer.intValue();
(2)public static int parseInt(String s)
String s = "123";
int i = Integer.parseInt(s);
d、自动装箱和拆箱
自动装箱:把基本类型转换为包装类类型
Integer ii = 100;
等同于
Integer i1 = new Integer(100);
自动拆箱:把包装类型转换成基本类型
Integer ii = 100;
ii += 200;
"先自动装箱,后自动拆箱,再自动装箱"
讲一个Integer类的知识,先看一个代码案例
Integer integer1 = 128;
Integer integer2 = 128;
System.out.println(integer1==integer2);
Integer integer3 = 127;
Integer integer4 = 127;
System.out.println(integer3==integer4);
输出:
false
true
为什么输出一个是false,一个是true?
通过原码直到,当你给Interger直接赋值也就是自动装箱的时候,java会判断你赋的这个值是否大于等于-128小于等于127,如果在这个范围内,会将缓存中的,InterCache中new中来的对象中的值给你,如果不在这个范围内,会给你new一个新对象,”==“判断的是对象的地址值是否相同,所以当对象相同时肯定相等,而”128“超出了这个范围所以是两个新对象,所以不相等。