面试 遗漏的知识点

java对象创建过程

  • 类加载检查
    • 检查new指令的参数是否在常量池中定位到一个类的符号引用
    • 检查该类符号引用代表的类是否已被加载、解析和初始化过
    • 如果没有,则会进行类加载过程(加载、验证、准备、解析、初始化)
  • 为对象分配内存
    • java堆内存规整——指针碰撞
    • java堆内存不规整——空闲列表
    • 常用方法——本地线程分配缓冲(TLAB)
  • 将内存空间初始化为0
    • 保证了对象的实例字段在使用时可不赋初始化值就直接使用
  • 对对象头进行必要的设置
    • 设置该对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的gc分代年龄等信息

MVCC实现原理

  • update
    • 对该行加排他锁
    • 把该行原本的值拷贝到undo log中
    • 修改该行的值产生一个新版本,更新DATA_TRX_ID(更新这条记录的事务ID),将DATA_ROLL_PTR(指向该行回滚段的指针)指向刚刚拷贝到undo log中的旧版本记录
    • 释放排他锁
  • insert
    • 产生一条新记录
    • DATA_TRX_ID为当前插入记录的事务ID
  • delete
    • 一种特殊的update
    • 软删
    • 在commit时真正执行删除操作
    • DATA_TRX_ID记录删除该纪录的事务ID

自动装箱 自动拆箱

		// 自动装箱
        Integer a=100; //相当于 Integer a = Integer.valueOf(100)
        Integer b=100; //Integer在-128——127之间使用了缓存,因此a==b
        Integer c=200;
        Integer d=200;
        System.out.println(a==b); //true
        System.out.println(c==d); //false
        // 自动拆箱
        int tmp=a; //相当于 int tmp=Integer.intValue(a)
        System.out.println(tmp);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值