- 博客(10)
- 收藏
- 关注
原创 Shiro内置过滤器笔记
1.shiro提供以下内置过滤器,用于web项目资源请求验证anon(匿名) org.apache.shiro.web.filter.authc.AnonymousFilterauthc(身份验证) org.apache.shiro.web.filter.authc.FormAuthenticationFilterauthcBasic(http基本验证) org.apache.sh...
2018-04-30 16:57:34
739
原创 Spring-Shrio 整合笔记
1.web .Xml 配置 //开启过滤器 <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-clas...
2018-04-30 10:03:51
179
原创 Shrio开启注解笔记
1.添加依赖(aspectjweaver依赖)<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.13</version></depen
2018-04-30 09:50:56
163
转载 Java虚拟机——垃圾收集器与内存分配策略 (二)
我们知道,在分析一个对象是否是存活的时候有两种方法,一个是引用计数法,引用计数法虽然实现简单并且效率较高,但是很难解决循环引用。所以目前主流的虚拟机都是使用的是:可达性分析法。在可达性分析法中对象能被回收的条件是没有引用来引用它,要做到这点就需要得到所有的GC Roots节点,来从GC Root来遍历。可作为GC Root的主要是全局性引用(例如常量和静态变量),与执行上下文(栈帧中的本地变量表)...
2018-04-23 09:18:10
191
转载 Java虚拟机——垃圾收集器与内存分配策略
对象死亡识别引用计数算法给对象中添加一个引用计数器,每当一个地方引用它,计数器值加一;当引用失效时计数器值减一,任何时候计数器值为0的对象就不可能再使用。引用计数算法实现简单,效率高,但很难解决对象之间循环引用问题。可达性分析算法这个算法的基本思路是通过一系列的称为“GC Roots”的对象作为起始点,从这些点开始向下搜索,搜索通过的路径叫“引用链”,当一个对象到GC Roots没有任何引用链时相...
2018-04-18 11:21:45
159
原创 Java虚拟机——OutOfmmoryError异常
除程序计数器外,虚拟机的其他几个运行时内存区域都有可能发生OutOfmmoryError异常。Java堆溢出解决这区域异常,一般手段是通过内存映像分析工具(如:Eclipse Memory Analyze)对Dump处理的堆转储快照分析。虚拟机栈和本地方法栈溢出如果线程请求深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。如果虚拟机在扩展栈是无法申请足够的内存空间,则...
2018-04-14 11:46:01
221
原创 JAVA虚拟机——对象的访问方式
Java程序通过栈上的reference数据来操作堆上具体对象。由于reference类型在Java虚拟机规范中规定了一个指向对象的引用,并没定义何种方式去定位,访问堆中的对象的具体位置,所以对象的访问方式也是取决于虚拟机的实现而定的,目前主流的实现方式有使用句柄和直接指针两种句柄访问对象使用句柄,需要在堆中划出一块内存作为句柄池,而reference中存储就是对象的句柄地址,而句柄中包含实例对象...
2018-04-11 14:03:15
375
1
原创 JAVA虚拟机——对象的内存布局
在HotSpot虚拟机中,对象在内存中储存的布局中分为三块区域:对象头(Header)、实例数据(Instancs Data)、对齐填充(Padding)。对象头(Header) 运行时数据(如:哈希码(HashCode)、GC分代年龄、锁状态标准、线程持有锁、偏向线程ID、偏向时间戳等)类型指针(指向类元素的指针,如果是数组对象,对象头还必须有一块用于记录数组长度的数据) 2.实例数据(...
2018-04-11 11:34:48
185
转载 HotSpot虚拟机——对象内存创建(文中讨论的限于普通对象,不包括数组和Class对象等)
(1).虚拟机当遇到New 指令时,首先检查指令参数是否能在常量池中定位到一个类的符号引用,并且检查代表引用的类是否已被加载、解析和初始化过。如果没有必须执行相应的加载过程。 (2).在类加载完成后,虚拟机为新生对象分配内存,对象所需的内存大小在类加载完后便完成确定。为对象分配内存的任务等同于把一个固定大小的内存在Java堆中划分出来,在单线程的情况下,一般有两种分配策略: ...
2018-04-09 12:00:26
200
转载 了解JVM之JAVA内存区域————运行时数据区域
JVM在执行JAVA程序时,把所管理的内存划分为若干个不同的数据区域,这些区域有着各自的用途,以及创建和销毁时间。有些区域随着虚拟机的启动而存在,有些区域依赖于用户线程的启动和结束而创建销毁。下图为JAVA虚拟机运行时数据区域1.程序计数器 (1)程序计数器是一块较小的内存空间,可以把它看作为当前程序所执行的字节码的行号指令器。在虚拟机的概念模型里,字节码解释器工作时就是通过计数器的值来...
2018-04-02 21:33:25
252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人