- 浏览: 55207 次
- 性别:
- 来自: 广州
最新评论
-
fangzhu19880123:
1.很显然加载会先在lib中找,如果找不到再到class中去找 ...
tomcat类加载器之WebappClassLoader -
shim:
因此有如下结论:
1)web请求的时分配的线程可能是以前用 ...
ThreadLocal研究 -
wanglingzhong:
配置classpath也就是配置java运行时的类路径,所以支 ...
rt.jar ,dt.jar ,tool.jar是什么东西,什么时候需加到到classpath
文章列表
写这个博客的目的是自己在JAVA开发中的一些总结和研究测试,中间难免会有很多的错误,还请大家指正,我写的文章尽量不那些难懂的太专业的术语,希望大家的支持,本人想有时间研究一下JDK的源友和TOMCAT的源,这样也能比较清楚底层的一些细节情况。
本博客都是自己原创的文章,是自己的一些经验和测试总结,可以转摘我的文章,但请保留出处,同时也希大家能提供意见。谢谢。
- 2009-07-02 18:21
- 浏览 805
- 评论(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(),会先执行代码块,然后再执行构造方法,
总结:代码块是在类加载时执行的,而构造方法是在类加载后,再进行实例化执行的。
如此可以明白为什么加载驱动时,如:
Class.forName("oracl ...
测试发现内部类被编译后class文件名为:主类$内部类名.class
如:
package dlp.oa.test;
public class Testb {
public class chen{
}
}
被编译为:Testb.class 和 Testb$chen.class 两个class文件
- 2009-09-03 16:25
- 浏览 957
- 评论(0)
在测试时发现一个类的实例化时间有几百毫秒,测试下发现以下问题.
1)当一个类加载了很多其它的类时,第一次加载是要多点时间,一般好像为:16毫秒左右,如果实例化一次,再去实例化就会发
现几乎不要时间,反正毫秒数显示为0,因此可以认为类在加载一次后,实例化会从中找是否类已加载,如果加载,直接在内存中实例化类,而不要再
加载类文件,然后再实例化,可想而知,容器中保存实例就是加快了实例化的过程,因为类的模板还在.
2)一个类中加载了多个类,而这些类都继承了A,如果其中一个类实例化后,其它的类实例化A时,其时间可以不计.推断,一个JVM中如果存在一个类的模板
其它使用此类的实例都将使用这个模板.
imp ...
- 2009-09-03 16:24
- 浏览 816
- 评论(0)
测试发现继承类的实例子顺序为:
1)实例化最上层父类,类在第一次实例化时都要加载类模板,大概用时几十毫秒左右.
2)然后再实例化自己,
总结:实例化过程是从上到下的过程.
A extends B
B extends C
1)实例化C.
2)实例化B
3)实例化A
- 2009-09-03 16:23
- 浏览 938
- 评论(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(),会先执行代码块,然后再执行构造方法,
总结:代码块是在类加载时执行的,而构造方法是在类加载后,再进行实例化执行的。
如此可以明白为什么加载驱动时,如:
Class.forName("oracl ...
测试发现内部类被编译后class文件名为:主类$内部类名.class
如:
package dlp.oa.test;
public class Testb {
public class chen{
}
}
被编译为:Testb.class 和 Testb$chen.class 两个class文件
- 2009-08-27 15:36
- 浏览 820
- 评论(0)
在测试时发现一个类的实例化时间有几百毫秒,测试下发现以下问题.
1)当一个类加载了很多其它的类时,第一次加载是要多点时间,一般好像为:16毫秒左右,如果实例化一次,再去实例化就会发
现几乎不要时间,反正毫秒数显示为0,因此可以认为类在加载一次后,实例化会从中找是否类已加载,如果加载,直接在内存中实例化类,而不要再
加载类文件,然后再实例化,可想而知,容器中保存实例就是加快了实例化的过程,因为类的模板还在.
2)一个类中加载了多个类,而这些类都继承了A,如果其中一个类实例化后,其它的类实例化A时,其时间可以不计.推断,一个JVM中如果存在一个类的模板
其它使用此类的实例都将使用这个模板.
3) ...
- 2009-08-27 15:35
- 浏览 839
- 评论(0)
测试发现继承类的实例子顺序为:
1)实例化最上层父类,类在第一次实例化时都要加载类模板,大概用时几十毫秒左右.
2)然后再实例化自己,
总结:实例化过程是从上到下的过程.
A extends B
B extends C
1)实例化C.
2)实例化B
3)实例化A
- 2009-08-27 15:34
- 浏览 1021
- 评论(0)
public void run()
{
if(statusa() && statusb())
{
System.out.println("ok");
}
}
public boolean statusa()
{
System.out.println("aa");
return false;
}
public boolean statusb()
{
System.out.println("bb");
return true;
}
测试发现如下:
1)当左边条件为 ...
- 2009-08-27 15:34
- 浏览 923
- 评论(0)
我们一直迷惹为什么我们放在web-inf/classes和web-in/lib下的类和包怎会被tomcat找到执行,这也是我们为什么常常把自己项目开发的
类和第三方包放在这两个地方,以前我们一直认为java只从classpath中加载类,或者dir.ext中加载类及lib中加载系统类包。
但是tomcat是否有自己的加载方式,比如,tomcat能加载自己目下的核心类包,tomcat的核心类包放在apache-tomcat-6.0.14\lib
为什么会这样,原因在于tomcat定义自己的类加载器,tomcat类加载器所在的包为:
org.apache.catalina.loader
而其中就有. ...
- 2009-08-22 17:25
- 浏览 4056
- 评论(1)
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the & ...
- 2009-08-22 17:24
- 浏览 1118
- 评论(0)
数据库连接池可能很多人一直不明白真正的作,也无法真实的体会其明显的作用,
很多初级开发者可能大我都是用完就close了,要用时就打开,这是否对小的应用来说
用不用连接池效果不是很明显,还有一点就是初级开发者常常 ...
java的时间一直令人难以处理,或者说不知道用那种方式,最主要的是对一些类的多种实现方法的一种混乱,其实时间主要有以下几个类。
时的相关的类:
1)java.until.Date
2)java.util.Calendar
3)java.util.GregorianCalendar
其中GregorianCalendar继承Calendar。也就是说GregorianCalendar除了有Calendar的所有
方法外,还有自己的一些方法。主要处理时间,日历的一些相关操作。
Date是一种时间类型,这种类型在java中时间类型,使用很多,但是有关于时间的处理都可以用java.util.Cale ...
- 2009-08-21 08:27
- 浏览 1089
- 评论(0)
1)实例化时第一次一般有几毫秒到几十毫秒。第二,或者加载过一次,二次一般不要时间。
2)测试连接数据库并执行一条select语句要400多毫秒
3)得到连接要390多毫秒
总结:发现数据连接是最毫时的操作,而执行查询等操作并不需要很多时间。
我在tomcat中用一个程序进行测试,不使用连接池用时都为47毫秒,不管怎样刷新这时间不变。
而用连接池后,用时15毫秒,多次刷新大多数都是0,
总结:在tomcat中连数据库好像比在eclipse进行测试时快很多。当刷新不是很快时,很显然
连接用的connection是相同的。从而大量减少了时间。
- 2009-08-21 08:26
- 浏览 1089
- 评论(0)