自动拆装箱
1.基本数据类型对应的包的好处是它是个类可以new对象调方法
2.基本数据类型包装类的特点:用于基本数据类型和字符串进行转换;且每个方法都是自己包装类的方法,因为返回值是static修饰的所以可以直接类名.调用;
3.字符串转基本数据类型的时候:字符串必须是数值型不然不能进行转换
4.基本数据类型转字符:1:基本数组类+"";2.String.valueof方法;3.调用包装类的toString方法:Integer.toString
5.自动拆装箱:就是引用数据类型可以直接拿来运算,因为系统自动并隐藏了引用数据类型转基本数据类型的过程;
基本数据类型可以直接赋值给引用数据类型,原因是系统自动将基本数据类型转成了引用数据类型并隐藏了转换过程
6.自动装箱:基本数据类型转成引用数据类型(int->Integer)
自动拆箱:引用数据类型转成基本数据类型(Integer->int)
7.将String转为int数据类型;String age="18";int a=Integer.parseInt(age);因为String转int所以要int a来接;转什么数据类型就用相应的引用数据类型的方法来转
8.基本数据类型转字符型:1.int num=1;String num=num+"";因为加上""就是加上了一个字符所以转成了字符型
2.String的valueof()方法:String num=String.valueof(num);因为转成String所以用String num来接
3.调用相应的包装类的toString方法:String str=Integer.toString(num);
9.基本数据类型转成包装类:int转Integer: Integer num=new Integer(1);这实际上就是有参构造; 字符转Integer: Integer num=new Integer("1")
通过包装类.valueof()方法来转:int转Integer: Integer i=Integer.valueof(1);String转Integer: Integer i=Integer.valueof("1");
包装类转基本数据类型:int i=i5.intvalue(); i5是前面转的Integer类型的变量
10.基本数据类型和引用数据类型的区别:int不能存null;Integer可以存null;因为Integer是个对象可以掉方法,而且对象的默认值是null;Integer实际存的是地址
11.自动装箱(int转Integer)拆箱(Integer转int);装箱:int转Integer;拆箱:Integer转int;
12.自动装箱:基本数据类型转引用数据类型: Integer i=1;自动装箱就是直接赋值,实际上省略了integer i=new Integer(1);这里的1就是integer i=new Integer(1);
13.自动拆箱:就是包装类型转成基本数据类型:int sum=i+2;这里也是直接写,实际上省略了:int sum=i.intvalue(1)+2; i=i.intvalue();
14.Integer i=555;Integer i2=555;system.out.println(i==i2)结果false;因为i是Integet类型是对象,所以他们比较的是地址,所以地址肯定不一样
system.out.println(i.equals(i2))结果true;因为这里i用的是equals()方法比较的是内容所以i和i2的内容一样都是555
Integer n=127;Integer n2=127;;system.out.println(n==n2)结果是true;因为127是byte类型的,byte有常量池;如果n和n2的数值一样,那么就不会生成一个新的对象;直接把n的
值赋值给n2;也就是把n2的地址给n;那么也就不会生成新的对象实际上n2就是n
15.System类不能手动new对象,因为构造方法被private修饰所以不能再创建对象;因为system类中都被static修饰所以直接类名.方法名调用就行
16.System的方法有:1.System.currentTimeMillis(获取毫秒值)2.System.exit():打断虚拟机运行,()里面传int类型的值,写0是正常状态停止运行
System.gc是系统垃圾回收机制
17.数组的赋值:int[] arr={1,2,3};int[] arr2={4,5,6};System.arraycopy(arr,0,arr2,0,3);System.arraycopr(源数组,要复制的起始下标,目标数组,目标数组要复制的下标,复制的位数)
18.求绝对值:Math.abs(-90.3); 向上取整(就是算12.9结果也是13):Math.ceil(12.1)结果13; 向下取整(就算是12.9结果也是12):Math.floor(12.1)结果是12
四舍五入:Math.round(12.4)结果是12;Math.round(12.9)结果是13;获取两个数的最大值:Math.max(22,12)结果是22;获取两个数的最小值:Math.min(22,12)结果是12
求次幂;就是2的10次方:Math.pow(2,10);求0-1之间的随机小数:Math.random();
19.Arrays的用法:int i=[1,2,3] int index=Arrays.binarySearch(i,2)结果index=1;这个是查找数组中具体数值的下标;如果元素不存在那么返回的是改元素应该所在的下标(负 的)-1减1;-1-1=-2;
20.数组排序:Arrays.sort(arr);就是给arr数组进行排序,顺序是由小到大
21.将数组转成字符进行输出,效果相当于for遍历:Arrays.toString(arr)
22.Arrays就是操作数字的工具(搜索和排序);如果指定的数组是值是null;就会出现空指针异常错误
23.大数据运算:BigInteger(Integer类型的数值)和BigDecimal(Double类型的数值);
BigInteger的四则运算:BigInteger n1=new BigInteger("100000000000000");BigInteger n2=new BigInteger("200000000000000");
1、加法:n1.add(n2) 2、减法:n2.subtract(n1); 3.乘法:n1.multiply(n2); 4.除法:n2.divide(n1)
BigDecimal(可以解决计算失精度的问题)的四则运算:BigDecimal num1=new BigDecimal("0.09");BigDecimal num2=new BigDecimal("0.03");
1.加法:num1.add(num2) 2.减法:num2.subtract(num1) 3.乘法:num1.multiply(num2) 4.除法:num2.divide(num1)