转:Java 6 JVM参数选项大全(中文版)
摘要:作者:Ken WuEmail:ken.wug@gmail.com转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm!本文是基于最新的SUN官方文档Java SE 6 Hotspot VMOptions编写的译文。主要介绍JVM中的非稳态选项及其使用说明。为了让读者明白每个选项的含义,作者在原文基础上补充了大量的资料。希望这份文档,对正在研究JVM参数的朋友有帮助!另外,考虑到本文档是初稿,如有描述错误,敬请指正。非稳态选项使用说明-XX:+<option>启用选项-XX:-<
阅读全文
转:java.net.SocketException: Too many open files解决方法
摘要:最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报java.net.SocketException: Too many open files错误,错误日志达到了100多兆,郁闷了,windows上运行了很长时间都没出现这个错误,后来才知道linux对进程的打开文件数是有限制的。用命令ulimit -a查看[root@test security]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedfile size (blocks, -f) unli
阅读全文
转:jvm设置时区问题
摘要:转自:http://hi.baidu.com/iammonster/blog/item/d4b386de053c0f5ecdbf1a1b.html今天遇到一个问题,就是本机数据传到另外一台机器后时间加了8个小时,查资料了解了一下。当使用JAVA网络编程的时候,需要注意:时区。user.timezone可以使用下面的代码遍历当前的系统属性。 Java代码 //------------------------------------------------------------------------------finalPropertiesp=System.getProperties();fi
阅读全文
转:注解+动态代理例子
摘要:在公司没事干了,学习下动态代理模式(关于代理的基础只是有很多帖子都有我就不重复了),做了个注解动态代理的例子,给那些学习注解或动态代理的初学者。花了将近1小时,没做个什么优化,大牛勿喷。几个主要的类:注解类:Java代码 packagetest2;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Retention(RetentionPol
阅读全文
转:AOP 的利器:ASM 3.0 介绍
摘要:引言什么是 ASM ?ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。与 BCEL 和 SERL 不同,ASM 提供了更为现代的编程模型。对于 ASM 来说,Java class 被描述为一棵树;使用 “Vi
阅读全文
转:java读取指定package下的class
摘要:之前在看spring注解的时候,有看到再配置文件里面定义component scan package就能自动扫描对应包下面的class,然后根据注解生成相应的bean。自己对这个功能很好奇,就搜了下,找到了实现的关键代码,记录下。后续再对这段代码深入学习。/***从包package中获取所有的Class**@parampack*@return*/publicstaticSet<Class<?>>getClasses(Stringpack){//第一个class类的集合Set<Class<?>>classes=newLinkedHashSet<
阅读全文
转:java内部类
摘要:在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部。内部类作为其外部类的一个成员,与其他成员一样,可以直接访问其外部类的数据和方法。只不过相比较外部类只有public和默认的修饰符不同,内部类作为一个成员,可以被任意修饰符修饰。编译器在编译时,内部类的名称为OuterClass$InnerClass.class 。1、内部类访问数据变量当在某些时候,内部类中定义的变量与外部类中变量名称相同时,如何确保正确地访问每一个变量呢?1.1在main中直接从外部类调用内部类的方法class Outer{ private int
阅读全文
转:静态类和单例的区别
摘要:这里暂且把单例模式限定为不是全用静态函数实现的。1。使用的方便性:如果需要初始化工作,单例模式可以在构造函数里面完成,全静态函数的类需要一个额外的函数来完成初始化工作,而且使用者如果没有调用这个initialize函数,那么后续的操作就会有问题,构造函数会被默认调用,所以使用起来比较简单,对使用者做出了最少的假设。2。初始化时机:单例模式初始化比较灵活,可以在需要的时候初始化,而全静态函数必然导致成员全为静态成员,静态成员是在编译时就初始化好了。如果初始化成本比较昂贵,并且程序里面未必一定使用这个类,那这将是单例模式的一个很大优势。顺便说一下全局变量,全局变量的初始化顺序是未指定的。例如 全局
阅读全文
转:java解析xml
摘要:在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。 预 备 测试环境: AMD 毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1.4.1+Eclipse 2.1+Resin 2.1.8,在 Debug 模式下测试。 XML 文件格式如下: <?xml version="1.0" encoding="GB2312&
阅读全文
转:Java 动态代理机制分析及扩展
摘要:引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制和特点出发,对其代码进行了分析,推演了动态生成类的内部实现。回页首代理:设计模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消
阅读全文
转:JAVA动态代理实现&&动态字节码生成(asm)
摘要:在目前的Java开发包中包含了对动态代理的支持,但是其实现只支持对接口的的实现。其实现主要通过是java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现,如下,HelloWorld接口定义的业务方法,HelloWorldImpl是HelloWorld接口的实现,HelloWorldHandler是InvocationHandler接口实现。代码如下:业务接口:public interface HelloWorld { void sa
阅读全文
转:java读写文件大全,将内容追加到文件尾部
摘要:1、java读写文件大全最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write(char[] ch,int off,intlength),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,intlength)和close()方法是抽象方法。子类应该分别实现他们。 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamRea
阅读全文
转:单例模式(序列化)
摘要:如果你序列化一个单例类,然后两次重构它,那么你就会得到那个单例类的两个实例,除非你实现readResolve()方法,像下面这样:例1 一个可序列化的单例类Java代码importorg.apache.log4j.Logger;public class Singleton implements java.io.Serializable{ public static SingletonINSTANCE = newSingleton(); protected Singleton(){// Exists only to thwartinstantiation.} private Object rea
阅读全文
转:Class.forName和ClassLoader.loadClass的区别
摘要:Class的装载分了三个阶段,loading,linking和initializing,分别定义在The Java Language Specification的12.2,12.3和12.4。Class.forName(className)实际上是调用Class.forName(className, true, this.getClass().getClassLoader())。注意第二个参数,是指Class被loading后是不是必须被初始化。ClassLoader.loadClass(className)实际上调用的是ClassLoader.loadClass(name, false),第
阅读全文
java跳出多重循环tip
摘要:在相对复杂的业务逻辑中,我们常常使用到多重循环,在最里层循环判断某个条件,一旦条件不符合就直接break,可以break并不能直接跳出所有的循环,这肯定会对性能有影响,还有可能影响业务判断。最好的方式就是直接跳出所有循循,return到最外层。这个类似被广大人民诟病的goto语法。大家众所周知,java是不支持goto语法的,虽然保留了goto为关键字。解决这类问题,其实有个很简单的做法Java代码 publicvoidshowExample(){breakFor:for(inti=0;i<100;i++){for(intj=0;j<100;j++){if(j%15==i){bre
阅读全文
转:深入探讨类加载器
摘要:原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用的开发人员不需要直接同类加载器进行交互。Java 虚
阅读全文
jvm何时对类进行初始化及创建类实例的几种方法
摘要:初始化必须发生在装载、连接以后,java虚拟机一般会在每个类或接口主动使用时才会对类型进行初始化。下面六中情形符合主动使用的要求:1.当创建某个类的新实例时。注:包括创建的所有方式,如new、反射、克隆以及反序列化等2.当调用某个类的静态方法时3.当使用某个类或接口的静态字段,或对该静态非常量字段进行赋值时。注意:用final修饰的静态字段除外,因为在编译阶段时,它就被替换成一个常量表达式4.调用java API中的某些反射方法时,比如类Class中的方法或java.lang.reflect包中的方法5.初始化某个类的子类时(某个类初始化时,要求它的超类已经被初始化了)6.虚拟机启动时,包含有
阅读全文
转:java内部静态类和非静态类,和他们在外部的定义
摘要:接口:声明在接口中的属性自动成为public static final声明在接口中的方法自动成为public声明在接口中的类自动成为public static如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。然而,当内部类是static的时,就不是这样了。嵌套类意味着: 1. 要创建嵌套类的对象,并不需要其外围类的对象。 2. 不能从嵌套类的对象中访问非静态的外围类对象。 public class
阅读全文
转:为什么 Thread.stop和Thread.suspend等被废弃了?
摘要:翻译:dlite@163.com原文: Why Are Thread.stop, Thread.suspend,Thread.resume and Runtime.runFinalizersOnExit Deprecated?为什么 Thread.stop被废弃了?因为其天生是不安全的。停止一个线程会导致其解锁其上被锁定的所有监视器(监视器以在栈顶产生ThreadDeath异常的方式被解锁)。如果之前被这些监视器保护的任何对象处于不一致状态,其它线程看到的这些对象就会处于不一致状态。这种对象被称为受损的(damaged)。当线程在受损的对象上进行操作时,会导致任意行为。这种行为可能微妙且难以检
阅读全文
转:Java Annotation详解
摘要:转载自:http://william750214.javaeye.com/blog/298104元数据的作用如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:l 编写文档:通过代码里标识的元数据生成文档。l 代码分析:通过代码里标识的元数据对代码进行分析。l 编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查。基本内置注释 @Override注释能实现编译时检查,你可以为你的方法添加该注释,以声明该方法是用于覆盖父类中的方法。如果该方法不是覆盖父类的方法,将会在编译时报错。例如我们为某类重写toString()方法却写成了tostri
阅读全文