操作系統3 內存管理(分區存儲和頁式存儲) 2. 分區存儲管理方式 分區管理的基本思想是: 將內存空間氛圍一個或若干個連續的區域,稱為分區。每個分區可以存放一個獨立的用戶程序。分區的特點是一個程序可以連續地加載內存。 分區可以分為:單一分區、固定分區、可變分區和重定位分區。 2.1 單道程序的連續分 ...
分类:
其他好文 时间:
2020-02-04 15:35:22
阅读次数:
52
什么是内存管理 内存管理是 和`协调`应用程序访问电脑内存的过程。这个过程是复杂的,对于我们来说,可以说相当于一个黑匣子。 当咱们的应用程序运行在某个操作系统中的时候,它访问电脑内存(RAM)来达成下列几个功能: 1. 运行需要执行的字节码(代码) 2. 存储程序运行时候所需的数据 3. 加载程序运 ...
分类:
其他好文 时间:
2020-02-04 12:19:31
阅读次数:
82
JVM第一弹基本概念JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收、堆和一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。运行过程我们都知道Java代码源文件,通过编译器能够产生相应的.Class字节码文件,而字节码文件又通过Java虚拟机中的解释器,编译成特定机器上的机器码。①Java源文件——>编译器——>字节码文
分类:
其他好文 时间:
2020-02-04 12:18:29
阅读次数:
64
内存中对象的创建、对象的结构以及访问方式。 一、对象的创建 在语言层面上,对象的创建只不过是一个new关键字而已,那么在虚拟机中又是一个怎样的过程呢? (一)判断类是否加载。虚拟机遇到一条new指令的时候,首先会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号代表的类是否被 ...
分类:
编程语言 时间:
2020-02-03 18:42:05
阅读次数:
105
概述 上一篇文章我们已经了解了 Java 的这几块内存区域。对于垃圾回收来说,针对或者关注的是 Java 堆这块区域。因为对于程序计数器、栈、本地方法栈来说,他们随线程而生,随线程而灭,所以这个区域的内存分配和回收可以看作具备确定性。对于方法区来说,分配完类相关信息后内存大小也基本确定了,加上在 J ...
分类:
其他好文 时间:
2020-02-02 18:06:19
阅读次数:
100
前言 Java 相比 C/C++ 最显著的特点便是引入了自动垃圾回收 (下文统一用 GC 指代自动垃圾回收),它解决了 C/C++ 最令人头疼的内存管理问题,让程序员专注于程序本身,不用关心内存回收这些恼人的问题,这也是 Java 能大行其道的重要原因之一,GC 真正让程序员的生产力得到了释放,但是 ...
分类:
编程语言 时间:
2020-02-02 12:13:14
阅读次数:
83
内部类并不常用,而且使用起来有一定的定式,比如在下面的InnterDemoByTrhead.java里,我们通过内部类的形式创建线程。 1 public class InnerDemoByThread { 2 public static void main(String[] args) { 3 // ...
分类:
其他好文 时间:
2020-02-01 10:53:56
阅读次数:
75
1.强引用: 通常我们使用new操作符创建一个对象时所返回的引用即为强引用。强引用即使当前的内存不足也不会被回收而是由JVM抛出OutOfMemoryError 错误。如果想要中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象。 Strin ...
分类:
编程语言 时间:
2020-02-01 00:23:35
阅读次数:
91
什么是安全点? 在 JVM 中如何判断对象可以被回收 一文中,我们知道 HotSpot 虚拟机采取的是可达性分析算法。即通过 GC Roots 枚举判定待回收的对象。 那么,首先要找到哪些是 GC Roots。 有两种查找 GC Roots 的方法: 一种是遍历方法区和栈区查找(保守式 GC)。 一 ...
分类:
其他好文 时间:
2020-01-31 18:31:49
阅读次数:
252
String String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 这个是String类的解释,如下 String a = "123";a = "456";// 打印出来的a为456 看到这里,不明白了,这不是明明已经对他进行修 ...
分类:
其他好文 时间:
2020-01-31 14:01:27
阅读次数:
57