几道题目

1、JVM 内存溢出有哪几种,该如何处理?
答:主要有三种 heap space oom , permanent space oom 和 unable to create new native thread
1)heap space oom  启动虚拟机是 设置 最小最大值 和代码监控
2)permanent space oom  设置 -XX permsize
3)unable to create new native thread  ,调整heap 大小和 线程数量,采用线程池

java8 已经没有 permanent space ,转移到系统内存中 METASPACE

2、GC 种类
答:GC 分为 full gc 和 minor gc ,需尽量避免 full gc

3、class 加载过程
五步:加载 验证 准备 解析 和初始化
1)加载
(1)通过类名称获取二进制字节流
(2)将二进制字节流转化为运行时数据结构
(3)在java permanent 区 生成代表这个类的class对象,作为访问的入口
2)验证
(1)文件格式验证
(2)元数据验证
(3)字节码验证
3)准备
为类变量(静态变量)分配内存并设置初始值

4)解析
将常量池中的符号引用替换为直接引用,解析包括 类、字段、类方法和接口方法解析
5)初始化
真正开始执行类中定义的 java程序代码


5) hash
(1) 对象相等则hashCode一定相等;
(2) hashCode相等对象未必相等。

6)hash算法

7)redis支持并发数计算

8)设计原则 OCP

9)设计模式

猜你喜欢

转载自xqar.iteye.com/blog/2242794