栈区s1 常量池 abc
栈区s2 堆区 abc?
intern :去常量池中找到abc并返回,但是本题返回值并没有接,s2还是指向堆区。
如果s2=s2.intern();那么就是true。
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《几张图轻松理解String.intern()》, 一起来围观吧 https://blog.csdn.net/soonfly/article/details/70147205?utm_source=app&app_version=4.5.8
安全:多个人同时访问会不会覆盖或者不一致,覆盖或者不一致那就是不安全的。
安全,是不可变类,创建一个对象后固定不变,是个常量不可改变,外界只是访问,不会导致覆盖或者不一致,所以是安全的。
hashmap的key来得到对应的哈希码值,来确定value 的存储位置,string类是个不可变类,创建完string对象之后就不改变,哈希码值也不改变,所以string内部优化了一段空间来存储哈希码值,存在string内部,直接去缓存中寻找就可以,不用重新计算。(放入元素的时候不用计算哈希码值,直接寻找)
因为字符串是不可变的,所以当创建字符串时,它的 hashcode 被缓存下来,不需要再次计算,所以相比于其他对象更快。(百度)
Collection是抽象类,增删改查
Collections是工具类,存在静态方法来排序查找等.
链表改成了红黑树。
7:在数组中的每个元素都是链表
8:数组链表到一定长度会变成红黑树
形式参数变量引用这种,在方法体内部,是不是"="等号只会改变这个,引用指向堆区地址改变指向哈。
只有通过某些静态或者非静态方法,调用方法才可能修改到他指向的堆区内存(那种get show的没涉及到修改)?