java classLoader 原则
要理类加载体系结构,就必须清楚如下几点比较基本的原则:
1. classLoader是一种父子树形结构(注:这里不是指类继承的父子关系)
2. 父classLoader无法看到子classLoader加载的类
3、虚拟机遵守双亲委托加载原则,即任何子classLoader须首先委托父classLoader先加载需要的类,当父classLoader加载不到时再由子classLoader亲自加载(这是一个递归过程,即父classLoader如果还有父classLoader2,那么父classLoader又委托给父classLoader2,依次类推,直到根为止,如果父classLoader已经加载过需要的类classLoader,则子classLoader直接使用即可)
4、 全盘负责:一个classloader加载一个class后,这个class所引用或者依赖的类也由这个classloader载入,除非显示的用另一个classloader载入
5、类在虚拟机中的标志出来是 : classLoader实例号+包名+类名,因此不同的classLoader实例加载相同的类在虚拟机中表现出来是不同的。这就是为什么多个cl加载同一个类有时候会出现转换异常的ClassCastException的原因
相关文档:
只是最简单的实现,可在其基础上实现其他功能。
import java.util.Scanner;
public class Ham {
Scanner enter=new Scanner(System.in);
String s_data; //输入的字符串类型的数据
int dlength; ......
现在 所用Java版本,Date类构造方法Date(0)的时间不是Thu Jan 01 01:00:00 GMT 1970了,而是Thu Jan 01 08:00:00 CST 1970。( 1970 年1 月1 日8时0分0秒 星期4)
为什么 Date b1=new Date(623289600000); 不可以,下面的却可以呢?
long a=623289600000L;
Date b1=new Date(a); � ......
集合模式:
作用:处理由一些对象组成的组或者集合;处理如何组织类和对象来形成更大结构的细节;关注设计一个无冗余数据类的最有效方法;允许在一组对象构成的集合上定义操作。
1. 合成:允许单个对象合成对象以一种统一的方式被访问。换句话说,合 ......
import
java.util.Random;
/**
*
排序测试类
*
*
排序算法的分类如下:
*
1.
插入排序(直接插入排序、折半插入排序、希尔排序);
*
2.
交换排序(冒泡泡排序、快速排序);
*
3.
选择排序(直接选择排序、堆排序);
......
/**
* 保留两位小数
* @param d
* @return
*/
private static double remainTwoNumbers(double d){
java.math.BigDecimal f1 = new java.math.BigDecimal(d);//小数点后保留2� ......