韩顺平0基础学java——第22

作者 : admin 本文共1975个字,预计阅读时间需要5分钟 发布时间: 2024-06-16 共1人阅读

p460-483

常用类

包装类Wrapper

针对8种几种数据类型相应的引用类型——包装类

韩顺平0基础学java——第22插图

包装类和基本数据类型的转换

韩顺平0基础学java——第22插图(1)

jdk5之前的手动装箱和拆箱:

韩顺平0基础学java——第22插图(2)

jdk5之后的自动装箱和拆箱:

韩顺平0基础学java——第22插图(3)

三元运算符是一个整体

韩顺平0基础学java——第22插图(4)

这个三元运算符里,精度最高的是double,所以是1.0!!

包装类方法 

String和包装类互转:

韩顺平0基础学java——第22插图(5)

包装类常用方法:

韩顺平0基础学java——第22插图(6)

包装类经典面试题

韩顺平0基础学java——第22插图(7)

1.False:两个都是new出来的,不是同一个对象

2.底层都是用的Integer.valueOf:在这个范围内,直接返回值而不是new

韩顺平0基础学java——第22插图(8)

范围是-128到127!所以这里是true

3.根据上一题,就是False,因为这个是128,超出了范围。

小结:如果new了那是两个对象,“==”判断的是否为同一个对象!

如果底层都是valueOf,看范围“是否在-128到127之间”,在范围内是比较值,超出后会new

如果比较的一方有基本数据类型,那么就是比值是否相等!!

String类

1.String对象用于保存字符串,也就是一组字符序列

2.字符串常量对象是用双引号括起来的字符序列

3.字符串用的Unicode字符编码,一个字符占两个字节(不管是字母还是汉字)

4.常用构造器

韩顺平0基础学java——第22插图(9)//常用

韩顺平0基础学java——第22插图(10)//其他构造器

String的类图:韩顺平0基础学java——第22插图(11)

实现串行化的意思是可以进行网络传输!

String是final类,不能被继承、。有属性private final char value【】;用于存放字符串内容。

一定要注意,value是一个final类型,一旦赋值后不可修改地址(value是一个引用,不能指向新的内容),但是值是可以修改的。

String赋值

方式一:直接赋值 

String s1 = “mdk”;

这种方式在常量池里寻找mdk数据,如果有那就让s1指向它,如果没有那就创建(创建就获得了地址)。

方式二:调用构造器

String s2 = new String(“mdk”);

这种方式在堆里先开辟空间,开辟后在常量池里寻找,如果有那就从堆里指向常量池(如果没有就创建)。

韩顺平0基础学java——第22插图(12)

 intern方法

韩顺平0基础学java——第22插图(13)

intern返回的是常量池的地址


韩顺平0基础学java——第22插图(14)

创建了一个对象:编译器会优化它,等价于String a = “helloabc”


韩顺平0基础学java——第22插图(15)

韩顺平0基础学java——第22插图(16)

麻了,c实际上是new出来的…

一共有3个对象。韩顺平0基础学java——第22插图(17)

老韩小结:底层是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类。不能被继承

韩顺平0基础学java——第22插图(18)

StringBuffer和String在使用中经常会相互转换,

2.StringBuider

韩顺平0基础学java——第22插图(19)

单线程时优先使用StringBuilder

String、StringBuffer和StringBuilder的比较:

韩顺平0基础学java——第22插图(20)

结论

韩顺平0基础学java——第22插图(21)

这章真的太困了,感觉没学明白。

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类

韩顺平0基础学java——第22插图(22)

排序有点懵逼: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的源码,发现是二叉树排序。(这是什么?)

本站无任何商业行为
个人在线分享 » 韩顺平0基础学java——第22
E-->