一、包装类
1、八大常用包装类
2、包装类和基本数据的转换
//演示int<-->Integer 的装箱和拆箱
//jdk5前是手动装箱和拆箱
//手动装箱
int n1 = 100;
Integer integer = new Integer(n1);
Integer integer1 = Integer.valueOf(n1);
//手动拆箱
int i = integer.intValue();
//jdk5以后就可以自动装箱和自动拆箱
int n2 = 200;
//自动装箱
Integer integer2 = n2;//底层使用是还是Integer.valueOf(n2)
//自动拆箱
int n3 = integer2;//底层使用是还是integer2.intValue()方法
注:其他包装类的用法类似
3、包装类型和String类型的相互转换
4、包装类的常用方法
5、Intrger类面试题
答案:错对错,因为第一个是是new出来的,"=="表示的是比较两个对象是否相等
第二个主要看范围,-128到127就是直接返回,底层是Integer.valueOf(xx);
第三个主要看范围,-128到127就是直接返回,使用底层是 new Integer(xx);
二、String 类!
注:注意5、6、7、8点
1、创建 String 对象的两种方式
注:a==b,返回的是false,因为a指向的是常量池,而b指向的是堆
2、String 的特性
学习思路:一定尽量看源码学习
3、String 类的常用方法
演示:
name.substring(0,5) 表示从索引0开始截取,截取到索引 5 位置 但不包含5(可以理解为截取到 n-1 位置)
indexOf()也可以获取字符串在对象中第一次出现的位置,lastIndexOf()同理
演示:
4、StringBuffer类
(1)
String vs StringBuffer
(2)StringBuffer 转换
(3)StringBuffer方法
5、StringBuilder类
6、String、StringBuffer和StringBuilder
结论:如果我们对String做大量的修改,不要使用String,要使用StringBuffer,如果是单线程要考虑使用StringBuilder
效率:StringBuilder > StringBuffer > String
7、String、StringBuffer和StringBuilder 使用原则
三、Math方法
练习:获取一个 a-b之间的随机整数
四、Arrays 类
五、System类
六、大数处理方案(BigInteger 和 BigDecimal)
-
BigInteger 和 BigDecimal 介绍
七、日期类
1、第一代日期类
2、第二代日期
注:获取月要 +1,因为Calendar 返回月的时候,是按照 0 开始编号
如果要按照24小时进制来获取时间,Calendar.HOUR 改成
Calendar.HOUR _OF_DAY
3、第三代日期
例子: