JAVA
Jerry没有Tom
一个刚开始学习的小白
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA虚拟机学习之内存区域篇(一)
特别声明:本文为日常学习总结,纯属自用用途,不做其他参考,如有错误,欢迎指正。JAVA虚拟机数据区域: 方法区,堆,虚拟机栈,本地方法栈, 程序计数器。方法区:– 别名:(非堆),hotsopt上称为:永久代 ,JAVA虚拟机规范将之描述为堆的一个逻辑部分。– 作用:存储已经被虚拟机加载的类的信息,常量,静态变量, 也就是编译后的代码数据。– 特点: 是一个被各个线程共享的内存区...原创 2018-12-19 15:50:40 · 228 阅读 · 0 评论 -
JAVA虚拟机学习之对象篇(二)
对象的创建当虚拟机遇到一条new指令时,开始进行对象的创建:将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用。若没有,说明这个类还没有被定义,会抛出ClassNotFoundException.若有,则继续下一步。检查这个符号引用代表的类是否已被加载、解析、和初始化过如果没有,那必须先执行类加载的过程。在类加载通过后,接下来虚拟机将为新生对象分配内存。...转载 2018-12-20 11:13:50 · 233 阅读 · 0 评论 -
JAVA虚拟机学习之GC篇(三)
首先来说说内存溢出和内存泄露的关系内存溢出是指内存不够用了。内存泄露是导致内存溢出的主要原因之一, 内存泄露累加起来,量变产生质变 引发 内存溢出。内存泄露是指本该被GC回收的对象并未被回收。产生原因:长生命周期的对象引用了短生命周期的对象。没有把无用的对象置为null再来说说GC机制程序计数器,虚拟机栈,本地方法栈 都是随线程创建、销毁。 所以主要...原创 2018-12-20 14:12:57 · 213 阅读 · 0 评论 -
JAVA虚拟机学习之GC算法篇(四)
简单介绍几个垃圾收集算法:一、标记-清除算法 ---- 最基础的收集算法原理: 首先标记出所有的需要回收的对象, 标记完成后统一回收缺陷:效率的问题: 标记和清楚的过程,效率都不高。空间的问题: 回收后会产生大量的不连续的内存碎片。 可能导致的直接后果就是后面要分配大内存对象的时候,内存不够 , 又要在GC一次。二、复制算法:原理: 将内存容量划分为2块相同大小的部分,每次...原创 2018-12-21 12:34:04 · 264 阅读 · 1 评论 -
JAVA虚拟机学习之GC收集器(五)
Serial收集器单线程收集器,并且会暂停其他所有的工作线程(Stop The World)优点:简单而高效,对限定单个CPU的环境非常适合,Client模式下的默认新生代收集器ParNew收集器Serial收集器的多线程版本,其他行为和参数设置与Serial收集器完全一致。是server模式下首选新生代收集器,他能与老年代收集器CMS配合工作。默认开启的收集线程与CPU数量相同-XX:...原创 2018-12-22 20:19:26 · 217 阅读 · 1 评论 -
String s=new String("abc")创建了几个String Object对象?
今天看到几个面试题问:String s=new String(“abc”)创建了几个String Object对象?对于这个问题有的说是一个,有的说是两个,在网上也查看了很多别人写的博客都不清楚,今天就让我来分析一下这个问题.对于String s=new String(“abc”),这句话我们来大致分析一下步骤:在虚拟机栈中为String类型的s分配内存在堆中为分配一块内存用来保存"...原创 2019-01-10 23:23:10 · 3329 阅读 · 0 评论 -
为什么Map桶中个数超过8才转为红黑树
因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。本人第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,即使遍历,速度也非常快,但是当链表长...转载 2019-08-06 10:36:16 · 244 阅读 · 0 评论
分享