异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。 要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常: ...
分类:
编程语言 时间:
2019-11-01 20:54:08
阅读次数:
117
JVM概述 JVM(Java Virtual Machine)就是Java虚拟机的简称,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机 ...
分类:
其他好文 时间:
2019-11-01 18:04:02
阅读次数:
101
一、jvm内存模型 JVM 内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈 1、堆 1.1、堆是 JVM 内存中最大的一块内存空间。 1.2、该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。 1.3、堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Surv ...
分类:
编程语言 时间:
2019-10-31 01:18:47
阅读次数:
120
JVM运行时内存结构 JVM内存模型 JVM运行时内存=共享内存区+线程内存区 共享内存区 共享内存区=持久代+堆 持久代=方法区+其他 堆=Old Space+Young Space Young Space=Eden+S0+S1 持久代 JVM用持久代(Permanent Space)实现方法区, ...
分类:
其他好文 时间:
2019-10-30 00:11:05
阅读次数:
107
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;"> ...
分类:
其他好文 时间:
2019-10-27 19:08:47
阅读次数:
57
直接看代码 输出结果 读线程无法感知 INIT_VALUE的变化 原因是因为JVM内存模型 CPU会将内存中的数据存入Cache中,写线程只对“自己”的Cache做修改操作,而读线程无法感知 现代操作系统对这种问题的解决方案大致可以分为以下两种: 1.数据总线加锁 缺点就是多核CPU串行化运行,效率 ...
分类:
其他好文 时间:
2019-10-26 23:26:44
阅读次数:
166
在文章《 "JVM之内存结构详解" 》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。 如果在网络上搜索JVM内存结构,90%的可能会搜到 ...
分类:
编程语言 时间:
2019-10-22 13:21:01
阅读次数:
100
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。 楔子 JVM内存结构补充 在上篇《 "JVM之内存结构详解" 》中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习。还记得JVM中堆的结构图吗? 图中展示了堆中三个区 ...
分类:
编程语言 时间:
2019-10-20 13:09:16
阅读次数:
74
JVM内存结构简介(jdk1.8) JVM层的GC调优是生产环境上必不可少的一个环节,因为我们需要确定这个进程可以占用多少内存,以及设定一些参数的阀值。以此来优化项目的性能和提高可用性,而且这也是在面试中经常会被问到的问题。 想要进行GC调优,我们首先需要简单了解下JVM的内存结构,Java虚拟机的 ...
分类:
其他好文 时间:
2019-10-19 21:01:10
阅读次数:
106
问题:新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢? 分析:依据的原则是根据Java Performance里面的推荐公式来进行设置。 296d1509689688.png 296d1509689688.png 具体 ...
分类:
其他好文 时间:
2019-10-19 15:13:08
阅读次数:
117