p460-483
常用类
包装类Wrapper
针对8种几种数据类型相应的引用类型——包装类
包装类和基本数据类型的转换
jdk5之前的手动装箱和拆箱:
jdk5之后的自动装箱和拆箱:
三元运算符是一个整体:
这个三元运算符里,精度最高的是double,所以是1.0!!
包装类方法
String和包装类互转:
包装类常用方法:
包装类经典面试题
1.False:两个都是new出来的,不是同一个对象
2.底层都是用的Integer.valueOf:在这个范围内,直接返回值而不是new
范围是-128到127!所以这里是true
3.根据上一题,就是False,因为这个是128,超出了范围。
小结:如果new了那是两个对象,“==”判断的是否为同一个对象!
如果底层都是valueOf,看范围“是否在-128到127之间”,在范围内是比较值,超出后会new
如果比较的一方有基本数据类型,那么就是比值是否相等!!
String类
1.String对象用于保存字符串,也就是一组字符序列
2.字符串常量对象是用双引号括起来的字符序列
3.字符串用的Unicode字符编码,一个字符占两个字节(不管是字母还是汉字)
4.常用构造器
//常用
//其他构造器
String的类图:
实现串行化的意思是可以进行网络传输!
String是final类,不能被继承、。有属性private final char value【】;用于存放字符串内容。
一定要注意,value是一个final类型,一旦赋值后不可修改地址(value是一个引用,不能指向新的内容),但是值是可以修改的。
String赋值
方式一:直接赋值
String s1 = “mdk”;
这种方式在常量池里寻找mdk数据,如果有那就让s1指向它,如果没有那就创建(创建就获得了地址)。
方式二:调用构造器
String s2 = new String(“mdk”);
这种方式在堆里先开辟空间,开辟后在常量池里寻找,如果有那就从堆里指向常量池(如果没有就创建)。
intern方法
intern返回的是常量池的地址
创建了一个对象:编译器会优化它,等价于String a = “helloabc”
麻了,c实际上是new出来的...
一共有3个对象。
老韩小结:底层是StringBuilder sb = new StringBuilder(); sb.append(a);sb.append(b); sb是在堆中,并且append是在原来字符串的基础上追加的.
重要规则:String c1 = "ab" + "cd";常量相加,看的是池。String c1 =a+b;变量相加,是在堆中
一到很逆天的题:
0470_韩顺平Java_String对象特性2_哔哩哔哩_bilibili
String常用方法
略,用到了再查吧
String相关的类
1.StringBuffer
1.StringBuffer的直接父类是AbstrctStringBuilder,
2.StringBuffer实现了Serializable,即StringBuffer的对象可以串行化
3、在父类中,AbstractStringBuilder有属性char【】value不是final,该value数组存放字符串内容,引出存放在堆中。
4.StringBuffer是个final类。不能被继承
StringBuffer和String在使用中经常会相互转换,
2.StringBuider
单线程时优先使用StringBuilder
String、StringBuffer和StringBuilder的比较:
结论
这章真的太困了,感觉没学明白。
Math类
Math类是静态类,常用方法:
1.abs绝对值
2.pow求幂:Math.pow(2,4);//2的4次方
3.ceil向上取整:返回该参数的最小整数:3.9返回4.0
4.floor向下取整
5.round四舍五入
6.sqrt开平方
7.random求随机数
random返回的是0-1之间的一个随机小数(0-1】
8.max、min
Arrays类
排序有点懵逼:0481_韩顺平Java_Arrays排序源码解读_哔哩哔哩_bilibili
今晚争取把这两p看懂就下班、
sort方法的使用
默认排序:Arrays.sort[ 传入数组]
定制排序:实现了Comparator接口的匿名内部类,要求实现compare方法!
Arrays.sort(arr,new Comparator(){
//匿名内部类,这里体现了接口编程的一种方式~
public int compare(Object o1,Object o2){
Integer i1 = (Integer)o1;
Integer i1 = (Integer)o1;
return n1-n2;}
})
追到sort的源码,发现是二叉树排序。(这是什么?)