
JVM
文章平均质量分 94
P19777
这个作者很懒,什么都没留下…
展开
-
java中的Identity hashcode带来的偏向锁膨胀
注意:看该篇文章之前您需要了解java对象头首先介绍一个工具,能查看java对象头信息<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.8</versi...原创 2019-11-18 17:26:01 · 2076 阅读 · 1 评论 -
从C语言常量来思考Java语言的常量,Java的垃圾回收
声明:这是我自己的思考,不一定准确字符串常量首先我们要知道,在c语言中,也是字符串常量这种东西存在的,我们来看看他的存在形式首先我们要知道,C语言有三种方式来定义字符串,但是只有其中的一种方式会以常量的形式存在,就是下面这种char* s = "hello world";字符串"hello world"位于只读数据区(段), 也就是大家说的.rodata 这是一个储存空间, 不是堆也不...原创 2020-01-22 23:07:20 · 367 阅读 · 0 评论 -
在tomcat上实现远程执行功能 - 参考深入JVM虚拟机
1.有什么用?在服务器程序运行的过程中排查问题,需要执行某段程序来查询程序的参数等。这种临时的执行代码的需求,且不能影响应用的正常运行,不能对应用的代码有任何的侵入,利用该文章的内容你就能实现2.如何实现我觉得最大的问题是如何执行我们的临时代码,而且不能停止服务器。这种情况肯定是需要我们的应用存在某种机制才能在运行时去加载我们指定的代码进行执行,我们可以在应用开发阶段实现该机制,方便在需...原创 2020-01-01 11:13:45 · 321 阅读 · 0 评论 -
理解JVM中的synchronized优化 偏向锁、轻量级锁、重量级锁
为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一。这里只讲这几种锁的概念,并不讲解锁的细节和详细的膨胀过程。1.偏向锁在某些时候,对于某个锁而言,可能并不存在多个锁来对他进行竞争。也就是说,访问该锁的始终都是一个线程,那么这种情况下,就完全没有必要进行复杂的获取锁的操作。就比如说我们可能在方法中创建了一个StringBuffer类型的变量,我们都知道该对象是线程安全...原创 2019-12-29 21:22:10 · 618 阅读 · 0 评论 -
Java-桥方法
1.引入桥方法的来源是源自于Java的泛型,因为Java的泛型擦除而导致在多态的时候会出现问题而引入了桥方法2.类型擦除Java在语法中虽然存在泛型的概念,但是在虚拟机中却没有泛型的概念,虚拟机中所有的类型都是普通类。无论何时定义一个泛型类型,编译后类型会被都被自动转换成一个相应的原始类型。但是要注意,泛型擦除其实只是擦除的字节码中code属性部分的泛型,classMetadata上还是会...原创 2019-12-27 23:26:03 · 2228 阅读 · 0 评论 -
聊聊JDBC是如何破坏双亲委派机制的
参考:https://www.jianshu.com/p/09f73af48a98Java本身有一套资源管理服务JNDI,是SUN公司提供的一种标准的Java命名系统接口,是放置在rt.jar包中,由启动类加载器加载的,我们这里主要讲解的是JDBC。原生的JDBC中Driver驱动本身只是一个接口,并没有具体的实现,具体的实现是由不同数据库类型去实现的。例如,MySQL的mysql-con...原创 2019-09-14 17:17:18 · 5801 阅读 · 3 评论