包装类wrapper
针对8种基本类型相应的引用类型
装箱操作为各包装类的valueof方法(默认调用)
包装类和String类型的转换
包装类->String 新建str对象
-
toString()
-
String.valueOf(i)
String->包装类
-
掉用构造方法,直接传入String
包装类应用
String类
构造方法:查看API文档(构造方法太多)
public class TestTrans { public static void main(String[] args) { String s1 = "王佳琦的对象"; String s2 = "杨后华的对象"; String s3 = (s1+s2).intern();//去掉intern方法后就不同了 System.out.println(s3); String s4 = "王佳琦的对象杨后华的对象"; System.out.println(s3==s4); } }
String在使用时内存分配的理解
StringBuilder和StringBuffer
用于增强String的功能
-
StringBuffer是一个容器
-
StringBuffer是可变长度的
-
String保存的是字符串常量,值不能更改,每次String类的更新实际上就是更改地址,效率较低
-
StringBuffer保存的是字符串变量,里面的值可以更改,每次更新实际上可以更新内容,不用每次都更新地址(过大之后也会重新扩建,重新分配地址,但相较而言更改地址次数很小)
-
char[] value是放在堆里的
-
StringBuffer的常用方法:
-
增 append
-
删 delete(start,end)
-
改 replace(start,end,string)
-
查 indexOf 查找子串在字符串第一次出现的索引
-
插 insert
-
获取长度 length
StringBuilder与StringBuffer兼容API,但不是线程安全的
-
该类被设计为StringBuffer的简易替换
-
用在字符串缓冲区被单个线程使用的时候
-
如果可能,建议优先采用该类,他比StringBuffer快
Math类
包含用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数
看API
Arrays类
包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)
System类
-
exit退出程序
-
arraycopy复制数组元素
-
currentTimeMillens返回当前时间距离1970-1-1的毫秒数
-
gc
BigInteger和BigDecimal类
-
BigInteger适合保存比较大的整形
-
long不够用时
-
基本运算必须调用方法,不能直接+-*/
-
-
BigDecimal适合保存精度更高的浮点型
-
double不够用时
-
日期类
-
Date(第一代)
-
Calendar(第二代)
-
LocalDate(第三代)
-
LocalDate只包含日期,可以获取日期和时间字段
-
LocalTime只包含时间,可获取时间字段
-
LocalDateTime包含时间+日期
-
DateTimeFormat用于对日期对象的格式化
-
Instant时间戳
-
类的使用都可以查API用的时候再找