- 博客(4)
- 收藏
- 关注
原创 继承中的方法调用
对于动态绑定:寻找要执行的实例方法的时候,是从对象的实际类型信息开始查找的,找不到的时候,再查找父类类型信息。对于静态绑定:实例变量、静态变量、private方法、静态方法都是静态绑定;当静态绑定的方法在父类方法内部时,执行父类的方法。public class Test extends Parent{ private void inner(){ System.out.println("I am child method~"); } public sta
2022-04-30 22:21:38
556
原创 ReentrantLock学习总结
ReentrantLock锁和synchronized锁相比具有以下特点:可被中断:即可以设置“可中断锁”,当t1线程获取不到锁对象处于Blocked状态时,可由另一个线程调用t1的interrupt方法将其中断,此时t1会抛出被打断异常。 可以设置超时时间:如果没有获取到锁对象处于Blocked状态时,t1线程可以自己决定要等待多久。 可以设置为公平锁。 支持多个条件变量,即不同线程可以处于不同的waitSet进行等待,唤醒时也可以按照waitSet唤醒。ReetrantLock的打开方式:
2021-09-15 01:05:28
194
原创 反射擦除验证
反射擦除是指,一个类在编译之前有泛型约束,在编译后的字节码文件里没有泛型约束;这么做的目的是防止同一个类生成多个class文件占用内存,一个类对应一个class文件。我们可以通过反射来验证泛型在字节码文件里被擦除:public static void main(String[] args) throws Exception { List<String> stringList = new ArrayList<>(); List<Int
2021-09-06 09:06:04
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅