引言 什么是 ASM ? ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在...
分类:
其他好文 时间:
2015-08-03 06:47:06
阅读次数:
194
java的工作方式;我们要做的事,就是编写源代码文件,然后由javac编译程序把文件进行编译,得到字节码文件,然后再在java虚拟机运行此程序;
分类:
编程语言 时间:
2015-08-02 19:47:06
阅读次数:
112
因为java虚拟机没有泛型这一说法,所以在使用java泛型时需要考虑一些限制,大多数限制都是由类型擦除引起的。1.不能用基本类型实例化类型参数 不能用类型参数代替基本类型。因此,没有Pair,只有Pair。当然其原因是类型擦除。擦除之后,Pair类含有Object类型的域,而Object不能存...
分类:
其他好文 时间:
2015-08-02 14:59:03
阅读次数:
128
1 什么是JNI JNI Java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(C/C++) 通过这个协议,java代码就可以调用外部的C/C++代码,外部的C/C++代码也可以调用Java代码。 2 为什么用JNI 1 JNI扩展了java虚拟机的能力,驱动开发(wifi-hotspot)2.3无线热点共享 2 Nati...
分类:
编程语言 时间:
2015-08-02 01:01:29
阅读次数:
193
本文主要介绍Java虚拟机的内存分布以及对象的创建过程。一、Java虚拟机的内存分布文章开始前读者需要了解Java虚拟机的运行时数据区是怎样划分的。如下图所示:1、程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行....
分类:
编程语言 时间:
2015-08-01 18:47:35
阅读次数:
180
1、标记清除算法:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。缺点是效率问题和产生大量不连续的内存碎片,导致程序后期需要分配大对象时无法找到足够的连续内存而不得不提前出发另一次垃圾收集动作。
2、复制算法:将可用内存划分为大小相等的两块,每次只使用其中的一块,当这一块的内存用完了,就将还存活着的对象复制到另一块上面,然后再把已使用过的内存空间一次清理掉。
3、标记整理...
分类:
编程语言 时间:
2015-07-31 22:04:39
阅读次数:
170
1、Serial收集器曾经是虚拟机新生代收集的唯一选择,是一个单线程的收集器,在进行收集垃圾时,必须stop the world,它是虚拟机运行在Client模式下的默认新生代收集器。
2、Serial Old是Serial收集器的老年代版本,同样是单线程收集器,使用标记整理算法。
3、ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生代收集器...
分类:
编程语言 时间:
2015-07-31 22:03:47
阅读次数:
178
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类...
分类:
编程语言 时间:
2015-07-31 01:04:09
阅读次数:
159
JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(StringclassName)实现。 例如: try...
分类:
数据库 时间:
2015-07-30 21:01:00
阅读次数:
208
一、概述
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示:
下面就每一个区域进行阐述。
二、运行时数据区域
程序计数器
程序计数器,可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器...
分类:
编程语言 时间:
2015-07-30 00:48:35
阅读次数:
172