java-review
复盘
java-review
准备结束,回忆路径
1.基础
- 封装、继承、多态的实现和特点是什么?
- 深拷贝和浅拷贝区别:内部对象为引用类型
- Exception 和 Error 有什么区别
- 值传递&引用传递区别?
- 泛型和通配符的使用和关联?
- BIO、NIO 和 AIO 的区别?
- 动态代理和静态代理区别?
- SPI 机制实现方式,优点和缺点?
基本类型和包装类型区别?
功能 | 基本类型 | 包装类型 |
---|---|---|
用途 | 一些常量和局部变量 | 对象属性,泛型 |
存储方式 | 局部变量存放栈中 | 堆中 |
占用空间 | 小 | 对象空间 |
默认值 | 有 | 无 |
比较方式 | == (建议equals) | equals |
String、StringBuffer、StringBuilder 的区别?
尽量不使用+ ,会有额外对象开销。
特性 | String | StringBuffer | StringBuilder |
---|---|---|---|
可变性 | 不可变的 | 可变 | 可变 |
线程安全性 | 线程安全 | 线程安全 | 非线程安全 |
性能 | 每次改变会生成一个新的 String 对象 |
对象本身进行操作 | 对象本身进行操作,比StringBuffer 仅能获得 10%~15% 左右的性能提升 |
异常使用有哪些需要注意的地方?
- 手动抛出异常, new 一个异常对象抛出。
- 抛出的异常可读。
- 避免重复记录日志。重复打印记录日志难以定位问题,使得问题更难以追踪和解决。
jvm相关
- 虚拟机内存分配:线程隔离
- 类加载过程
- 类加载器
- java热部署
- GC内存分配和gc的不同收集器
- happens-before
- jvm调优
- == 和 equals
序列化
- 比较常用的序列化协议有 Hessian、Kryo、Protobuf、ProtoStuff
- JSON 和 XML 这种属于文本类序列化方式。虽然可读性比较好,但是性能较差。
- 对于不想进行序列化的变量
- 可以使用
transient
关键字修饰。 static
变量
2.集合
- ArrayList和LinkedList比较
- HashMap和ConcurrentHashMap比较
- ArrayList 的扩容机制
- HashMap 的扩容机制
- 排序: Comparable 和 Comparator 的区别
- ConcurrentHashMap 线程安全的具体实现方式(1.7和1.8的区别)
特性 | List | Set | Queue | Map |
---|---|---|---|---|
顺序性 | 有序,按插入顺序 | 无序 | 有序 | 无序 |
唯一性 | 可重复 | 不可重复 | 可重复 | key唯一,value可重复 |
接口实现 | ArrayList,LinkedList | HashSet,LinkedHashSet,TreeSet | PriorityQueue,DelayQueue,ArrayDeque | HashMap,LinkedHashMap,TreeMap |
线程安全实现 | CopyOnWriteArrayList,Vector | CopyOnWriteArraySet | ConcurrentLinkedQueue,LinkedBlockingQueue | ConcurrentHashMap |
3.多线程
- 线程
- 线程通信方法
- 锁:synchronizd、lock、ReenTrantLock
- synchronizd锁升级
- 乐观锁,悲观锁
- 公平锁,非公平锁
- 可中断,不可中断
- violate
- 内存可见性
- CAS 算法存在哪些问题
- ABA
- 循环开销
- 单个变量控制
- threadLocal 内存泄漏
- 线程池参数和调用逻辑、类型
- 线程数设置逻辑
- 并发工具 CountDownLatch 、Semaphare、CycleBarrier
- AQS 是什么
- CLH锁队列
4.IO
- 概念:同步/异步 阻塞/非阻塞
- BIO NIO AIO
- 字节流 ,字符流,字节缓冲流,(字符缓冲流)
5.生产问题排查
- 参数
- GC
- OOM
- 线程占用
排查工具:
- 命令行
jstat
类信息、内存、垃圾收集。。jmap
堆转储快照jstack
当前时刻的线程快照
- jconsole 分析死锁,内存监控
- Visual VM
- MAT(Memory Analyzer Tool) 堆内存离线分析工具
故事未完:173 Thoughts:: justdoit.
本文由作者按照
CC BY 4.0
进行授权