3

String StringBuffer StringBuilder之间的区别

之三者的区别可以从两方面入手运行速度和线程安全

  • 运行速度

速度为StringBuilder>StringBuffer>String

String是字符串常量,一旦操作了就不可以更改。JVM在执行两个String相加的时候,首先创建一个String,然后把之前String的值和这个新的String相加,那么相加后的值就是新建出来的String的值了,而原先的String就被JVM回收掉了。

StringBuilder和StringBuffer是字符串变量,对变量的操作就是直接对该对象进行修改。而不是回收操作,因此速度要快很多。

但是一个string的加法要比StringBuilder快很多,因为相当于没有加,直接复制

  • 线程安全

StringBuilder是非线程安全的,StringBuffer是线程安全的,是因为StringBuffer的很多方法有syncoronied关键字,

StringBuilder在java5被提出

  • 线程池的复用原理
  • transform api
  • 类型擦除原理
  • HashMap的扩容原理?

扩容是扩到多大

2倍

与2倍相同的低位进行与操作,那么就得到具体的位置了

扩容能力

0.75负载因子,实际容量的3/4,为什么不是0.5?是通过大量计算得出的,如果太小,则浪费,如果太大,可能get和put造成碰撞

初始容量2的16次方

最大容量

2的31次方

Syn的实现

https://www.cnblogs.com/lycroseup/p/7486860.html

sleep和wait()的区别?

线程的join是什么?

HashMap和ConcurrentHashMap

Handler机制

Activity启动模式

谢谢您的鼓励~