当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: JVM在运行时会产生三个ClassLoader,Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader.其中,Bootstrap是用C++编写的,我们在Java中看不到它,是null。
 

 

 ·你知道数据大小吗?    »显示摘要«
    摘要: 摘要: 过去很多年里面,许多的java开发人员都一直在问一个问题:“一个java对象到底耗费多少内存呢?”在本文中,vladimir roubtsov用以前的解决方案来解释了这个问题,在此之外,基于他的经验演示了内存的使用,并且还提供了一些技巧来让你的java程序更加高效。 作者:vladimir roubtsov 近来,我们帮助开发了一个java服务器,这......
 ·windows 2000中如何配置jdk    »显示摘要«
    摘要: java初学者往往对如何配置java开发环境感到迷惑,论坛上也有很多朋友在询问关于jdk配置的问题,特别是配置之后,编译java文件的时候,总是碰到这样一个问题,错误提示为: microsoft windows 2000 [version 5.00.2195] (c) 版权所有 1985-1998 microsoft corp. c:\>javac hellowo......


ClassLoader介绍
jvm在运行时会产生三个classloader,bootstrap classloader.extension classloader与appclassloader.其中,bootstrap是用c++编写的,我们在java中看不到它,是null.它用来加载核心类库,在jvm源代码中这样写道: static const char classpathformat[] = "%/lib/rt.jar:" "%/lib/i18n.jar:" "%/lib/sunrsasign.jar:" "%/lib/jsse.jar:" "%/lib/jce.jar:" "%/lib/charsets.jar:" "%/classes"; 知道为什么不需要在classpath中加载这些类了吧?人家在jvm启动的时候就自动加载了,并且在运行过程中根本不能修改bootstrap加载路径. extension classloader用来加载扩展类,即/lib/ext中的类. 最后appclassloader才是加载classpath的. classloader加载类用的是委托模型.即先让parent类(而不是super,不是继承关系)寻找,parent找不到才自己找.看来classloader还是蛮孝顺的.三者的关系为:appclassloader的parent是extclassloader,而extclassloader的parent为bootstrap classloader.加载一个类时,首先bootstrap先进行寻找,找不到再由extclassloader寻找,最后才是appclassloader. 为什么要设计的这么复杂呢?其中一个重要原因就是安全性.
...   下一页
 ·谨慎使用date和time类    »显示摘要«
    摘要: ava里提供的日期和时间类,java.sql.date和java.sql.time,只会从数据库里读取某部分值,这有时会导致丢失数据。例如一个包含2002/05/22 5:00:57 pm的字段,读取日期时得到的是2002/05/22,而读取时间时得到的是5:00:57 pm. 你需要了解数据库里存储时间的精度。有些数据库,比如mysql,精度为毫秒,然而另一些数据库,包......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE