Java进阶——Attention Day 2
一天补两篇出来,确实费劲,但是喜欢整理,没办法😆
1、String字符串
字符串是引用类型,不属于八大基本类型。
说到String字符串就不得不说常量池了,
- 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响程序的性能。
- JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化为字符串开辟一个字符串常量池,类似于缓存区创建字符串常量时,首先检查字符串常量池是否存在该字符串存在该字符串,返回引用实例,不存在,实例化该字符串并放入池中。
String 字符串创建的形式:
- 一类是通过双引号包裹一个字符来初始化。
- 一类是通过关键字 new 像一个普通的对象那样初始化一个 String 实例。
2、字符串拼接比较问题
- 对于拼接的值,如果都是双引号包裹字符串的形式,则将结果放于常量池,如果常量池已经有这个
值了,则直接返回这个已有值。 - 而如果拼接的值中,有一个是非双引号包裹字符串的形式,则从heap中开辟一个新的区域保存常
量。也即是使用了String变量来做拼接的情况。
3、String是不可变对象
- java.lang.String使用了final修饰,不能被继承。
- 字符串一旦被创建,对象永远无法改变,但字符串引用可以重新赋值。
4、ArrayList
ArrayList底层是基于数组实现的,因此ArrayList具有索引且有序,可以存储重复数据。
创建ArrayList对象:
ArrayList 引用名 = new ArrayList();
注意:ArrayList不需要指定长度,默认情况下可以存储多种数据类型
ArrayList提供了很多API就不赘述了。
5、集合泛型
//格式:
ArrayList<Integer> list = ew ArrayList();//存入整数
ArrayList<String> list2 = new ArrayList();//存入字符串
ArrayList<Student> list2 = new ArrayList();//存入Student对象
...
PS:如有不足,敬请指正!😺
只要认真计划一件事,并且一边坚持一边调整,往往会完成得十分出色。懈怠的情绪谁都会有,不要担心自己比别人走得慢,也不要因暂时的挫折心灰意冷,只要不断调整心态,不停下脚步,最终能抵达终点。