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 FilterStruts2 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对象的引用

4.3 OOM/SOF

1)

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值