摘要:
题目描述 代码1: 代码2: 代码3 阅读全文
摘要:
题目描述: 代码: 还有很多 阅读全文
摘要:
题目描述 代码: 阅读全文
摘要:
1. 对象的创建 1. 遇到 new 指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,执行相应的类加载。 2. 类加载检查通过之后,为新对象分配内存(内存大小在类加载完成后便可确认)。在堆的空闲内存中划分一块 阅读全文
摘要:
1. OOM && SOF OutOfMemoryError异常: 除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能, 内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。 内 阅读全文
摘要:
1. JVM架构图 Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。 2. JDK1.7内存模型-运行时数据区域 根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。 1-3为线程私有,4-5为线程共 阅读全文
摘要:
0. 垃圾回收机制 1. C/C++需要程序员显式垃圾回收。 显式垃圾回收两大缺点: 1. 内存泄漏:程序忘记及时回收无用内存,从而导致内存泄漏,降低系统性能。 2. 错误回收:程序错误地回收系统核心类库的内存,从而导致系统崩溃。 2. Java由JRE在后台自动进行。 JRE会提供一个后台线程来进 阅读全文
摘要:
0. JVM架构图 Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。 1. 类的加载 虚拟机类装载器子系统:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 类的加载指 阅读全文
摘要:
0. 相关知识 计算机语言的执行方式分为编译型和解释型两种: 编译型语言:指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性翻译成可以被该平台硬件执行的机器码(包括机器指令和操作数),并包装成改平台所能识别的可执行性程序的格式,这个转换过程称为编译(Compile)。编译结束后, 阅读全文
摘要:
1.简介 Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM使得Java实现了跨平台。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要 阅读全文