2008-07-22

Unsupported major.minor version

关键字: unsupported major.minor version
当你在编译Java时,遇到Unsupported major.minor version类似如下问题提示: Unsupported major.minor version 50.0 Unsupported major.minor version 49.0 Unsupported major.minor version 48.0 均属于Java版本问题,即JDK版本过低,只要选择相对应的JDK版本编译即可。 48,49,50是Java编译器内部的版本号 Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6) Unsupported majo ...
2008-07-10

两种方法删除ArrayList里重复元素

关键字: 两种方法删除arraylist里重复元素
1.方法一: /** List order not maintained **/ public static void removeDuplicate(ArrayList arlList) { HashSet h = new HashSet(arlList); arlList.clear(); arlList.addAll(h); } 2.方法二: /** List order maintained **/ public static void removeDuplicateWithOrder(ArrayList arlL ...
2008-07-01

java compileClassLoader

关键字: java compileclassloader
import java.io.*; /* A CompilingClassLoader compiles your Java source on-the-fly. It checks for nonexistent .class files, or .class files that are older than their corresponding source code. */ public class CompilingClassLoader extends ClassLoader { // Given a filename, read the e ...
2008-07-01

java runtime.exec() 的讲解(转贴)

关键字: java runtime.exec() 的讲解
那就首先说点Runtime类吧,他是一个与JVM运行时环境有关的类,这个类是Singleton的。我说几个自己觉得重要的地方。 1、Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法。 2、Runtime上其他大部分的方法都是实例方法,也就是说每次进行运行时调用时都要用到getRuntime方法。 3、Runtime中的exit方法是退出当前JVM的方法,估计也是唯一的一个吧,因为我看到System类中的exit实际上也是通过调用Runtime.exit()来退出JVM的,这里说明一下Java对Runtime返回值的一般 ...
2008-07-01

JDK5.0以上版本的特殊用途(转贴)

关键字: jdk5.0以上版本的特殊用途(转贴)
jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。 接下来是对这些工具的详细介绍: 从最简单的jstat工具开始:我想很多人都是用过unix ...
2008-07-01

提高java程序性能 (转贴)

关键字: 提高java程序性能 (转贴)
下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从而常常会生成大量的对象(或实例)。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。 例1:关于String ,StringBuffer,+和append JAVA语言提供了对于String类型变量的操作。但如果使用不当,会给程序的性能带来影响。如下面的语句: String name=new ...
2008-07-01

Java 中生成数字证书(转贴)

关键字: java 中生成数字证书
1、创建证书 Java 中的 keytool.exe (位于 JDKBin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。 每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。 在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它们的意思是: ...
2008-06-29

java虚拟机参数2 (转贴)

关键字: java虚拟机参数2 (转贴)
JVM配置参数中文说明: ----------------------------------------------------------------------- 1、-Xmixed mixed mode execution (default) 混合模式执行 2、-Xint interpreted mode execution only 解释模式执行 3、-Xbootclasspath:<directories and zi ...
2008-06-27

java虚拟机参数1 (转贴)

关键字: java虚拟机参数1 (转贴)
下面的讨论以Windows平台的Sun MicroSystem实现的java5虚拟机为蓝本,其他操作系统或其他公司实现的虚拟机参数会有部分不同,但大部分含义都和Windows上的类似。 Java5与以前版本相比,虚拟机参数大部分保持了向前兼容,同时也增加了一些新的参数,本文将对这些参数的作用作详细描述,使虚拟机能更符合运行环境的 需要,获得更好的性能和稳定性。 Java 在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\bin\java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参 ...
2008-06-24

java 生成excel

关键字: java 生成excel
java 生成excel 示例代码 //** **********创建工作簿************ */ WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/test.xls")); /** *//** **********创建工作表************ */ WritableSheet sheet = workbook.createSheet("工作表名称", 0); /** *//** ** ...
2008-06-20

java 陷阱 3 最后的笑声

关键字: java 陷阱 3 最后的笑声
下面的程序打印的内容? Java代码 public class LastLaugh{ public static void main(String[] args){ System.out.println("H"+"a"); System.out.println('H'+'a'); } } 这个程序不会打印HaHa,它打印的是Ha169. 对于第一个输出,调用打印的是Ha,它执行一个字符串连接,而对第二个调用,'H'和'a'是字符型字面常量,所以+操作符执行的是加法而不是字符串连接。 那么应该怎样将字符连接在一起? ...
2008-06-20

java 陷阱2 动物状元

关键字: java 陷阱2 动物状元
Java代码 下面的java程序打印结果是什么?Java代码 public class AnimalFarm{ public static void main(String[] args){ final String pig = "length: 10"; final String dog = "length: "+pig.length(); System.out.println("Animal are equal:" +pig == dog); } } 对 ...
2008-06-20

java 陷阱 1 增量

关键字: java 陷阱 1 增量
下面的程序对一个变量重复的进行增量操作,然后打印它的值,那么打印输出是什么? Java代码 public class Increment{ public static void main(String[] args){ int j=0; for(int i=0;i<100;i++){ j = j++; } System.out.println(j); } } 乍一看,这个程序输出是100,但实际运行后,输出为0. 问题就是在增量操作的语句上: Java代 ...
2008-06-20

classloader 总结

关键字: classloader 总结
classloader对我来说一直都是很神秘的东东,这两天一直在研究,总算搞清楚了一些概念。现在写出来作为一个纪录。 classloader利用一种叫双亲委派的方法来加载类,也就是先让该classloader的parent来加载。具体的parent关系我就不再废话了。代码如下: Java代码 protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { // First, check if the cl ...
2008-06-20

classloader 热部署

关键字: classloader 热部署
关键字: classloader 热部署 这两天一直在学习一些classloader的相关知识,看了一些文章,了解到classloader的作用之一就是实现热部署功能。于是就看了一个网络上的一个例子,然后自己实现了一个应用。虽然作出来了,但是说实话:不满意。因为在这个例子当中,只要热部署一次,就要重新new一个classloader,这样会引发什么问题我也不清楚,并且,classloader究竟实现了什么,以及一些底层的东西我还不是很了解,还要继续研究,目前的版本就是一个中间版本。以后还要优化,或者在我读完tomcat的classloader之后我在去仿照着写一个。 好了,下面介绍这个工 ...
2008-06-20

CompilingClassLoader

关键字: compilingclassloader
import java.io.*; /* A CompilingClassLoader compiles your Java source on-the-fly. It checks for nonexistent .class files, or .class files that are older than their corresponding source code. */ public class CompilingClassLoader extends ClassLoader { // Giv ...
2008-06-20

java 动态加载

关键字: java 动态加载
package com.cxz.thinking.act10; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Random; class method{ public int sum (Integer a, Integer b){ return a + b; } public int minus(Integer a, Integer b){ return a - b; } ...
2008-06-06

两段java代码的比较

关键字: 两段java代码的比较
import java.util.ArrayList; import java.util.List; public class TailRecursionTest { public static void main(String[] args) { TailRecursionTest t = new TailRecursionTest(); for (int i = 0; i < 10000; i++) t.a(0); } public void a(int j) { ...
2008-05-23

java中文件操作大全

关键字: java中文件操作大全
java中文件操作大全 本文为本人在工作学习中的总结,每个方法都经过测试,记在博客上一方面是为了自己日后工作方便,另一方面是为了给大家提供方便,节约时间。 一.获得控制台用户输入的信息 /** *//**获得控制台用户输入的信息 * @return * @throws IOException */ public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffe ...
2008-05-23

Java2容器类

关键字: java2容器类
/* Java2容器类类库的用途是“保存对象”,它分为两类:   Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。   Map----一组成对的“键值对”对象,即其元素是成对的对象,最典型的应用就是数据字典,并且还有其它广泛的应用。另外,Map可以返回其所有键组成的Set和其所有值组成的Collection,或其键值对组成的Set,并且还可以像数组一样扩展多维Map,只要让Map中键值对的每个“值”是一个Map即可。   1.迭代器   迭代器是一种设计模式,它是一个对象,它可 ...
2008-05-23

java中字符串操作方法整理

关键字: java中字符串操作方法整理
一.字符串分割 1.利用字符串类的split方法进行分割 /** *//**利用字符串的split方法进行分割 * @param str 待分割的字符串 * @param sdelimiter 分割符 * @return */ public String[] splitString(String str,String sdelimiter)...{ String[] array=str.split(sdelimiter); return array; } 2.利用Strin ...
2008-05-23

java中关于时间日期操作的常用函数

关键字: java中关于时间日期操作的常用函数
1.计算某一月份的最大天数 Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0 int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间 2.Calendar和Date的转化 (1) Calenda ...
2008-05-15

DBCP数据库连接池

关键字: dbcp数据库连接池
对于数据库数据不停的读取和更改,频繁的建立Connection是很不划算,建立连接池是很好的选择,在多个数据库数据之间来回倒换,需要为每个数据库建立一个池,本例的目的就是建立一个管理这些池的管理类,达到的目的是:在我们需要一个链接的时候,只要提供需要那个连接池(每个连接池对于一个名字,所有的连接池都装载入一个Map中)的名字,就可以得到链接进行操作,完毕需要关闭,关闭这个链接并不会真正的关闭,在池中他还是存在的。 首先定义个xml文件作为我们需要的连接池的配置文件:如下:config.xml <?xml version="1.0" encoding="UTF-8"?> < ...
2008-05-15

java 潜拷贝和深拷贝

关键字: java 潜拷贝和深拷贝
.java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。 Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点 1.在派生类中覆盖基类的clone()方法,并声明为public【Object类中的clone()方法为protected的】。 2.在派生类的clone()方法中,调用super.clone()。 3.在派生类中实现Cloneable接口。 Object类里的clone方法是浅复制(浅克 ...
2008-05-15

对象初始化全过程

关键字: 对象初始化全过程
/* *初始化全过程: * *1, 第一次创建MyClass类的对象,或者第一次访问MyClass的static方法或字段时,Java解释器会搜寻classpath,找到MyClass.class。 *2, 装载MyClass.class后,会对所有的static数据进行初始化。这样第一个装载Class对象的时候,会先进行static成员的初始化。 *3, 使用new MyClass()创建新对象的时候,MyClass对象的构建进程会先在堆里为对象分配足够的内存。 * *4, 清零这块新内存,把MyClass对象的prim ...
kuangbaoxu
搜索本博客
最近加入圈子
存档
最新评论