jvm
内存结构
kafka
消息可靠性保证
幂等性
javaSe
int(4字节) Integer
byte(1字节) Byte
short(2字节) Short
long(8字节) Long
float(4字节) Float
double(8字节) Double
char(2字节) Character
boolean(未定) Boolean
拆箱装箱原理?
编译器提供的便捷方式。编译期间,装箱是通过调用包装器的valueOf方法;拆箱是调用xxxxValue方法
重写equals方法为什么要重写hashCode?
hashCode相同值可能不同,但是值如果相同的话,hashCode也一定相同
HashMap 比较key的时候先比较的HashCode再比较equals
动态代理有几种方式以及优缺点?
在运行过程中生成对应的class字节码文件,并且实例化对象
1、JDK提供的动态代理:Proxy.newProxyInstance(类加载器,类实现的接口,InvocationHandler实现类),返回Object类型,通过接口类型强转换即可使用代理类。
需要我们提供接口
2、CGLIB动态代理:使用ASM的字节码生成库,允许我们动态修改或者创建
a、CGLB动态代理实现方式降低了被代理对象的要求
b、CGLB动态代理对于被代理对象的final方法无法进行增强