04 2023 档案
摘要:1、JDK和CGLIB动态代理的区别 JDK代理使用的是反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGLIB代理使用字节码处理框架asm,对代理对象类的class文件加载进来,通过修改字节码生成子类。JDK创建代理对象效率较高,执行效率较低;CGLI
阅读全文
摘要:一、初始化线程的几种方式? 1、继承Thread2、实现Runnable接口3、实现Callable接口+FutureTask(可以拿到返回结果,可以处理异常)4、创建线程池的方式。方式1和方式2:主线程无法获取线程的运算结果。方式3:主线程可以获取线程的运算结果,但是不利于控制服务器中的线程资源,
阅读全文
摘要:CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。 一、前言 了解了一下JDK1.8中ConcurrentHashMap的实现,发现它
阅读全文
摘要:二进制数的逻辑运算有四种:“与”运算AND、“或”运算OR、 “非”运算NOT、“异或”运算XOR。 其中“或”运算又称逻辑加法、“与”运算又称逻辑乘法、“非”运算又称逻辑否定,“异或”运算又称逻辑半加法。二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。二进制数的逻辑运
阅读全文