- 博客(9)
- 收藏
- 关注
原创 struts2原理模拟
Struts2的核心: Struts2的设计目的是提取Servlet的公共功能,达到简化Servlet的目的。核心思想就是设计一个在Servlet执行之前先做一些工作,比如设置编码,接收参数,还有结束之后的跳转等等。核心实现方式就是添加一个filter,完成上述功能。 图一:Struts2核心原理 Struts2的核心功能分析: 1、 跳转:当一个用户请求的URI来了经过过滤器
2017-12-11 15:10:27 301
原创 8-ClassLoader
ClassLoader的核心作用是:加载指定路径的class JVM将所需要运行的*.class文件加载到JVM进程中需要有一个类加载器(ClassLoader,系统会提供默认类加载器,我们也可以自己写),类加载器的好处就在于我们可以随意指定*.class文件的位置(包括网络上的)。 类的初始化时间 调用ClassLoader类的loadClass方法加载一个类,并不是对类的主动使用,不会导
2017-12-08 22:25:19 174
原创 7-类的加载、连接、初始化
Java虚拟机的生命周期 在下面的集中情况下会结束java虚拟机 1、 执行了System.exit() 2、 程序正常结束 3、 程序在运行过程中遇到的异常或错误而异常终止 4、 由于操作系统出现错误 类的加载、连接、和初始化 加载:查找并加载的类二进制数据(加载到内存) 将类的class文件中的二进制数据读入到内存中,将其运行时数据区的方法区,然后在堆内存上创
2017-12-08 21:04:39 211
原创 6-java引用类型
Java引用概述 引用是开发的灵魂,直接决定了对象占用内存的时间,在JDK1.2之后提出了四种引用方式 1、 强引用:当JVM空间不足,JVM宁可出现OutOfMemoryError错误停止,也需要空间保存,并且不回收空间 Object obj=new Object() 2、 软引用:当内存不足,进行对象回收处理,往往用于高速缓存Mybaits 3、 弱引用:不管内存是否紧张,有垃圾就回收
2017-12-08 20:03:53 170
原创 4-JVM的GC算法(2)
新生代可用的GC策略 首先介绍一种Stop-The-World(STW):Java中一种全局暂停的现象,全局停顿,所有Java代码停止,native代码可以执行,但是不能和JVM交互。这个过程多半由于GC引起,包括:(1)Dump线程;(2)死锁检查;(3)堆Dump。 串行GC(Serial Copying)复制(Copying)清理算法A、 扫描年轻代中所有存活的对象;B、 使用Minor G...
2017-12-08 17:53:18 227
原创 3-JVM的GC算法(1)
GC算法概述: JAVA语言最大的特点在于具备良好的垃圾收集特点,也就是GC是整个java之中最重要的安全保证,帮助开发者写出合理的代码。整个JVM中的GC处理机制:对不需要的对象进行标记,而后进行清除。 堆内存的划分 图一:java堆内存的划分 1.8之后永久代改成了元空间 永久代只有HotSpot中有 Oracle 试图将HotSpot和JRockit的标准合并为一个
2017-12-08 17:27:47 216
原创 2-jvm概述
JVM的运行的流程: 图一:JVM运行流程 所有的Java程序必须保存在*.java的文件之中,称为源代码。 这些源代码不能直接执行,必须使用javac.exe命令把源代码编译成为*.class文件(编译器)。 使用java.exe命令在JVM进程中解释此程序。 JVM将所需要运行的*.class文件加载到JVM进程中需要有一个类加载器(ClassLoader,系统会提供默认类
2017-12-08 12:02:10 196
原创 1-我眼中的jvm
JVM的封装思想 在我的眼中,jvm很类似操作系统,都是在干管理内存,控制线程和并发的工作,只是OS还要管理外设,而jvm没有干这个活,笔者认为它俩之间的核心本质是一样的,就是封装。 操作系统是面向硬件的封装 一个例子:对于用户而言,操作系统提供了操作硬件的接口,一个printf(“操作系统”); 就搞定了文字到0,1数据流再到像素点阵的转换,”操作系统”先在内存中被转化成0/1数据流
2017-12-08 11:19:54 138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人