简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
java虚拟机是通过可达性分析算法来判定对象是否存活。当一个对象到GC Roots没有任何引用链相连,或者说从GC Roots到这个对象不可达时,这个对象将会被判定为是可回收的对象。在Java语言中,可作为GC Roots的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI(即一般说的Native方法)引用...
HotSpot 虚拟机在 JDK 1.7 之后提供了7款垃圾收集器,分别是:1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器.4.Serial Old收集器5.Parallel Old收集器6.CMS收集器7.G1收集器其中Serial、ParNew和Parallel Scavenge是新生代垃圾收集器,而Serial Old、Paralle...
在《java虚拟机规范》规范中,对本地方法栈和虚拟机栈的使用中规定了两个异常:stackoverflowerror与outofmemoryerror,那么,这种异常有什么区别呢?无论是本地方法栈,还是虚拟机栈,都是线程私有的,当一个线程启动的时候,jvm就会给这个线程分配一个栈,然后每当你调用一个方法的时候,jvm就会往这个栈压入一个栈帧,方法调用完毕,栈帧出栈。注意,一个栈能容纳的栈帧...
一、查看步骤cmd执行命令:java -XX:+PrintCommandLineFlags -version输出如下(举例):针对上述的-XX:UseParallelGC,这边我们引用《深入理解Java虚拟机:JVM高级特性与最佳实践》的介绍:也就是说,打开此开关,使用的垃圾收集器是:新生代(Parallel Scavenge),老年代(Ps MarkSw...
堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代是为了提高对象内存分配和垃圾回收的效率。试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费的时间代价是巨大的,会严重影响我们的GC效率,这简直太可怕了。..
自从我入职现在这家公司后,公司一直用的都是window server 2008 R2作为服务器,导致我好久都没有用过linux啦!今天比较空闲,就自己安装了一个linux虚拟机捣鼓捣鼓。安装好JDK和Tomcat,然后启动Tomcat,发现访问8080端口没有响应,噢!原来是因为linux默认状态之下是关闭8080端口的,现在我需要将它打开。在经过一番度娘搜索,试过了几个指令,发现都没法...
java中对象锁有4种状态:(级别从低到高)1.无锁状态2.偏向锁状态3.轻量级锁状态4.重量级锁状态对象头分两部分信息,第一部分用于存储哈希码、GC分代年龄等,这部分数据被称为"Mark Word"。在32位的HotSpot虚拟机中对象未被锁定的状态下,Mark Word的32bit空间中的25bit用于存储对象哈希码,4bit用于存储对象分代年龄,2bit用于存储锁标志位,1bit固...
今天在在本地测试spark程序,点击运行main方法,报了如下错误:(spark版本为2.1.1)org.apache.spark.SparkException: A master URL must be set in your configurationat org.apache.spark.SparkContext.<init>(SparkContext.scala...
先来看看HashMap.put方法的源代码public V put(K key, V value) {return putVal(hash(key), key, value, false, true);}final V putVal(int hash, K key, V value, boolean onlyIfAbsent,...
之前项目有个需求,需要设置每周抽奖奖品的数量,百度找了不少帖子,现在写出可用的一个实例(本人系统时间为2017-11-14 星期二):查询本周的周一(星期一):select subdate(curdate(),date_format(curdate(),'%w')-1)运行效果:查询本周的周日(星期日):select subdate(curdate(),date_fo...