Java ClassLoader 分析
先贴一段
Java
基本结构
Java
结构包括四个不同而又相关的部分:
Java
语言、
class
文件格式、应用程序接
口、虚拟机
其中,虚拟机的主要任务是在程序运行中需要的时候调用
class
文件并执行其中的字节码。一个
Java
应
用有两种
class loader
:
the system class loader
和
class loader objects
。
The
primordial class loader
通常装
载本地磁盘上包括
Java API
在内的信任类,它是虚拟机的一部分。在运行时,还可以定制
class loader objects
来加载其他,不是虚拟机的一部分,而是程序运行的一部分。
Class
文件结构
Java class
文件的标志:开头四个字节为
0xCAFEBABE
ClassLoader
ClassLoader
负责定位并导入
class
的
二进制数据,并验证其正确性,分配初始化类成员变量的存储空间并初始化等等。所有的
class loader
都必须通过以下三个方法来完成以上任务。
protected final
Class
defineClass(
String
name,byte[] b, int off, int len,
ProtectionDomain
protectionDomain)
throws
ClassFormatError
将字节码转变为
Class
实
例,这个实例必须经过解析才能够使用。
protected
final
Class
findSystemClass(
String
name)
throws
ClassNotFoundException
如果
the primordial class loader
已经加载成功此类,则返回其索引,否则抛出
ClassNotFoundException
。
protected final void
resolveClass(
Class
c)
将类实例初始化
ClassFormatError
当虚拟机试图读取一个
class
文
件发现文件格式错误或者不能被解析时抛出此错误
相关文档:
1. 什么是Serialization?
串行化(Serialization)是计算机科学中的一个概念,它是指将对象存储到介质(如文件、内在缓冲区等)中或是以二进制方式通过网络传输。之后 可以通过反串行化从这些连续的位数据重新构建一个与原始对象状态相同的对象,因此在特定情况下也可以说是得到一个副本,但并不是所有情况都这样。
Java有S ......
POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(cfname));
HSSFWorkbook wb = new HSSFWorkbook(fs);
......
public static String splitAndFilterString(String input, int length) {
if (input == null || input.trim().equals("")) {
&nb ......
Java设计模式之Singleton单例模式篇
java 单例模式的实现方式
实现1:
public class Singleton {
private static Singleton instance;
private Singleton (){ //首先有一个私有的构造器
}
  ......
Java 中生成数字证书也很简单的。
1、创建证书
Java 中的 keytool.exe (位于 JDKBin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括 ......