`
文章列表
Java 顾问 Dennis Sosnoski 在他的关于 Javassist 框架的三期文章中将精华部分留在了最后。这次他展现了 Javassist 对搜索-替换的支持是如何使对 Java 字节码的编辑变得像文本编辑器的“替换所有(Replace All )”命令一样容易的。想报告 ...
在经过一段时间的休息之后,Dennis Sosnoski 又回来推出了他的 Java 编程的动态性系 列的第 5 部分。您已在前面的文章中看到了如何编写用于转换 Java 类文件以改变代码行为的程序。在本期中,Dennis将展示如何使用 Javassist 框架,把转换与实际的类加载过程结合起来,用以进行灵活的“即时”面向方面的特性处理。这种方法允许您决定想要在运行时改变的内容,并潜地在每次运行程序 时做出不同的修改。在整个过程中,您还将更深入地了解向JVM 中加载类的一般问题。 在第 4 部分“ 用 Javassist 进行类转换”中,您学习了如何使用 Java ...
厌倦了只能按编写好源代码的方式执行的 Java 类了吗?那么打起精神吧,因为您就要发现如何将编译器编译好的类进行改造的方法了!在本文中,Java 顾问 Dennis Sosnoski 通过介绍字节码操作库 Javassist 将他的 Java 编程的动 ...
命令行参数处理是一项令人厌烦的零碎工作,不管您过去已经处理过多少次了,它好像总能重新摆在您的面前。与其一遍又一遍地编写同 一块代码的不同变种,为什么不利用反射来简化参数处理的工作呢?Java 顾问 Dennis Sosnoski 向您展示了如何做到这一点。在本文中,Dennis 简明扼要地介绍了一个开源库,这个库可以使得命令行参数实际上自己处理自己。 在 上个月的文章中, 我介绍了Java Reflection API,并简要地讲述了它的一些基本功能。我还仔细研究了反射的性能,并且在文章的最后给出了一些指导方针,告诉读者在一个应用程序中何时应该使用反射, 何时 ...
反射使您的程序代码能够接入装载到JVM中的类的内部信息,允许您编写与执行时,而不是源代码中选定的类协作的代码。这使反射成 为构建灵活的应用的主要工具。但需注意的是 --如果使用不当,反射的成本很高。在Java平台系 ...
 这一有关 Java 编程动态方面的新的系列文章研究了执行 Java 应用程序时幕后所发生的事情。企业 Java专家 Dennis Sosnoski 提供了 Java 二进制类格式以及在 JVM 内部类所发生的情况的内幕。接着,他将讨论类装入问题,其范围涉及从运行简单的 Java 应用程序所需的类的数量到可能造成 J2EE 及类似的复杂体系结构出现问题的类装入器冲突。 本文是这个新系列文章的第一篇,该系列文章将讨论我称之为 Java 编程的动态性的 一系列主题。这些主题的范围从 Java 二进制类文件格式的基本结构,以及使用反射进行运行时元数据访问,一直到在运行时修改和构造新类 ...
 理解Java类加载原理第一部分. 提示我需要读这篇文章吗?Java类加载器对Java系统的运行是至关重要的,但是却常常被我们忽略。Java类加载器负载在运行时查找和加载类。自定义类加载器可以完全改变类的加载方式,以自己喜欢的方式来个性化你的Java虚拟机。本文简要的介绍Java类加载器,然后通过一个构造自定义类加载器的例子来说明,这个类加载器在加载类前会自动编译代码。你将学到类加载器到底是干什么的,如何创建你自己的类加载器。只要你有一些基本的Java知识,知道如何创建、编译、运行一个命令行Java程序以及一些Java类文件的基本概念,你就可以理解本文的内容了。读完本文,你应该能够:* 扩张Ja ...
 Java 多线程入门大全作者:qlampskyface 和作者联系:djb_skyface@tom.com     接触多线程已经不少时间了,也做了不少事情,但是一直觉得用起来不那么顺手,在debug的时候,往往会比较担心在同步上出什么问题,想起"程序员最怕的是自己写的代码"这句话,觉得真是不假.    终于有一天,我觉得是时候把这个问题弄清楚了,所以,我就在网上找相关的内容看,结果竟然是找不到在我这个阶段应该看的,不是太简单,就是一笔带过,不知所云.    废了九牛二虎之力,终于差不多弄清楚了,其中有不少误区,以前认为的和真理相差甚大.想起自己花费的时间,真是觉得有点多 ...
在JAVA中动态执行类的静态方法/*在JAVA中,通过Class.forName()方法可以动态决定加载哪一个类,这个功能对于相同接口的不同实现来讲非常有用。比如对于设计好的数据库连接池接口,我们可以有多种的接口实现类来完成相同的功能,同时用户可以简单的通过修改配置文件来指定实际使用哪一个实现类,在源代码里面通过读取配置文件信息,并用Class.forName(configClassName).getInstance()就可以构造一个特定的实现类实例,而不用每次修改源代码。这样对于程序来讲只用关心接口的定义,用户只用进行配置文件的设置就完成了同一功能的不同实现的切换。但是如果实现类需要通过静态方 ...
 前天刚装完的系统环境变量多配好了,在控制台运行的时候出现Exception in thread "main" java.lang.NoClassDefFoundError:test  的错误。环境变量的配置如下: java_home : D:\bea\jdk142_05 path :D:\bea\jdk142_05\bin ClassPath   :D:\bea\jdk142_05\lib\dt.jar;D:\bea\jdk142_05\lib\tools.jar 在eclipse中运行一点问题也没有,嘿 问题出在哪了。问题一定在环境变量里。后经仔细查看原来问题真的出在环境 ...
出现的问题:2006-08-25 16:41:40 [com.opensymphony.oscache.base.Config]-[DEBUG] Config() called2006-08-25 16:41:40 [com.opensymphony.oscache.base.Config]-[DEBUG] Getting Config2006-08-25 16:41:40 [com.opensymphony.oscache.base.Config]-[INFO] Properties {cache.algorithm=com.opensymphony.oscache.base.algorith ...
 目录1. 简介 2. 安装 3. log4j基本概念 3.1. Logger 3.2. Appender 3.2.1. 使用ConsoleAppender 3.2.2. 使用FileAppender 3.2.3. 使用WriterAppender3.3. Layout 3.4. 基本示例 3.4.1. SimpleLayout和FileAppender 3.4.2. HTMLLayout和WriterAppender 3.4.3. PatternLayout和ConsoleAppender4. 使 ...
Global site tag (gtag.js) - Google Analytics