易截截图软件、单文件、免安装、纯绿色、仅160KB

Java ClassLoader

 Java的ClassLoader就是用来动态装载class的,ClassLoader对一个class只会装载一次,JVM使用的ClassLoader一共有4种:
  启动类装载器,标准扩展类装载器,类路径装载器和网络类装载器。
  这4种ClassLoader的优先级依次从高到低,使用所谓的“双亲委派模型”。确切地说,假如一个网络类装载器被请求装载一个java.lang.Integer,它会首先把请求发送给上一级的类路径装载器,假如返回已装载,则网络类装载器将不会装载这个java.lang.Integer,假如上一级的类路径装载器返回未装载,它才会装载java.lang.Integer.
  类似的,类路径装载器收到请求后(无论是直接请求装载还是下一级的ClassLoader上传的请求),它也会先把请求发送到上一级的标准扩展类装载器,这样一层一层上传,于是启动类装载器优先级最高,假如它按照自己的方式找到了java.lang.Integer,则下面的ClassLoader 都不能再装载java.lang.Integer,尽管你自己写了一个java.lang.Integer,试图取代核心库的java.lang.Integer是不可能的,因为自己写的这个类根本无法被下层的ClassLoader装载。
  再说说Package权限。Java语言规定,在同一个包中的class,假如没有修饰符,默认为Package权限,包内的class都可以访问。但是这还不够准确。确切的说,只有由同一个ClassLoader装载的class才具有以上的Package权限。比如启动类装载器装载了java.lang.String,类路径装载器装载了我们自己写的java.lang.Test,它们不能互相访问对方具有Package权限的方法。这样就阻止了恶意代码访问核心类的Package权限方法。
  为了深入了解Java的ClassLoader机制,我们先来做以下实验:
  package java.lang;public class Test { public static void main(String[] args) { char[] c = "1234567890".toCharArray(); String s = new String(0, 10, c);}}
String类有一个Package权限的构造函数String(int offset, int length, char[] array),按照默认的访问权限,由于Test属于java.lang包,因此理论上应该可以访问String的这个构造函数。编译通过!执行时结果如下:
  package java.lang;
  public class Test {
  public static void main(String[] args) {
  char[] c = "1234567890".toCharArray();
  String s = new String(0, 10, c);
  }
  }
 Java中一共有四个类加载器,之所以叫类加载器,是程序要用到某个类的时候,要用类加载器载入内存。


相关文档:

Java中集合容器类List和Set的用法

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1  List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......

ORACLE 模拟 java SPLIT

CREATE OR REPLACE FUNCTION F_HPS_SPLIT
/*
 * 功    能: split.
 * 输入参数: Liststr  string
 * 输入参数: Sepe     index
 * 输入参数: Sepe     separator. default is ','.
 * return sepeCount
 */
(
  ......

Java事务处理总结【JDBC事务|JTA事务|容器事务】

来源:http://hi.baidu.com/wangking/blog/item/4d28730945364aaa2eddd4a9.html
一、什么是
Java事务

通常的观念认为,事务仅与数据库相关。

事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性
(isolation)和持久性(durability)的缩写。事务的原子性表示事务 ......

Java 实现插入式简单排序

插入式排序运行效率N*(N-1)/4  对于随机数字,这个算法比冒泡快1倍,比选择排序稍微快一点.
如果是基本有序的队列则优势最为明显需要O(N)
代码一样是从冒泡排序继承下来的.
 /**
*
* @author leon.lee
*/
public class InsertSort extends BubbleSort {
public InsertSort(int lengthArray){
......

JAVA的字符串拼接与性能

原帖地址:
http://coolshell.cn/?p=2235
----------------我是紫苑最萌的分割线XD--------------
概述:
本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测
试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试。
原文出处:http://ww ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号