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方法无法进行增强

    image.png