本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- xyuma
- sichunli_030
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- johnsmith9th
- lzyfn123
- zhanjia
- forestqqqq
- nychen2000
- ajinn
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
- jveqi
- java-007
- sunj
最新文章列表
[转]-jar参数运行应用时classpath的设置方法
转帖地址:http://www.zeali.net/entry/15
当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJarExe.jar的内 ...
JVM 知识点题目解答之一
因最近一直在学习 JVM,看到 BlueDavy 的一篇文章 JVM知识点题目,于是便激起了我去解答的兴趣。
字节码的加载
1、写一段将目录中指定的.class文件加载到JVM的程序,并通过Class对象获取到完整类名等信息;
对于 ClassLoader 的加载机制、过程及双亲委派模型等这里就不详细介绍了,基本上属于老生长谈的东西了。不过不了解朋友的可以看一下该作者文章:
深入J ...
如何让一个Class被一个虚拟机实例载入2次
以前在一些Blog上面经常看到分析java虚拟机载入Class的各种机制,其中有一种叫做委托机制. 也就是Classloader总是先让他的上一级去查找,只有上一级找不到的时候,他自己才去查找.这也就是说一个Class总是会被同一个ClassLoader载入了.
但是我又知道,一个Class在一个虚拟机里面是通过3个因素来决定:加载器,类名,包名.我记得一个虚拟机是可以把一个Class载入2次. ...
JAVA classLoader
JDK内置ClassLoader
1.bootstrap class loader
最顶层的 负责管理一些classloader
implemented by native lauguage c 汇编 C++ 操作系统本地语言 无名字(null)
load the core classes of jdk
首先是bootstrap class loader 把其他的classloader ...
JAVA 动态加载机制
public class DynamicLoader {
public static void main(String[] args) {
//说明不是一次性加载 先加载A 然后加载B 需要的时候才加载
new A();
System.out.println("========================>");
new B( ...
《软件框架设计的艺术》读书笔记
在用模块化解决方案的时候,JDBC设计也出现的了问题:
只能通过classloader的方式来加载驱动类,如果所有非JDK类都是通过相同的ClassLoader就不会有问题,便是如果遇到复杂的模块化系统,问题就大了,驱动加载上以后就无法卸载。
后来用ConnectionPool和JNDI解决此类问题,但是只能适用于J2EE程序,在不使用应用服务的情况下显得很复杂了
java类加载机制
总是忘记java虚拟机的类加载机制,不过核心思想还是清楚的:
类加载器是个树型结构,如果Parent能找到要加载的类的话,就加载Parent的,这样可以确保JDK自带的类不被项目中自定义的同名类覆盖。
如下是摘自网上的资料,留个记号:
java应用环境中不同的class分别由不同的ClassLoader负责加载。
一个jvm中默认的classloader有Bootstrap ClassLoade ...
加载的是哪的Class
场景:
不知道调用的是哪个Jar包里的类,可通过此工具进行测试。
类实现:
package com.util;
...
public class ClassUtil
{
public static void main(String[] args) {
ClassUtil util = new ClassUtil();
String s = util.whereClass ...
class和classLoader的getResourceAsStream()方法
两个都可以用于从 classpath 里面进行资源读取,
两个方法的区别是资源的定义不同,
一个主要用于相对与一个object取资源,
而另一个用于取相对于classpath的资源,用的是绝对路径。
在使用Class.getResourceAsStream 时, 资源路径有两种方式,
一种以 / 开头,则这样的路径是指定绝对路径,
一种不以 / 开头, 则路径是相对与这个class所在的 ...