- 字符串相关类
- String类以及常用方法
- String两种初始化方式的区别
- String不同拼接操作的对比
- 三种VJM
- String类常用方法
- String与基本数据类型和包装类之间的转换
- String与char[]数组之间的转换
- String与byte[]数组之间的转换
- 可变字符串之StringBuffer和StringBuilder
- JDK8之前的日期时间API
- System静态方法
- Date类
- Calendar类
- SimpleDateFormat类
- JDK8中新的日期时间API
- LocalDate, LocalTime, LocalDateTime
- Instant
- DateTimeFormatter
- 其他类
- Java比较器
- Comparable接口
- Comparator接口
- System类
- Math类
- BigInterger与BigDecimal
String:字符串。使用一对“”扩起来表示
1.String声明为final的,不可被继承
2.String实现了Serializable接口:表示字符串支持序列化。
实现了Comparable接口:表示String可以比较大小
3.String定义了final char[] value数组用于存储字符串数据
4.String代表一个不可变的字符序列。
5.通过字面量的方式(区别与new)给一个字符串赋值,此时的字符串声明在字符串常量中。
6. 字符串常量池中是不会存储相同内容的字符串
String s1=“abc” s1的数据javaEE声明在方法区中的字符串常量池中。
String s2= new String(“JAVA”) s2的数据(只要是new的)在堆空间中开辟。
但凡含有对象的拼接,都是在堆空间中开辟新的内存去建立临时对象。如果拼接结果调用intern()方法,返回值就在常量池中。
针对于不同问题对JVM进行优化
1.Sun公司的HotSpot 被Oracle 收购
2.BEA公司的JRockit 被Oracle 收购
3.IBM公司的J9 VM
字符串常量池在堆空间的元空间中
String类常用方法
String–>基本数据类型、包装类:调用parsexxx(str);
基本数据类型、包装类–>String:调用String重载的valueof(xxx)方法
String–>char[] :调用String中的toCharAarray方法
char[] -->String:调用String的构造器
String–>byte[] :调用String中的getBytes方法
char[] -->String:调用String的构造器
String:不可变字符序列,底层使用char[]存储
StringBuffer:可变字符序列:线程安全的,效率低,底层使用char[]存储
StringBuilder:可变字符序列:线程不安全的,效率高,JDK5.0新增,底层使用char[]存储
可变的意思是:可以改变对象中原本char数组的值,而不可变是用新的对象替换旧的。且长度可变。如果添加字符超过原有长度16则扩容为原来的两倍+2
JDK8之前的日期时间API System静态方法 Date类 Calendar类 SimpleDateFormat类 JDK8中新的日期时间API LocalDate, LocalTime, LocalDateTime Instant DateTimeFormatter 其他类 Java比较器 Comparable接口 Comparator接口 System类 Math类 BigInterger与BigDecimal


