标签:min 解决办法 整理 adc 模式 expr 注册 sort 架构
5.1 类加载机制,也就是双亲委派模型
5.2 java内存分配模型(默认HotSpot)
线程共享的:堆区、永久区 线程独享的:虚拟机栈、本地方法栈、程序计数器
5.3 内存分配机制:年轻代(Eden区、两个Survivor区)、年老代、永久代以及他们的分配过程
5.4 强引用、软引用、弱引用、虚引用与GC
5.5 happens-before规则
5.6 指令重排序、内存栅栏
5.7 Java 8的内存分代改进
5.8 垃圾回收算法:
标记-清除(不足之处:效率不高、内存碎片)
复制算法(解决了上述问题,但是内存只能使用一半,针对大部分对象存活时间短的场景,引出了一个默认的8:1:1的改进,缺点是仍然需要借助外界来解决可能承载不下的问题)
标记整理
5.8 常用垃圾收集器:
新生代:Serial收集器、ParNew收集器、Parallel Scavenge 收集器
老年代:Serial Old收集器、Parallel Old收集器、CMS(Concurrent Mark Sweep)收集器、 G1 收集器(跨新生代和老年代)
5.9 常用gc的参数:-Xmn、-Xms、-Xmx、-XX:MaxPermSize、-XX:SurvivorRatio、-XX:-PrintGCDetails
5.10 常用工具: jps、jstat、jmap、jstack、图形工具jConsole、Visual VM、MAT
2.1 AOP的实现分类:编译期、字节码加载前、字节码加载后三种时机来实现AOP
2.2 深刻理解其中的角色:AOP联盟、aspectj、jboss AOP、Spring自身实现的AOP、Spring嵌入aspectj。特别是能用代码区分后两者
2.3 接口设计:
AOP联盟定义的概念或接口:Pointcut(概念,没有定义对应的接口)、Joinpoint、Advice、MethodInterceptor、MethodInvocation
SpringAOP针对上述Advice接口定义的接口及其实现类:BeforeAdvice、AfterAdvice、MethodBeforeAdvice、AfterReturningAdvice;针对aspectj对上述接口的实现AspectJMethodBeforeAdvice、AspectJAfterReturningAdvice、AspectJAfterThrowingAdvice、AspectJAfterAdvice。
SpringAOP定义的定义的AdvisorAdapter接口:将上述Advise转化为MethodInterceptor
SpringAOP定义的Pointcut接口:含有两个属性ClassFilter(过滤类)、MethodMatcher(过滤方法)
SpringAOP定义的ExpressionPointcut接口:实现中会引入aspectj的pointcut表达式
SpringAOP定义的PointcutAdvisor接口(将上述Advice接口和Pointcut接口结合起来)
2.4 SpringAOP的调用流程
2.5 SpringAOP自己的实现方式(代表人物ProxyFactoryBean)和借助aspectj实现方式区分
5.1 数据库性能的优化
5.2 深入理解mysql的Record Locks、Gap Locks、Next-Key Locks
例如下面的在什么情况下会出现死锁:
start transaction; DELETE FROM t WHERE id =6; INSERT INTO t VALUES(6); commit;
5.3 insert into select语句的加锁情况
5.4 事务的ACID特性概念
5.5 innodb的MVCC理解
5.6 undo redo binlog
具体见 张开涛大神的架构系列
服务限流:令牌桶、漏桶
服务降级、服务的熔断、服务的隔离:netflix的hystrix组件
11.4 服务的线性扩展
无状态的服务如何做线性扩展:
如一般的web应用,直接使用硬件或者软件做负载均衡,简单的轮训机制
有状态服务如何做线性扩展:
如Redis的扩展:一致性hash,迁移工具
11.5 服务链路监控和报警:CAT、Dapper、Pinpoint
14.1 raft(详见Raft算法赏析)
14.2 ZooKeeper使用的ZAB协议(详见ZooKeeper的一致性算法赏析)
14.3 paxos(详见paxos算法证明过程)
14.3.1 paxos的运作过程:
Phase 1: (a) 一个proposer选择一个编号为n的议案,向所有的acceptor发送prepare请求
Phase 1: (b) 如果acceptor已经响应的prepare请求中议案编号都比n小,则它承诺不再响应prepare请求或者accept请求中议案编号小于n的, 并且找出已经accept的最大议案的value返回给该proposer。如果已响应的编号比n大,则直接忽略该prepare请求。
Phase 2:(a) 如果proposer收到了过半的acceptors响应,那么将提出一个议案(n,v),v就是上述所有acceptor响应中最大accept议案的value,或者是proposer自己的value。然后将该议案发送给所有的acceptor。这个请求叫做accept请求,这一步才是所谓发送议案请求,而前面的prepare请求更多的是一个构建出最终议案(n,v)的过程。
Phase 2:(b) acceptor接收到编号为n的议案,如果acceptor还没有对大于n的议案的prepare请求响应过,则acceptor就accept该议案,否则拒绝
14.3.2 paxos的证明过程:
1 足够多的问题
2 acceptor的初始accept
3 P2-对结果要求
4 P2a-对acceptor的accept要求
5 P2b-对proposer提出议案的要求(结果上要求)
6 P2c-对proposer提出议案的要求(做法上要求)
7 引出prepare过程和P1a
8 8 优化prepare
14.3.3 base paxos和multi-paxos
标签:min 解决办法 整理 adc 模式 expr 注册 sort 架构
原文地址:http://www.cnblogs.com/javabeginer/p/6962565.html