常见知识点总结

最左匹配原则

java内存模型

volatile详解

单例模式

偏向锁、轻量级锁、重量级锁的升级以及区别      https://blog.csdn.net/u012722531/article/details/78244786

synchronized的JVM底层实现(很详细 很底层)

代码块同步是使用monitorenter和monitorexit指令实现, monitorenter指令是在编译后插入到同步代码块的开始位置,而monitorexit是插入到方法结束处和异常处, JVM要保证每个monitorenter必须有对应的monitorexit与之配对。任何对象都有一个 monitor 与之关联,当且一个monitor 被持有后,它将处于锁定状态。线程执行到 monitorenter 指令时,将会尝试获取对象所对应的 monitor 的所有权,即尝试获得对象的锁。

Java中的锁机制 synchronized & 偏向锁 & 轻量级锁 & 重量级锁 & 各自优缺点及场景 & AtomicReference

关于表单重复提交问题:
1. 在第一次显示页面的时候,随机制作一个标记token(如时间戳),然后把token放入session和hidden中;
2. 当点击提交按钮的时候,获取session和的token和hidden中的token,如果session中的token不为null,则比较两个token是否一致;
3.  如果两个token一致,受理请求,并移除session的token属性;
4. 如果不一致,或者session的token为null,则不受理请求
 
SpringMVC的工作流程
      1. 用户发送请求至前端控制器DispatcherServlet 
      2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。 
      3. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 
      4. DispatcherServlet调用HandlerAdapter处理器适配器 
      5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 
      6. Controller执行完成返回ModelAndView 
      7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 
      8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器 
      9. ViewReslover解析后返回具体View 
     10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 
     11. DispatcherServlet响应用户

MySQL 百万级分页优化(Mysql千万级快速分页)

怎样实现同一个账户同一时间只能在一个终端登录

找出第K大的数

接口和抽象类应用场景

首先 类描述的是 这个东西是什么(强调所属)?包含了静态属性,静态行为 ,属性和行为。

而接口 描述的它能做什么事儿(强调行为)?     只是 静态常量属性 和 行为

  1. 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。
    如果你想实现多重继承,那么你必须使用接口。
    由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。
    如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。
  1. 抽象类表示共有许要实现的方法 接口用来特定类有需要才实现 人都会吃饭 但有的人抽烟

  2. 抽象类是用来捕捉子类的通用特性的

  3. 抽象类是 is a关系;而接口是has a关系

  4. 看看jdk的api会发现大部分接口都是able结尾的,表示一种能力。马士兵曰过:当你不知道用抽象类还是接口好时就用接口

posted @ 2018-08-12 23:44  Crazy、baby  阅读(130)  评论(0编辑  收藏