java之个人研究
iteye_21156
这个作者很懒,什么都没留下…
展开
-
类是怎样被执行的研究
1)类是以编译后的字节码.class类型存于硬盘或其它存储介质上.我们打开被编译的文件也能看出一些东东,上面的部分看不懂,但从能看得懂的来分析有几下几点 1、class文件中,把(.)点号转成了(/),也就是真实的路径。我们在类中定义private Pstring good; 在class中变为: good dlp/oa/pub/Pstring 很显然java文件在编译后,会把各此的属...2009-07-02 15:45:26 · 92 阅读 · 0 评论 -
内部类是怎样编译的
测试发现内部类被编译后class文件名为:主类$内部类名.class如:package dlp.oa.test;public class Testb { public class chen{ }}被编译为:Testb.class 和 Testb$chen.class 两个class文件...2009-09-03 16:25:03 · 172 阅读 · 0 评论 -
程序运行时间的测试
在测试时发现一个类的实例化时间有几百毫秒,测试下发现以下问题.1)当一个类加载了很多其它的类时,第一次加载是要多点时间,一般好像为:16毫秒左右,如果实例化一次,再去实例化就会发现几乎不要时间,反正毫秒数显示为0,因此可以认为类在加载一次后,实例化会从中找是否类已加载,如果加载,直接在内存中实例化类,而不要再加载类文件,然后再实例化,可想而知,容器中保存实例就是加快了实例化的过程,因为...2009-09-03 16:24:31 · 147 阅读 · 0 评论 -
继承类的实例化顺序
测试发现继承类的实例子顺序为:1)实例化最上层父类,类在第一次实例化时都要加载类模板,大概用时几十毫秒左右.2)然后再实例化自己,总结:实例化过程是从上到下的过程.A extends BB extends C1)实例化C.2)实例化B3)实例化A...2009-09-03 16:23:41 · 135 阅读 · 0 评论 -
类的代码块研究
代码块实例:测试发现:1)代码块是在类初始化前执行的。2)用java.lang.Class.forName("com.chen.test.One");只会加载类,并不会执行构造方法。3)用java.lang.Class.forName("com.chen.test.One");会执行代码块。4)如果实例化One one = new One(),会先执行代码块,然后再执行构造...2009-08-27 15:36:58 · 85 阅读 · 0 评论 -
内部类是怎样编译的
测试发现内部类被编译后class文件名为:主类$内部类名.class如:package dlp.oa.test;public class Testb { public class chen{ }}被编译为:Testb.class 和 Testb$chen.class 两个class文件...2009-08-27 15:36:24 · 252 阅读 · 0 评论 -
程序运行时间的测试
在测试时发现一个类的实例化时间有几百毫秒,测试下发现以下问题.1)当一个类加载了很多其它的类时,第一次加载是要多点时间,一般好像为:16毫秒左右,如果实例化一次,再去实例化就会发现几乎不要时间,反正毫秒数显示为0,因此可以认为类在加载一次后,实例化会从中找是否类已加载,如果加载,直接在内存中实例化类,而不要再加载类文件,然后再实例化,可想而知,容器中保存实例就是加快了实例化的过程,因为...2009-08-27 15:35:43 · 114 阅读 · 0 评论 -
继承类的实例化顺序
测试发现继承类的实例子顺序为:1)实例化最上层父类,类在第一次实例化时都要加载类模板,大概用时几十毫秒左右.2)然后再实例化自己,总结:实例化过程是从上到下的过程.A extends BB extends C1)实例化C.2)实例化B3)实例化A...2009-08-27 15:34:58 · 134 阅读 · 0 评论 -
条件的执行顺序
public void run() { if(statusa() && statusb()) { System.out.println("ok"); } } public boolean statusa() { System.out.println("aa"); return false; } public boolean ...2009-08-27 15:34:30 · 202 阅读 · 0 评论 -
关于JAVA时间的研究
java的时间一直令人难以处理,或者说不知道用那种方式,最主要的是对一些类的多种实现方法的一种混乱,其实时间主要有以下几个类。时的相关的类:1)java.until.Date2)java.util.Calendar3)java.util.GregorianCalendar其中GregorianCalendar继承Calendar。也就是说GregorianCalendar除...2009-08-21 08:27:09 · 130 阅读 · 0 评论 -
程序执行耗时测试
1)实例化时第一次一般有几毫秒到几十毫秒。第二,或者加载过一次,二次一般不要时间。2)测试连接数据库并执行一条select语句要400多毫秒3)得到连接要390多毫秒总结:发现数据连接是最毫时的操作,而执行查询等操作并不需要很多时间。我在tomcat中用一个程序进行测试,不使用连接池用时都为47毫秒,不管怎样刷新这时间不变。而用连接池后,用时15毫秒,多次刷新大多数都是...2009-08-21 08:26:45 · 196 阅读 · 0 评论 -
方法重写
当一个接口A,有B继承了A并实现了A的全部方法,C然后再继承B,然后重写了部分B的方法,当B实例化后附给A变量。当A执行方法时,将是盖过后的方法。如果实例化的类没有相应的方法,将向上的父类找看有没有相应的方法。一直找到最顶层。...2009-08-21 08:26:20 · 121 阅读 · 0 评论 -
关于javabean的一反射原理
我们知道反射可以通过一个getter和setter方法得到相应属性的值,在struts测试中发现,struts只会把提供的属性转成get方法。而不会去检查这个属性是否真实存在。如:我有一个public String getLove(){ return good;}在标签中我们使用love属性一样可以得到值,只不过是good的值。应用需求:这种应用是在有时...2009-08-21 08:25:48 · 123 阅读 · 0 评论 -
java语法解析
1. 一个重写方法的实例的写法。//////////////////////////////////////////////////////////////////////////////////////new Thread(){ public void run(){ se.send(); } }.start();上面...2009-08-21 08:25:04 · 187 阅读 · 0 评论 -
关于数据LinkedList的removefirst出错
我有一段这样的代码: Java codeprivate LinkedList freeCon = new LinkedList();public Connection getConn() { Connection re = null; if(freeCon.size()>0) { try { re = freeCon.getFirst();...2009-08-21 08:23:31 · 315 阅读 · 0 评论 -
ThreadLocal研究
我在hibernate工厂类中看到了关于ThreadLocal的使用,threadLocal显然是类变量,全局的是否这样表示不同的线程共享了threadLocal,事实上没错,多个线程取得到是同一样threadLocal但是在不同的线程中使用threadLocal得到的变量不一样。那么什么是同一线程呢,我们可以这样理解线程是主线程创建分支线程调用类执行完再返回主线程,那么这么这分支线程...2009-08-08 11:55:39 · 84 阅读 · 0 评论 -
类的代码块研究
代码块实例:测试发现:1)代码块是在类初始化前执行的。2)用java.lang.Class.forName("com.chen.test.One");只会加载类,并不会执行构造方法。3)用java.lang.Class.forName("com.chen.test.One");会执行代码块。4)如果实例化One one = new One(),会先执行代码块,然后再执行构造...2009-09-03 16:25:39 · 110 阅读 · 0 评论