jdk加载类顺序

1、Dog dog = new Dog();这个动作会导致常量池的解析,Dog类被隐式装载。如果当前ClassLoader无法找到Dog,则抛出NoClassDefFoundError。2、Class clazz = Class.forName(“Dog”);   Object dog =clazz.newInstance();通过反射加载类型,并创建对象实例如果无法找到Dog,则抛出ClassNotFoundException。3、Class clazz = classLoader.loadClass(“Dog”);   Object dog =clazz.newInsta…

JDK的动态代理深入解析(Proxy,InvocationHandler)

转载自http://hi.baidu.com/new/wolf55   创建Proxy对象,测试 public class ProxyTest_old {      public static void main(String[] args) {         UserDao userDao = new UserDaoImpl();         LogHandler_old logHandler = new LogHandler_old(userDao);         UserDao userDaProxy = (UserDao) Proxy.newProxyInstance(userDao                .getClass().getClassLoader(), userDao.getC…

Servlet学习笔记

  1.一个Servlet程序就是一个实现了特殊接口的java类,它由支持servlet(具有servlet引擎)的web服务器调用和启动运行。 一个Servlet程序负责处理它所对应的一个或一组url地址的访问请求,并接收客户端发出的访问请求信息和产生响应内容。 2.所有的servlet(自定义的)都必须实现servlet接口(javax.servlet.Servlet)。由于Servlet接口中有很多方法不需要实现,因此可以继承GenericServlet类。 GenericServ…

JAR解压缩方法

JAR解压缩方法 作者:hunhun1981 出自:http://blog.csdn.net/hunhun1981/         下面这些代码,是用来解压jar文件的(我自己写了一个打包工具,专门用于修改配置文件并对原始JAR进行二次发布)。 第一种是使用JarFile类来完成功能,大家可以稍加修改,集成ClassLoader既可以实现一个自解压的JAR包。 package otheri; import java.io.BufferedOutputStream; import java.io.File; import java.io.F…

【java】自定义ClassLoader 加载外部类和jar文件

我们写的程序,默认会编译src下的.java文件,但是如果一个类不在这个项目的src下,怎么在本项目内new出它的一个实例?这就需要自定义一个ClassLoader,让它去加载指定位置的class,因为项目中默认的ClassLoader只能加载src下文件编译后形成的class文件。 有几个概念需要强调一下: 1,ClassLoader加载的是字节码(.class),不是源文件(.java),意味着外部的java文件要编译以后才能加载。 2,两个位置的…

-jar参数运行应用时classpath的设置方法

最近发现了一个比较好的解决方案,先写在前边 可以设置java.ext.dirs 参数,如 %JAVA_HOME%/bin/java -Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext;./lib -jar test.jar 将lib目录都列上去。   或者在manifest.mf 文件中,写入classpath项目 Class-Path: . lib/log4j-1.2.12.jar 冒号和各项目用空格隔开。   以下是转载内容。 ------------------------------------------------------分割线------------…

Java ClassLoader原理分析

一、JDK默认提供的三个ClassLoader JDK 默认提供了如下几种ClassLoader 1. Bootstrp loader Bootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。 2. ExtClassLoader   Bootstrp loader加载ExtClassLoader,并且将ExtClassLoader的父加载器设置为Bootstrp loader.ExtClassLoader是…

Java基础加强总结(4)(类加载器)

  一、类加载器 加载类的工具 Java虚拟机提供了三个类加载器: BootStrap:(C++实现的嵌在JVM内核里)-----jre/lib/rt.jar ExtClassLoader:(Java类)-----jre/lib/ext/*.jar AppClassLoader:(Java类)-----classPath指定的所有jar或目录 类加载器的委托机制 当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢? 首先当前线程的类加载器去加载线程中的第一个类。 如果类A中引用了类B,Java虚拟机…

在Eclipse RCP中使用Spring或者Hibernate

在RCP中使用Spring,最关键的一点在于spring配置文件的读取,因为RCP使用自己的ClassLoader,所以用通常的方法是无法装载Spring的配置文件。解决的思路是:在读取Spring配置文件时将RCP的ClassLoader暂时换一下。在这里我根据Spring配置文件在项目中的存放位置,给出两种办法。一、配置文件存放在源代码根目录下。假设我有一个叫admin_console的项目,我把Spring的配置文件myspring.xml放在源代码根据…

jvm

JVM运行时数据区的内存模型由五部分组成: 【1】方法区 【2】堆 【3】JAVA栈 【4】PC寄存器 【5】本地方法栈   常量池是属于类型信息的一部分,类型信息也就是每一个被转载的类型,这个类型反映到JVM内存模型中是对应存在于JVM内存模型的方法区中,也就是这个类型信息中的常量池概念是存在于在方法区中,而方法区是在JVM内存模型中的堆中由JVM来分配的。     javac 把源码整成字节码 java 时,首先把…

使用 VS + SOS.dll 调试托管程序

  Visual Studio 作为一种强大的开发平台,已经提供了非常多的调试手段。但这些调试手段相对来说还是停留在表面上,无非是设置断点、变量查看以及调用堆栈列表等。某些时候我们希望了解更多的东西,尤其是那些被隐藏到背后和运行期的东西,诸如对象运行状态、内存分布等等,这些相对底层的知识可以让我们更好地理解 .NET CLR / JIT 的一些行为。当然,并不是所有人都需要了解这些知识,毕竟汇编和高级…

java Class和加载机制精华一页纸

Java 是一个解释型语言(使用了JIT后, 也有变成本地机器码的, 但一般意义上都是先预编译成字节码, 解释执行),那字节码里面包含了那些?解释的过程如何? 1、Class 字节码 I、基本信息 Class识别、版本信息 II、常量池 类似TLV表述的结构,数据类型主要是用 U1、U2 ... (对应 1,2,4,8个字节)的无符号数。 常量池并不是指类里面的常量,而是类里面所有名称和限定符(字面常量、编译常量) 因为,class中…

Java基础知识点总结二

  26.  Java中的异常处理机制的简单原理和应用?答:当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关…

JVM加载class文件的原理机制

Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。正是因为 Java 的这种特性,我们可以在不重新编译其它代码的情况…

自解压的jar实现原理

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>   自解压的jar实现原理作者:Turbo Chen日期:2004/2/8    在网络上,有些java程序的提供者将他们的java安装程序打包成一个jar文件的形式。当运行时,自动将jar中的程序解压出来安装到使用者的电脑上。他们是如何做到这些的呢?现在我们就来解开这个迷,让大家了解如果制作这…
下一页 »