
Java
文章平均质量分 51
广东搬砖王
来自广东末流四非大学的计算机大三本科生
展开
-
Java直接内存详解
JVM直接内存前言在做欢聚时代的校招题时遇到了一道选择题,选项D如下: 直接内存的分配不会受到Java堆大小的限制,所以不会抛OutOfMemoryError异常由于对直接内存的概念不是很清晰,所以查询了相关资料,准备一篇博文总结一下什么是直接内存直接内存(Direct Memory)就是Java堆外内存直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这原创 2017-12-10 10:46:17 · 4648 阅读 · 0 评论 -
深入理解Java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2017-12-10 11:02:07 · 178 阅读 · 0 评论 -
在Java的Set集合中放入自定义类
1. 题目来源在做Java竞赛的编程题中,有一题要求实现一个Person类,要求能够放入到Set集合中,Person类要求有两个属性姓名和年龄。2. 题目解析首先复习一下基础知识,在Java中 a.equals(b)为true,则a和b的HashCode一定相等Java中的散列表采用HashCode计算在数组中的位置,由于我们需要重写equals方法,所以必须重写hashcode()方法,这样原创 2017-12-17 22:39:12 · 3399 阅读 · 0 评论 -
关于对Java中Volatile关键字的理解
首先,众所周知,Volatile关键字保证了变量的可见性但是没有保证原子性,我一直对这个点觉得不是很理解,既然保证了可见性其实就应该保证了原子性啊,在观看了网上大多数的博客还有书籍后,我得出了自己的结论。先看一段代码:// 线程1int i = 0;i = 10;// 线程2j = i;这里变量i附了初始值0,随后更新为10,这里的10是指工作内存中的值,由于不知道什么时候将工作内存中的...原创 2018-04-01 22:08:36 · 230 阅读 · 0 评论 -
为什么JVM中的新生代要有两个Survivor区?
转自https://blog.youkuaiyun.com/antony9118/article/details/51425581那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?1 为什么要有Survivor区先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里? 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象转载 2018-04-02 08:58:58 · 10204 阅读 · 12 评论