会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
把书读薄
收藏文章数量从多到少与“把书读薄”是一个道理
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
23
24
25
26
27
28
29
30
31
···
36
下一页
2019年4月1日
第三章:回收方法区
摘要: 方法区的垃圾回收,即使永生代的垃圾收集:主要回收两部分内容,废弃的常量和无用类、 回收废弃的常量与Java堆中的对象非常类似,以常量池中字面量的回收为例:假如一个字符串"abc"已经进入了常量池中,但是当前系统没有任何一个String对象的是叫做abc的,换句话说就是没有任何STring对象引用常量
阅读全文
posted @ 2019-04-01 00:04 使用D
阅读(344)
评论(0)
推荐(0)
2019年3月31日
第三章:垃圾回收器:垃圾回收器的两种算法
摘要: 垃圾回收需要考虑三个问题: 哪些内存需要回收? 什么时候回收? 如何回收? JVM中程序计数器、虚拟机栈、本地方法三个区域随线程而生,随线程而死,这三个区域的内存分配和回收都具有确定性,在这个几个区域不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就随着回收了。 而Java堆和方法区则
阅读全文
posted @ 2019-03-31 23:18 使用D
阅读(310)
评论(0)
推荐(0)
2019年3月29日
第二章:方法区和运行时常量池溢出
摘要: 由于运行时常量池属于方法区的一部分,因此两个区域放在一块执行。 String.intern()是一个Native方法,它的作用是如果字符串常量池中已经包含了此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此Strin
阅读全文
posted @ 2019-03-29 00:19 使用D
阅读(528)
评论(0)
推荐(0)
第二章:Java堆内存溢出
摘要: Java堆溢出 Java堆溢出 可以通过不停的创建对象来造成堆内存溢出 public static void main(String[] args) { List list = new ArrayList<>(); while(true) { list.add(new ObjectBIg()) }
阅读全文
posted @ 2019-03-29 00:18 使用D
阅读(182)
评论(0)
推荐(0)
第二章:Java虚拟机栈和本地方法栈溢出
摘要: 由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryErro
阅读全文
posted @ 2019-03-29 00:17 使用D
阅读(933)
评论(0)
推荐(0)
第二章:本机直接内存异常
摘要: DirectMemory容量可以同-XX:MaxDirectMemorySize指定,如果不指定,默认为Java堆最大值相同。 可以同通过反射获得Unsafe实例进行内存分配进行抛出异常。虽然可以使用DirectMemory分配内存也可以抛出内存异常,但是它抛出异常时并没有真正向操作系统申请分配内存
阅读全文
posted @ 2019-03-29 00:17 使用D
阅读(205)
评论(0)
推荐(0)
2019年3月27日
第二章:Hotspot虚拟机对象
摘要: 对象创建 对象创建 虚拟机遇到一个new指令时,首先去,检查这个指令的参数是否在常量池中定位到一个雷的符号引用,并且检查这个符号引用代表的雷是否已被加载、解析、初始化过。 在类加载检查通过后,虚拟机将会为新对象分配内存,对象所需要的内存大小在加载后可以确定,为对象分配内存的任务就是把一块确定大小的内
阅读全文
posted @ 2019-03-27 23:30 使用D
阅读(180)
评论(0)
推荐(0)
第二章:Java内存区域
摘要: Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。 这些区域各有个的用途、以及创建和销毁时间,有的随虚拟机进程的启动而存在,有的则依赖于用户线程的启动和结束而建立和销毁。 Java虚拟机主要分为5部分:方法区、虚拟机栈、本地方法栈、堆、程序计数器。 程序计数器:是一
阅读全文
posted @ 2019-03-27 23:29 使用D
阅读(237)
评论(0)
推荐(0)
2019年3月22日
第六章:内核数据结构
摘要: 6.1链表 链表表示一种存放和操作的可变数据元素的数据结构。 链表与静态数组不同的是它包含的元素是动态创建并且插入链表的,在编译时不必知道具体需要多少个元素。 另外链表中每个元素的创建时间各不相同,所以它们在内存中无需占用连续的空间。 链表中每个元素都包含指向下一元素的指针,当有新元素加入链表时,可
阅读全文
posted @ 2019-03-22 00:38 使用D
阅读(328)
评论(0)
推荐(0)
2019年3月21日
第十章:内核同步方法
摘要: 10.1 原子操作 同步方法中的原子操作是其他同步方法的基石; 原子操作可以保证指令以原子的方式执行 执行过程不被打断。 原子操作可以把读取和增加变量的行为包含在一个单步中执行,从而防止竞争的发生,保证了操作结果总是一致的; 两个原子操作不可能同时访问同一个变量。 linux内核提供了两组原子操作接
阅读全文
posted @ 2019-03-21 00:02 使用D
阅读(322)
评论(0)
推荐(0)
上一页
1
···
23
24
25
26
27
28
29
30
31
···
36
下一页
公告