System类包含一些有用的类字段和方法。它不能被实例化。 System中的gc(): 运行垃圾回收器的方法 调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。 ... ...
分类:
其他好文 时间:
2017-07-10 10:14:21
阅读次数:
149
对于Java程序员来说,虚拟机和多线程方面的知识是必不可少的。这里就来聊一聊Java虚拟机的一些基础和概念,主要内容源自《深入理解Java虚拟机》这本书。 首先为什么要有虚拟机呢?因为对象的创建和销毁是一个很频繁的操作,由程序员来维护,一方面成本有点高,增加开发成本;另一方面,如果操作不当,发生了内 ...
分类:
编程语言 时间:
2017-07-09 16:18:42
阅读次数:
225
内存中对象的创建、对象的结构以及訪问方式。 一、对象的创建 在语言层面上。对象的创建仅仅只是是一个newkeyword而已,那么在虚拟机中又是一个如何的过程呢? (一)推断类是否载入。虚拟机遇到一条new指令的时候,首先会检查这个指令的參数能否在常量池中定位到一个类的符号引用,而且检查这个符号代表的 ...
分类:
编程语言 时间:
2017-07-09 13:57:40
阅读次数:
217
Overview 走近Java:介绍Java发展史 第二部分:自动内存管理机制 程序员把内存控制的权利交给了Java虚拟机,从而可以在编码时享受自动内存管理。但另一方面一旦出现内存泄漏和溢出等问题,就需要了解一些底层的知识来进行错误排查。 自动内存管理机制:介绍内存是如何划分的。 垃圾收集器与内存分 ...
分类:
编程语言 时间:
2017-07-09 12:41:40
阅读次数:
231
Java内存区域 一、运行时内存区域 java虚拟机所管理的内存将会包括以下几个运行时内存区域。 1.程序计数器 Program Counter Register:可以看作当前线程(线程私有)所执行的字节码行号指示器。 2.Java虚拟机栈 Java Virtual Machine Stacks:也 ...
分类:
编程语言 时间:
2017-07-09 10:36:04
阅读次数:
196
对象 Java虚拟机采用自动的内存管理和自适应的优化策略。但了解java虚拟机的运行机制和优化策略,写出适合java虚拟机管理的程序对性能提升是有意义的。 逃逸分析:对象的作用范围只在本线程范围,如方法(包括静态方法)中new 对象,这个对象是不可能被其它线程共享。可以直接在栈上分配内存。栈上数据在... ...
分类:
其他好文 时间:
2017-07-08 21:06:24
阅读次数:
130
对象的三种状态: 可达的 从根节点可以触及到这个对象 可复活的 一旦所有引用被释放,就是可复活状态 因为在finalize()中可能复活该对象 不可达的 在finalize()后,可能会进入不可触及状态 不可达的对象不可能复活 可以回收 引用标记 Java虚拟机提供自动内存管理机制。在GC中,没用的... ...
分类:
其他好文 时间:
2017-07-08 21:06:11
阅读次数:
233
如果了解java虚拟机更系统的操作。请阅读 Charlie Hunt , Binu John著《java性能优化权威指南》,James Gosling,Java之父、Steve Wilson,Oracle公司工程副总裁写序。 Java虚拟机运行时数据区: PC寄存器(程序计数器):program c... ...
分类:
其他好文 时间:
2017-07-08 21:03:06
阅读次数:
170
JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: tr ...
分类:
数据库 时间:
2017-07-08 17:56:44
阅读次数:
178
类加载器 前提:通过一个类的全限定名来获取描述此类的二进制字节流,实现这个动作的代码模块称为类加载器。这里并没有规定读取方式,可以从Class文件、网络、数据库、内存等。比较两个类是否相等,需要两个类来源于同一个Class文件,被同一个类加载器加载。 Java有两种类加载器。Java虚拟机用c++语... ...
分类:
其他好文 时间:
2017-07-08 13:23:29
阅读次数:
155