面试题目笔记(自用)

本博客是纯笔记自用,为马士兵教育B站视频听课笔记

点击播放视频

1.基础

1. java面向对象的特征

封装(提高代码复用性)
继承(提高代码复用性)
多态(提高代码的灵活性,可以移植性,继承类、重写方法,父类引用指向子类对象)

2. ArrayList和LinkedList区别

ArrayList 底层结构是数组,查询快增删慢,线程不安全
LinkedList 底层结构是链表,查询慢增删快,线程不安全
线程安全的集合类:HashTable,Vector等

3. 高并发中集合有哪些

java.util.concurrent.*
ConcirretHashMap
CopyOnWriteArrayList
CopyOnWriteArraySet

4. JDK1.8的新特性

接口的默认方法、Lambda表达式、函数式编程、Lambda作用域、访问局部变量、访问对象字段与静态变量、新增如LoaclTime类等。

5.抽象类和接口的差异

相同点:
都不能被实例化
可以将抽象类和接口类型作为引用类型
一个类如果继承了某个抽象类或者实现了某个接口,都需要对其中的抽象方法进行全部实现,否则该类仍然需要被声明为抽象类。
在这里插入图片描述

2. JVM面试题

1. 对象在内存中的存储布局

mark word (64位的占8字节,32位的占4字节。存储gc信息、锁信息和hashcode信息)
类型指针 (4字节)
实例数据
对齐 (把总大小补齐为8的倍数)

2. 对象怎么定位

直接定位
间接定位
在这里插入图片描述

3. 对象在内存中如何分配

分区模型和分代模型。
jvm中对象处理的两个算法:标记清除法(标记,然后清除,后果是会出现碎片空间);复制算法:把保留的对象复制到另一个区域,然后清空本区域,速度快,不会造成碎片空间。

先进入 伊甸园 区,95%的后来死去,存活的进入幸存区1,清空伊甸园区,新的对象再来,再95%死去,新的对象和幸存区1的对象通过复制算法复制到幸存区2,清空伊甸园区和幸存区1,然后再新对象来,95%死去,新的对象和幸存区2的对象复制到幸存区1,清空幸存区2和伊甸园区。当幸存区某些对象“年龄”够了,复制到永久区。
在这里插入图片描述
在这里插入图片描述

4. 对象的创建过程

在这里插入图片描述

  1. 申请分配空间,设默认值
  2. 调构造方法,设初始值
  3. 建立对象指针和内存之间的连接

5. DCL单例

Double Check Lock
双重检查
在这里插入图片描述

6. 程序真的是按“顺序”执行的吗?

在这里插入图片描述
为了提高执行效率,CPU指令可能会乱序执行

已看到11集 进度11/146

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值