2017/11/09
1,zk分布式锁
代码后续提交
2,TCP三次握手和四次分手.
11/13 jdk9
1,jshell
2,模块化
3,接口私有方法
3,http2方法增强.
4,api增强
二,http2.0和http1.0区别
JVM类文件结构和字节码指令
java类文件结构
Class文件格式采用类似C语言结构体的伪结构来存储数据,这种结构只有两种数据类型:无符号数和表。
magic
次版本号
主版本号
常量个数
常量池
类的访问控制权限
类名
类的父类名
接口个数
接口名
域名个数
域名表
方法的个数
方法表
附加属性个数
附加属性表
java字节码指令
存储和加载指令
strore
load
运算指令
加法add
减法sub
乘法等等
创建和访问指令
new 创建对象
newarray 创建数组
multinewarray创建多个数组.
访问属性指令
getfield putfield getstatic putstatic
检查实例类型
instanceof checkcast
类型转换指令
操作数转移指令
出栈 pop
将元素压倒栈顶 dup
ifeq ifne 等等
方法调用和返回指令
invokevirtual 调用方法的实例方法
invokeinterface 调用接口方法的指令
invokespecial 调用特殊方法 比如构造方法 父类的构造方法.,
invokestatic 调用static方法.
ireturn
lreturn等.
异常处理
athrow
同步指令
monitorenter
monitorexit
java字节码指令
案例分析
OSGI
字节码生成技术和动态代理实现
面试:
1,Java线程池的实现原理
2,线程是否可以共享。线程池如何实现线程共享的。
3,JVM的内存结构。
4,Java锁机制的实现原理(主要是画Monitor示意图)。
5,Spring怎么配置事务(具体说出一些关键的xml 元素)。
6,MySQL的索引类型,以及B+树具体怎么存储的,每个节点都存的什么东西。
7,Redis的数据结构都有哪些。
8开闭原则怎么应用。
9,ConcurrentHashMap的实现原理。
10,线程的状态图。
11,数据层分库分表的一些知识。
11,如果有人恶意创建非法连接,怎么解决。
11,多线程的内存视图(线程内存、主内存),以及内存可见性。
12,volatile关键字的理解。
13,编程中自己都怎么考虑一些设计原则的,具体讨论了开闭原则,以及在工作中的应用。
14,缓存数据过期后的更新问题。
15,如何设计一个类,主要讨论了类粒度的问题。