几大原则 一、静态成员变量(Static) 1、静态成员变量为类变量,所有对象共享同一内存空间 2、静态成员变量的声明和定义仅在首次加载类时执行一次 3、首次加载类时首先对所有静态成员变量根据类型默认赋初值,然后再对有右值的附右值 二、静态初始块 1、静态初始化块仅在首次加载类时执行一次 2、多个静 ...
分类:
其他好文 时间:
2017-09-09 11:47:50
阅读次数:
156
一、单例模型具备条件: 1、私有的构造方法 2、instance(单一实例,static)和getInstance(获取实例的方法,static)必须是static 二、下面三种不同层次单例模型代码评价: 第一种,通过测试发现,虚拟机加载类的时候单例就会被初始化,有些比较费时的类,我们需要使用时才加... ...
分类:
其他好文 时间:
2017-09-06 15:51:21
阅读次数:
163
1、加载:查找并加载类的二进制数据,在加载阶段,虚拟机需要完成以下三件事情 1、通过一个类的全限定名来获取其定义的二进制字节流 2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3、在Java堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口 ...
分类:
其他好文 时间:
2017-09-04 10:00:10
阅读次数:
238
一、简介 java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口。反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问。它允许在安全限制内使用反射的字段,方法和构造函数对其底层对等进行操作。 二、java.lang.reflect AccessibleO ...
分类:
编程语言 时间:
2017-09-03 19:34:47
阅读次数:
190
1 什么是类的加载 类的加载是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内(将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构),然后再堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,并且向java程序员提供了访问方法区内 ...
分类:
其他好文 时间:
2017-09-02 15:44:57
阅读次数:
157
类加载: 类加载机制是指.class文件加载到jvm,并形成Class对象的机制,之后的应用就可对Class对象进行实例化并调用,类加载机制可在运行时动态加载外部的类,远程网络下载过来的class文件等,除了该动态化的优点外,还可通过jvm的类加载机制来达到类隔离的效果,例如Acclication ...
分类:
编程语言 时间:
2017-08-30 15:35:29
阅读次数:
128
阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的 获取Class对象的三种方式(实例采用Person类) 方式1:通过Object类的getObject()方法 方式2: 通过 ...
分类:
其他好文 时间:
2017-08-28 23:59:21
阅读次数:
383
单例模式 保证整个应用某个实例只有一个 单例模式包括懒汉模式和饿汉模式 饿汉模式 懒汉模式 测试类 懒汉模式 测试类 区别: 饿汉模式的特点加载类时比较慢,但运行获取对象速度比较快 线程安全 懒汉模式加载类时比较快,运行获取对象的速度慢 线程不安全 饿汉模式的特点加载类时比较慢,但运行获取对象速度比 ...
分类:
其他好文 时间:
2017-08-23 18:14:51
阅读次数:
159
一,加载步骤 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1. 装载:查找并加载类的二进制数据; 2. 链接: 验证:确保被加载类的正确性 那为什么我要有验证这一步骤呢? 首先如果由编译器生成的class文件,它 ...
分类:
编程语言 时间:
2017-08-23 11:49:43
阅读次数:
205
PowerMockito.mockStatic时忽略加载类的静态field,比如想PowerMockito.mockStatic(ClassA.class),ClassA如下 filed CONF_FLAG需要调用一些其他依赖,而这些依赖不可获得,当mock时会抛异常,可以使用: 使用Suppres ...
分类:
其他好文 时间:
2017-08-20 15:43:33
阅读次数:
170