Java知识点梳理


Java知识点梳理

文章插图

1、Struts2和SpringMVC的区别 
(1)设计理念:前者为有状态的Action(均为多例),Action对象属性字段承载请求、响应,后者一般为无状态的Controller,请求直接封装到方法的参数中;
(2)集中访问点不同:都属于前端控制器,用于接收请求、处理请求和生成响应,但集中访问点不同,前者为Filter,后者为Servlet;
(3)请求处理粒度不同:前者一个Action对应一个请求上下文,后者一个方法对应一个请求上下文,因此更容易实现Rest;
(4)拦截器机制不同:Struts2和SpringMVC的拦截器机制均是对AOP理念的应用,但Struts2的interceptor机制是通过代理机制(ActionProxy)+责任链模式实现的,而SpringMVC的interceptor机制实现比较简单,其通过循环的方式在handler处理请求前后分别调用preHandle()方法和postHandle()方法对请求和响应进行处理,与Spring AOP、责任链模式等基本无关;
(5)对ajax的支持不同:前者需要插件或者手动转化,而后者集成了对Ajax请求的处理(HttpMessageConverter);
(6)与Spring的整合:前者需要插件,后者无缝整合(子容器);
(7)配置/效率:后者几乎是零配置,开发效率更高 。
2、Spring中IOC的理解(1)超级大工厂:对象控制权由调用者移交给容器,使得调用者不必关心对象的创建和管理,专注于业务逻辑开发;
(2)优秀的解耦方式,解耦对象间的依赖关系,避免通过硬编码的方式耦合在一起;
(3)底层实现:反射机制;
3、Spring中AOP的理解 
(1)一种新的模块化方式,专门处理系统各模块中的交叉关注点问题,将具有横切性质的系统级业务提取到切面中,与核心业务逻辑分离(解耦);
(2)便于系统的扩展,符合开-闭原则;
(3)动态AOP的实现,JAVA动态代理(接口代理)与cglib(类代理),具体由Bean后处理器生成代理;
(4)AOP理念实践:Spring AOP,Java Web Filter,Struts2 Interceptor,SpringMVC Interceptor,…
4、JVM 基础 
4.1内存模型 
(1)程序计数器:线程私有,CPU调度的基本单位,用于保证线程切换(程序能够在多线程环境下连续执行);
(2)栈(服务Java方法虚拟机栈、服务Native方法的本地方法栈):线程私有,局部变量/引用,栈深度(SOF)/无法申请内存(OOM);
(3)堆(Java代码可及的Java堆和JVM自身使用的方法区):线程共享,对象分配和回收主要区域,OOM;
4.2垃圾回收机制 
(1)Stop-the-World
JVM由于要执行GC而停止了应用程序的执行称之为Stop-the-World,该情形会在任何一种GC算法中发生 。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任务完成 。事实上,GC优化很多时候就是指减少Stop-the-world发生的时间,从而使系统具有高吞吐 、低停顿的特点 。
(2)JAVA堆的回收
关于Java对象的回收主要考虑以下两个问题:哪些对象可以被回收、怎么回收(有哪些回收算法以及有哪些垃圾回收器) 。
①判断对象是否可被回收:引用计数法(相互引用)、可达性算法(对象的引用链是否可达,GCRoots)
②垃圾回收算法:标记-清除算法(内存碎片)、复制算法(垃圾回收较为频繁、对象存活率较低的新生代)、标记-整理算法(垃圾回收不频繁、对象存活率较高的老年代)、分代收集算法 。
③垃圾回收器:串行收集器(新生代、老年代)、并行收集器(新生代、老年代)、并行清除收集器(并发,新生代,追求高吞吐)、CMS收集器(并发,老年代,标记-清除算法,追求低停顿)、G1垃圾收集器(整个堆,追求低停顿)
附:
GC Roots一般包括虚拟机栈中引用的对象,本地方法栈中引用的对象,方法区中类静态属性引用的对象、方法区中常量引用的对象 。
附:
GC Roots一般包括虚拟机栈中引用的对象,本地方法栈中引用的对象,方法区中类静态属性引用的对象、方法区中常量引用的对象 。
分代收集算法的基本思想是:不同的对象的生命周期(存活情况)是不一样的,而不同生命周期的对象位于堆中不同的区域,因此对堆内存不同区域采用不同的策略进行回收可以提高 JVM 的执行效率 。Minor GC 发生频率较高,不一定等 Eden区满了才触发;Major GC在老年代满时触发,对年轻代和老年代进行回收 。
(3)方法区回收
①对常量池的回收 。
②对类型的卸载:该类的所有实例被回收,该类的ClassLoader被回收,不存在对该类的Class对象的引用 。


推荐阅读