首页
学习
活动
专区
工具
TVP
发布

ImportSource

专栏成员
207
文章
403391
阅读量
68
订阅数
JDK11中增加了一个常量池类型:CONSTANT_Dynamic
有关class file 的内容,这里不再赘述。你可以参阅此文:来自JVM的一封ClassFile介绍信。
ImportSource
2018-07-25
1.6K0
JVM中的[Ljava.lang.Object; 究竟是什么意思?
这就是表示一个方法,方法有三个参数,类型分别为I,D,L。返回值类型为L。然后L类型要跟具体的类型,然后以"/"替换包名的".",L类型的要以“;”分号结尾。
ImportSource
2018-07-25
5.3K0
厕读:每日一题,面试无忧
8. GC线程是否为守护线程?() 答案:是 解析:线程分为守护线程和非守护线程(即用户线程)。 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。 守护线程最典型的应用就是 GC (垃圾回收器)
ImportSource
2018-05-04
6410
厕读:每日一题,面试无忧
9. volatile关键字是否能保证线程安全?() 答案:不能 解析:volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对 volatile的写操作,无法保证线程安全。例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,lo
ImportSource
2018-05-04
5540
JDK,JRE,JVM之间的区别
JDK,JRE,JVM之间的区别 JDK, JRE和JVM是java编程语言的核心概念。他们看起来有点相似。作为一个编程者我们似乎也并不是很关心这个概念。但是她们确实是有区别的,并且他们分别基于不同的目的的。本文将会分别解释这三个概念,并且说明他们之间的不同点。 Java Development Kit (JDK) JDK是java环境的核心组件,它提供了编译、调试、执行一个java program必须要用到的可执行和二进制的所有tool。JDK是一个平台定制软件,这也是我们为什么要把安装版分为 fo
ImportSource
2018-04-03
1.4K0
并发编程-到处都是线程!
即使是你在自己的program中从来没有显式的创建线程,框架也依然会代表你偷偷的创建一些线程。所以呢,被这些线程调用的代码也必须是线程安全的。这样的设计和实现给开发人员带来了一定的负担,因为开发线程安全的代码必须要更加的细心以及更多的分析,相对于非线程安全的代码来说。 每个Java的应用程序都会用到线程。当JVM启动后,JVM就会创建一些线程用于JVM的那些housekeeping任务(比如garbage collection以及finalization)以及创建一个主线程(main thread)用于运行
ImportSource
2018-04-03
7840
JVM的String Pool到底是个什么鬼?
摘要:有关string,你一定看了不少的内容。你可能以前也看到过类似“new String(“xxx”)和String s2 = “Cat" 有什么区别?”之类的问题,那么你也许听说过String Pool这个概念。本文主要通过详解String Pool来尝试解答类似这样的问题。 正如她的名字一样,String Pool就是一个String的池,这个池是被存储在Java Heap Memory中的。公众号ImportSource之前的《原来JVM中的堆栈TM这么简单!》一文中提到过有关String Pool
ImportSource
2018-04-03
1.1K0
原来JVM中的堆栈TM这么简单!
二话不说先上图! 好,也许你已经懂了,如果想更懂,请看今天的正文! 以下是正文: 也许你会在网上查询到很多有关栈啊,堆啊的很多内容,或者一些java ee的书上或者一些教程里。但似乎很少有一个对于st
ImportSource
2018-04-03
1.5K0
来自JVM的一封ClassFile介绍信
我是一个class文件。我的内部是由一个被叫做ClassFile的structure组成。 我在jvm中占有很重要的地位,你可去看看jvm规范中我占了多少篇幅,告诉你,足足有大半本书!第四章,标题叫做 The class File Format。可以这么说。你把编译器、字节码、jit那些看过以后,再把我搞清楚,基本上jvm你也就精通了。鉴于我这么重要,今天我介绍下自己。我长下面这样: ClassFile { u4 magic; u2 minor_version; u2
ImportSource
2018-04-03
6680
读懂一行GC日志
en .....
ImportSource
2018-04-03
7440
JVM内存分配担保机制
在现实社会中,借款会指定担保人,就是当借款人还不起钱,就由担保人来还钱。 在JVM的内存分配时,也有这样的内存分配担保机制。就是当在新生代无法分配内存的时候,把新生代的对象转移到老生代,然后把新对象放入腾空的新生代。 现在假设,我们的新生代分为三个区域,分别为eden space,from space和to space。 现在是尝试分配三个2MB的对象和一个4MB的对象,然后我们通过JVM参数 -Xms20M、-Xmx20M、-Xmn10M 把Java堆大小设置为20MB,不可扩展。 其中10M分配给新生代
ImportSource
2018-04-03
11.4K2
读懂一行Full GC日志(回复JVM内存分配担保机制一文中 Mr/Mrs Xxx 在留言区提出的问题)
回复JVM内存分配担保机制一文中 Mr/Mrs Xxx 在留言区提出的问题: “请问分配3M的时候,怎么还发生了full gc?” 回复如下: 发生Full GC,有很多种原因,不仅仅是只有Allocation Failure。 还有以下这么多: #include "precompiled.hpp" #include "gc/shared/gcCause.hpp" const char* GCCause::to_string(GCCause::Cause cause) { switch (caus
ImportSource
2018-04-03
10.6K2
学会一个JVM插件:使用HSDIS反汇编JIT生成的代码
HSDIS是一个Java官方推荐 HotSpot虚拟机JIT编译代码的反汇编插件。我们有了这个插件后,通过JVM参数-XX:+PrintAssembly就可以加载这个HSDIS插件,然后为我们把JIT
ImportSource
2018-04-03
6K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档