由来:
与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序(解释性语言)。当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Javaclass加载到JVM里头运行,负责加载Javaclass的这部分就ClassLoader。中文叫做类加载器。类加载器就好比一个代理,你需要什么,我通过类加载器将你需要的内容返回给你!
类加载器有什么作用?...
分类:
编程语言 时间:
2014-06-27 07:12:14
阅读次数:
296
在WEB中普通类并不能像Servlet那样通过this.getServletContext().getResourceAsStream()获取web资源,需要通过类加载器加载,这里有两种方式,这两种方式是有区别的,下载咱们一起来看一下吧。
方法1.
public class UserDao {
public void connect() throws IOException {...
分类:
Web程序 时间:
2014-06-26 10:34:13
阅读次数:
262
类装载器ClassLoader类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件。类装载器把一个类装入JVM中,要经过三步:1.装载:查找和导入Class文件;2.链接:执行校验、准备和解析(解析是可以选择的);3.初始化:对类的静态变量、静态代码块执行初始化工作;..
分类:
编程语言 时间:
2014-06-22 08:11:36
阅读次数:
276
一般本人解决方法很简单:热布署:修改任何java类都会重新部署,开发效率很慢评:就是双击 Server 后在Modules 这个页签中,对 Auto Reload 变为 Disabled“热部署”应该就是指context reloadable=true所谓的热部署是指修改了一个类文件,类加载器只是重...
分类:
其他好文 时间:
2014-06-20 17:06:50
阅读次数:
1297
1.ClassLoader(类加载器)1.加载:查找并加载类的二进制数据2.连接—验证:确保被加载的类的正确性(防止不是通过java命令生成的class文件被加载)—准备:为类的静态变量分配内存,并将其初始化为默认值(如int默认值为0)—解析:把类中的符号引用转换为直接引用3.初始化:为类的静态变...
分类:
编程语言 时间:
2014-06-18 10:20:26
阅读次数:
238
1、类的加载、连接和初始化
类初始化通常包括加载、连接、初始化三个步骤。
(1)进程的结束
每当运行一个java程序时,将会启动一个java虚拟机进程,不管程序多么复杂,有多少线程,都在这个java虚拟机进程里。以下四种情况会使得该进程被终止——
程序运行到最后正常结束;
程序里遭遇了System.exit(),或者是Runtime.getRunTime().exit(...
分类:
编程语言 时间:
2014-06-16 14:33:56
阅读次数:
274
最近遇到一个问题:
1. 我的类A
2. ThreadB线程的类加载器ClassLoaderB没有加载权限
3. 使用另一个线程ThreadA的类加载器ClassLoaderA加载类A,创建对象a
4. 将a给线程ThreadB,然后调用其toString()方法
5. 发现调用的是类A的toString(),而不是Object的toString()
具体代码如下
impor...
分类:
编程语言 时间:
2014-06-15 18:35:54
阅读次数:
274
java类加载
先来看一段小程序:
package com;
public class Main1 {
static {
System.out.println("1111") ;
}
public static void main(String[] args) {
System.out.println("2222") ;
}
}
输出结果为:
111...
分类:
编程语言 时间:
2014-06-10 17:27:38
阅读次数:
272
Jar包冲突问题是在大型Java软件开发中经常遇到的问题,系统开发人员经常会为解决类似的问题耗费大量的时间进行调试和测试,本文根据各种际情况,结合WebSphere中类加载器,讨论了几种解决jar包冲突问题的办法,并给出了具体实现的步骤及源代码。读者定位为具有Java和WebSphere开发经验的开...
分类:
Web程序 时间:
2014-06-10 09:33:46
阅读次数:
305