垃圾回收与内存分配策略 "垃圾回收与内存分配策略" "“垃圾”的定义" "对象是否为“垃圾”" "何为“引用” 四种引用类型" "最后的挣扎 finalize()方法" "回收方法区" "垃圾回收算法" "回收的前置 分代理论" "标记 清除算法(Mark Sweep)" "标记 复制算法" "标记 ...
分类:
其他好文 时间:
2019-12-28 23:11:43
阅读次数:
170
1.Class类的原理孟子曰:得人心者得天下。而在Java中,这个「人心」就是Class类,获取到Class类我们就可以为所欲为之为所欲为。下面让我们深入「人心」,去探索Class类的原理。首先了解JVM如何构建实例。1.1JVM构建实例JVM:JavaVirtualMachine,Java虚拟机。在JVM中分为栈、堆、方法区等,但这些都是JVM内存,文中所描述的内存指的就是JVM内存。.clas
分类:
其他好文 时间:
2019-12-28 23:00:39
阅读次数:
94
内存管理 内存分配和内存释放 内存分配由程序完成,内存释放由GC完成 运行时数据区域 (1)程序计数器(program counter register) 一块较小的内存空间 当前线程所执行的字节码的行号指示器,字节码解释器在工作的时候就是通过改变程序计数器的值来选取下一跳要执行的指令 多线程环境下 ...
分类:
其他好文 时间:
2019-12-27 13:09:40
阅读次数:
94
java虚拟机中的程序计数器区、虚拟机栈区、本地方法栈区3个区域是随着线程的创建而创建,随着线程的结束而结束时,内存自然得到回收,所以这三个区域不需要过多考虑内存的回收问题。 java虚拟机中的方法区和虚拟机堆区2个区是所有线程共享的区域,不同的接口或类需要的内存不同,且方法区和堆区往往是在程序运行 ...
分类:
编程语言 时间:
2019-12-26 19:30:21
阅读次数:
72
成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。 类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性。而且所有的实例都可以修改这个类变量的值(这个类变量没有被final修饰的情况),而且访问类变 ...
分类:
编程语言 时间:
2019-12-24 18:42:12
阅读次数:
359
委托继承与 System.Delegate 类,是一种特殊的引用类型。委托的实质 实际上是一个指向方法的指针,该方法可以是静态方法。 ...
分类:
其他好文 时间:
2019-12-24 13:26:22
阅读次数:
86
JVM部分数据整理 一、运行时数据区域 Java内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【Java堆、方法区】、直接内存(不受JVM GC管理) 1、线程私有部分 1.1、程序计数器 程序计数器(Program Counter Register)一块较小的内存空 ...
分类:
其他好文 时间:
2019-12-21 22:46:38
阅读次数:
81
一、内存分配 1.JVM体系结构 2.运行时数据区域 3.内存分配二、内存回收 1.垃圾收集算法 2.垃圾收集器三、相关参考一、内存分配JVM体系结构 在了解自动内存管理的内存分配之前,我们先看下JVM的体系结构。代码编译的结果是从本地机器码转变为字节码,经过类加载器加载到虚拟机后才能执行程序。JV ...
分类:
编程语言 时间:
2019-12-18 13:12:18
阅读次数:
89
接口和抽象的区别 相同点: ? 1.都位于继承的顶端,用于被其他类实现或继承;? 2. 都不能直接实例化对象;? 3.都可以包含抽象方法,其子类都必须覆写这些抽象方法; 区别:? 1.抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;? 2.一个类只能继承一个 ...
分类:
其他好文 时间:
2019-12-18 12:42:57
阅读次数:
72
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法 ...
分类:
编程语言 时间:
2019-12-17 22:08:49
阅读次数:
85