- 博客(10)
- 收藏
- 关注
转载 G1垃圾回收器详解
1. 概述G1垃圾回收器是在Java7 update 4之后引入的一个新的垃圾回收器。G1是一个分代的,增量的,并行与并发的标记-复制垃圾回收器。它的设计目标是为了适应现在不断扩大的内存和不断增加的处理器数量,进一步降低暂停时间(pause time),同时兼顾良好的吞吐量。G1回收器和CMS比起来,有以下不同:• G1垃圾回收器是compacting的,因此其回收得到的空间是连续的。这避免了CMS回收器因为不连续空间所造成的问题。如需要更大的堆空间,更多的floating garbage。连续空间意味着G
2022-10-31 10:53:19
489
原创 springAop详情概述
springAop技术又称为面向切面编程,在项目中经常通过springAop将非业务逻辑与业务逻辑进行分开,比如做方法调用记录日志、性能监控、权限校验、代码复用(有时候为了让代码复用也会用到Aop)等等.springAop有: 1.前置通知---即调用前进行通知、2.后置通知--即调用后进行通知、3.环绕通知--即调用前后进行通知、4.异常通知--即调用过程中出现异常时进行通知spring...
2020-04-03 16:55:10
318
转载 java JVM运行时栈帧结构
版权声明:本文为博主原创文章,转载请注明原地址,谢谢 https://blog.youkuaiyun.com/QuinnNorris/article/details/76467948JVM中数据区域分为虚拟机栈、JAVA堆、方法区、运行时常量池、程序计数器(PC寄存器)这几类。在这五类中,虚拟机栈用来表示各个线程中方法执行情况的区域,而栈帧是虚拟机栈中的栈元素。栈帧是用于支持虚拟机进行方法调用和方...
2018-12-06 16:05:16
240
原创 JVM虚拟机是如何执行方法调用的
先说一下JVM虚拟机中5种方法调用字节码指令: invokestatic:调用静态方法 invokespecial:调用私有实例方法、构造器,以及使用Super关键字调用父类实例方法、构造器和实现接口的默认方法 invokevirtual:调用所有的虚方法(静态方法、私有方法、实例构造器、父类方法、final方法都是非虚方法) invokei...
2018-08-10 15:22:17
1230
原创 JVM虚拟机是如何识别方法的
在Java中有一个特别重要的特性:多态。而多态的方法重写便是多态最重要的一种体现,重写:它允许子类继承父类的方法时,而又有自己的独特行为。重载:它允许同一个类中的方法名相同,而参数不同。那么虚拟机是如何区分我们具体要调用的是那个方法呢。 Java虚拟机识别方法的关键在于方法名、类名、方法描述符。方法描述符是由方法的参数类型以及返回值类型构成,在同一个类中出现了方法名相同、...
2018-08-10 14:14:34
652
原创 JVM是如何进行类加载的?
一个类只有被JVM虚拟机加载过后才能使用,虚拟机加载一个类需要进过:加载、链接、初始化这三步骤才能被使用。链接又分为:验证、准备、解析三个步骤。下面我将围绕这六个步骤进行讲解。 加载:虚拟机将Class文件中的字节码加载到内存中,那虚拟机是如何将字节码加载到内存中的呢?答案是通过类加载器,说到类加载器,所有的类加载器都有一个共同的祖师爷(启动类加载器),启动类加载是由C++实现的,...
2018-08-08 16:42:31
1425
转载 JVM判断代码是否是热点代码方式
原文:http://blog.youkuaiyun.com/xuqiaobo/article/details/52534940 判断一段代码是否是热点代码方式有两种:1)基于采样的热点探测2)基于计数器的热点探测,采用这种方法的虚拟机会为每个方法建立计数器,统计方法的执行次数,如果执行次数超过一定的阈值就认为它是热点方法。方法调用计数器统计的并不是方法被调用的绝对次数,而是一个相...
2018-08-01 10:31:56
533
原创 Java代码是如何在虚拟机中运行的
Java作为一门高级语言,它的语法非常复杂、抽象程度也很高。想像C语言一样直接运行在硬件上显然是不可能的,所以在Java程序运行之前,需要将Java程序通过编译器转换成虚拟机所能识别的Java字节码,Java字节码都是固定的一个字节,因此只要将Java程序转换成虚拟机所能识别的Java字节码,就能做到“一次编译,到处运行”。 是不是感觉Java虚拟机很强大,虚拟机不仅...
2018-08-01 10:29:19
3768
转载 使用Sql按日期条件查询
--查询当天(1:select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0--查询当天(2:select * from info where DateDiff(dd,datetime,getdate())=0 --前30天SELECT * FROM A where datediff(d,datetime,getdate()...
2018-06-19 15:41:20
13045
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人