- 博客(8)
- 收藏
- 关注
原创 ArrayList源码分析
一些关键变量从这里 可以看出ArrayList内部和String一样也是用的数组来实现的首先看构造方法 //就是初始化了一个空数组 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }看一下常用的方法1:add public boolean add(E e) { //首先确保本地容量,以免出现越界 e
2021-05-15 20:31:08 83
原创 String源码
方式1:String str = new String("123");方式2:String str2 = "123";看一下内部源码:里面有两个比较重要的变量字符串的hash值以及一个char类型的数组(这里用到了final空白,编译器会保证在使用的时候一定会被初始化,其实这样不仅保留了final只能被赋值一次的特性还有更好的扩展性),至于构造方法是用一个String类型接收的而我们传入的是"123",那么这个original是怎么来的呢,借用网上的观点在java中如果值被双引号引起来...
2021-05-15 19:58:45 123
原创 Handler机制
一些基础:handler主要用于在子线程中经行耗时操作避免阻塞UI线程再把消息发送到UI线程再经行处理,handler机制中海包括了Looper,MessageQueue,ThreadLocal等。Looper:handler一般的写法为: private Handler handler = new Handler(Looper.myLooper()) { @Override public void handleMessage(@NonNull Mes
2021-04-06 21:19:28 847
原创 Java静态代理、动态代理
静态代理:在Java中常见的使用静态模式的例子就是Thread、Runnable1:定义一个接口表示想要做的事情(接口是核心后面的两个类都需要实现它)public interface Hello { void sayHello(); void sayGoodbye(String name);}2:定义一个实现类public class Person implements Hello { @Override public void sayHello(
2021-04-04 19:52:36 115 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人