上一篇文章已经简单介绍了jvm的内部体系结构。并且对各个组成部分做了简要的说明。下面通过一个简单的java程序,讲解运行过程中牵涉到的几个数据区域。 代码如下: jvm实例运行一个Java程序,首先需要通过类装载器子系统把作为程序运行起点的类装载到内存。形成可以被虚拟机直接使用的Java类型。在上面 ...
分类:
其他好文 时间:
2017-05-23 22:36:42
阅读次数:
219
Class对象的生成方式如下: 1.类名.class 说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串") (注:类名字符串是包名+类名) 说明:装入类,并做类的静态初始化,返回Class ...
分类:
编程语言 时间:
2017-05-17 22:10:53
阅读次数:
152
jvm分为:1,类装载子系统;2,运行时数据区;3,本地方法接口;4,执行引擎。
分类:
其他好文 时间:
2017-04-30 00:59:20
阅读次数:
114
static 修饰符能够与变量、方法一起使用,表示是“静态”的。静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。请看下面的例子: ...
分类:
编程语言 时间:
2017-04-26 15:40:58
阅读次数:
281
static修饰符可以修饰变量、常量、方法和代码块,分别称为静态变量、静态常量、静态方法和静态代码块。 1.static变量 在java中,如果希望某个变量的值能被所有的对象共享,可以将该变量声明为静态变量(也叫类变量)。静态变量在类装载时,只分配一块储存空间,所有此类的对象都可以操控此块储存空间, ...
分类:
编程语言 时间:
2017-04-24 23:11:58
阅读次数:
250
单例模式分为两大类:懒汉式和饿汉式 其最主要的区别在于: 懒汉式:指全局的单例实例在第一次被使用时构建 饿汉式:指全局的单例实例在类装载时构建 日常我们使用的最多也是懒汉式,懒汉式是按需加载,能够做到资源的最大利用 懒汉式: 虽然这样写没什么问题,但是如果是多线程时可能出现问题了,如果多个线程同时访 ...
分类:
其他好文 时间:
2017-04-22 18:50:59
阅读次数:
143
单例模式是用来保证这个类在运行期间只会被创建一个类实例,另外,单例模式提供了一个全局唯一访问这个类实例的访问点,就是getInstance方法。 对于单例模式而言,不管采用何种实现方式,它都只是关心类实例的创建问题,不关心具体的业务功能。 第一种方案:懒汉式 懒汉式的类的实例创建是在getInsta ...
分类:
编程语言 时间:
2017-04-09 00:06:53
阅读次数:
209
●生命周期(Lifecycle):静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存, ...
分类:
其他好文 时间:
2017-04-08 20:44:29
阅读次数:
222
单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 根据上面单利的特点,编写一个单利模式其实很简单: 饿汉: 饿汉式和他的名字一样:类一加载就生成实例: 饿汉式是典型的空间换时间,当类装载的时候就会创建类的实例,不 ...
分类:
其他好文 时间:
2017-04-06 00:59:24
阅读次数:
248
【类的加载器】 类的加载器就是寻找类的字节码文件并构造出类在JVM内部表示对象的组件。在Java中类装载器把一个类装入JVM,需要经过以下几个步骤: 1. 装载:查找和导入Class文件。 2. 链接:执行校验,准备和解析 a. 校验:检查载入的Class文件数据的准确性。 b. 准备:给类的静态变 ...
分类:
编程语言 时间:
2017-03-31 13:02:04
阅读次数:
589