概述 在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其它几个运行区域都有发生OOM异常的可能,下面我们模拟几个异常发生的场景。 Java堆溢出 Java堆用于存储对象实例,只要不断的创建对象,并且把保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数 ...
分类:
其他好文 时间:
2019-07-03 20:17:30
阅读次数:
153
本文主要摘自《深入理解Java虚拟机》,内容较多,尽量全面概括了 Java 垃圾回收机制、垃圾回收器以及内存分配策略等内容。 ...
分类:
编程语言 时间:
2019-07-03 17:11:33
阅读次数:
104
概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都在程序运行期间完成的,这种策略虽然会稍微增加一 ...
分类:
编程语言 时间:
2019-07-02 22:42:24
阅读次数:
131
javaGC回收机制 在面试java后端开发的时候一般都会问到java的自动回收机制(GC)。在了解java的GC回收机制之前,我们得先了解下Java虚拟机的内存区域。 java虚拟机运行时数据区 java虚拟机在执行的过程中会将其管理的内存划分为不用的数据区域,不同的区域有不同的作用以及线程时间。 ...
分类:
编程语言 时间:
2019-07-02 12:13:12
阅读次数:
117
1.jre与jdk的区别? JRE: Java Runtime Environment JDK:Java Development Kit 其中JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的; ...
分类:
编程语言 时间:
2019-07-01 01:06:24
阅读次数:
170
Java集成开发工具 JDK(开发工具包) JRE(运行环境) bin+lib(jvm和jvm工作所需要的类库) JVM(Java虚拟机) OS操作系统 MyBatis 背景: 数据库访问层 类似ADO.NET与数据库连接的过程 将暴露在外面(cs文件里)的“硬代码”封装起来 出于和数据库频繁连接的 ...
分类:
其他好文 时间:
2019-06-30 17:11:30
阅读次数:
100
众所周知,Java语言的一个重要特性就是自动内存管理与垃圾回收机制。垃圾收集也被称作GC(Garbage Collection),在讲到GC的时候,我根据《深入理解Java虚拟机》中提到的内容,打算从三个方面讲述: 哪些内存需要回收? 什么时候进行回收? 怎样回收? 首先从理论上讲述这三个问题,然后 ...
分类:
其他好文 时间:
2019-06-29 15:18:43
阅读次数:
93
Scala 安装配置 1.1 为什么选择 Scala Scala 产生于瑞士的洛桑联邦理工学院( EPFL),是“ 可扩展语言” (Scalable Language)的缩写,Sala 是一门静态类型语言, 是一门以 Java 虚拟机为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编 ...
分类:
其他好文 时间:
2019-06-28 22:35:56
阅读次数:
173
volatile是Java虚拟机提供的轻量级的同步机制。主要有三大特性: 一、保证可见性 1、代码演示 2、volatile是如何来保证可见性的呢? 如果对声明了volatile的变量进行写操作,JVM就会向处理器发送一条Lock前缀的指令。 1)将这个变量所在缓存行的数据写回到系统内存。 2)这个 ...
分类:
编程语言 时间:
2019-06-27 00:57:48
阅读次数:
153
什么是Java虚拟机(JVM)?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Ja ...
分类:
其他好文 时间:
2019-06-25 22:09:59
阅读次数:
113