Java基础
lijingshou
这个作者很懒,什么都没留下…
展开
-
Java线程状态小结
参考文章:http://www.jiacheo.org/blog/3382017-06-12 00:35:36 · 175 阅读 · 0 评论 -
Java比较List是否相等
Java List有两个常见的子类ArrayList和LinkedList,他们都实现了AbstractList抽象类,它override了equals方法: public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return fal...2013-09-17 19:41:25 · 631 阅读 · 0 评论 -
自动装箱导致的性能问题
请看例子:public class LongPerformanceTest { public static void main(String[] args) { Long sum = 0L; long start = System.currentTimeMillis(); for (long i=0; i<Integer.MAX_VALUE; i++) {...2014-07-16 16:59:11 · 111 阅读 · 0 评论 -
ASM框架学习资料汇总
请参考如下资料ASM之helloWorld深入了解Java ClassLoader、Bytecode 、ASM、cglibAOP 的利器:ASM 3.0 介绍关于java字节码框架ASM的学习ASM Home pagejava反射:使用asm 获取方法的参数名...2014-02-19 22:53:18 · 240 阅读 · 0 评论 -
使用Java合并图片
在做自动化测试的时候,有时候需要对屏幕进行截图,还需要图片进行合并,合并的代码如下:package com.jingshou.image;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import ...2014-02-19 14:40:33 · 335 阅读 · 1 评论 -
Java基本类型与对象类型的区别导致的Bug剖析
一个很简单的例子,原文地址:http://www.taobaotest.com/blogs/2544======================================原文开始===============================本文中所提到的基本类型是指类似 int,long等,而对象类型是指Integer,Long等。基本类型和对象类型第一个最大的不同在于初始化的值...原创 2014-07-03 10:35:46 · 123 阅读 · 0 评论 -
使用Java Mail发送邮件小结
使用Java Mail发送邮件需要用到mail.jar和activation.jar(非必须),发送一个邮件的基本步骤是:初始化一个Properties类,将邮件服务器相关属性以key,value的形式添加进去根据Properties实例创建Session根据Session创建Message,并且在Message中添加邮件的From,to,body, attachment等等...2014-02-15 19:02:52 · 89 阅读 · 0 评论 -
Java String.split()的bug?
以下程序:String str1 = "a,b,,,,";System.out.println("String length is: " + str1.split(",").length); String str2 = "a,b,,,,c";System.out.println("String length is: " + str2.split(",").leng2014-06-06 19:39:45 · 283 阅读 · 0 评论 -
JDBC操作数据库性能优化小结
最近做了一个使用JDBC操作数据库的小项目,主要实现不同数据库的数据表之间数据复制功能.以下是一些关于性能方面的总结: 1. 进行SQL查询,当预期的结果集较大的时候,使用PreparedStatement.setFetchSize(FETCH_SIZE)或者Statement.setFetchSize(FETCH_SIZE),可以成百倍地增加性能,我自己设置的值是5252. 当R...2014-06-06 19:33:03 · 149 阅读 · 0 评论 -
java 动态代理深度学习(Proxy,InvocationHandler),含$Proxy0源码
看懂了这篇文章,就彻底了解动态代理是怎么回事了,原文地址java 动态代理深度学习,一.相关类及其方法:java.lang.reflect.Proxy,Proxy 提供用于创建动态代理类和实例的静态方法.newProxyInstance()返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序(详见api文档)java.lang.reflect.Invocatio...原创 2013-09-29 16:13:45 · 102 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
在安装了Java1.5的机器上运行JAR包,发现如下异常:Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.la...2014-08-07 17:36:04 · 475 阅读 · 0 评论 -
(My)Eclipse中右键项目Build Path菜单无子菜单的解决办法
原文地址:http://hi.baidu.com/i7521/item/04d1c1145de245f9ddeeca04本人在Eclipse下实践成功MyEclipse 中右键项目的弹出菜单中“Build Path”无子菜单,即:找不到"Configure Build Path"菜单项,在属性中也无法找到,导致无法配置项目的编译路径和附加的Jar包,经过反复尝试终于定位到项目目录下的“.p...原创 2014-04-23 16:57:53 · 1260 阅读 · 0 评论 -
轻松掌握Java String.split()方法
String有2个split()方法:split(String regexp) :以正则表达式分割字符串split(String regexp, int limit): 同样以正则分割字符串,返回最多limit个字符串以下是例子:public class StringTest { public static void main(String[] args) { ...2013-10-31 13:53:53 · 105 阅读 · 0 评论 -
Java动态代理小结
关于JDK动态代理,请参考http://lijingshou.iteye.com/blog/1949134 实际上实现动态代理,有两种基本方法:JDK自带的动态代理,通过继承InvocationHandler接口CGLib动态代理, 通过继承MethodInterceptor接口这两种动态代理的最大区别是,对于被代理的对象,前者需要一个接口和实现类.而后者不需要接口,可...2014-04-09 22:51:26 · 62 阅读 · 0 评论 -
使用RandomAccessFile产生固定大小文件
产生特定大小的文件,在测试某些test case的时候会非常有用,可以使用RandomAccessFile类来实现:package io;import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;public class BigFil...原创 2013-10-24 15:17:46 · 720 阅读 · 0 评论 -
输入年月日格式yyyyMMdd,判断是否是周末
原文: http://denverj.iteye.com/blog/652083 /** * 判断是否是周末 * @param date 表示日期的字符串,比如20100424 * @param pattern 描述日期和时间格式的模式,比如yyyyMMdd * @return * @throws ParseException */ public...原创 2014-08-20 14:57:25 · 419 阅读 · 0 评论 -
Memcache学习资料
http://memcached.org/http://zxe-llh-163-com.iteye.com/blog/1158721http://www.open-open.com/lib/view/open1338688577562.htmlhttp://wenku.baidu.com/link?url=QbuBfSKeQQaa2EPelb_uxhECB77nOvQhEw72JWC...原创 2014-08-13 00:26:29 · 92 阅读 · 0 评论 -
一个简单的Java缓存实现
原文地址:http://www.oschina.net/code/snippet_55577_3887package test; import java.util.Map;import java.util.WeakHashMap;import java.util.concurrent.ConcurrentHashMap;import java.util.concurren...原创 2014-08-12 23:38:30 · 158 阅读 · 0 评论 -
Java获取数据库元信息
代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;...2014-08-07 17:42:10 · 164 阅读 · 0 评论 -
Eclipse 反编译插件安装jad(转)
原文地址: http://tangmingjie2009.iteye.com/blog/1916992本机Eclipse版本:Eclipse Java EE IDE for Web Developers.Version: Kepler Service Release 1试验成功 Eclipse的反编译插件一直在用jad,感觉很不错。 刚下了个新版的eclipse,配...原创 2014-01-17 16:14:31 · 155 阅读 · 0 评论 -
Java数组复制小结
在Java中可以使用Arrays.copyOf()方法和System.arraycopy进行数组复制与扩容,以下是例子:import java.lang.reflect.Array;import java.util.Arrays;public class ArrayCopyTest { public static void main(String[] args) {...2013-11-24 16:02:05 · 107 阅读 · 0 评论 -
JDK安装之环境变量配置
电脑安装完JDK后设置了JAVA_HOME = C:\Program Files\Java\jdk1.6.0_25和Path =%JAVA_HOME%\bin 后,使用java, java -version测试都正常.但是使用javac命令的时候,就提示: 'javac' 不是内部或外部命令,也不是可运行的程序: 折腾半天后发现JAVA_HOME应该设置为系统变量而不是用户变量,改为系...2013-11-05 22:42:43 · 63 阅读 · 0 评论 -
覆盖equals时总要覆盖hashCode
Object规范[JavaSE6]:[*]在应用程序执行期间,对同一样对象调用多次,hashCode方法必须始终如一地返回同一个整数,在同一个应用程序多次执行过程中,每次执行所返回的整数可以不一致[*]如果两个对象根据equals(Object)方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法必须产生相同的整数结果[*]如果两个对象更具equals方法比较是不相...2011-03-08 14:56:55 · 52 阅读 · 0 评论 -
数组之值传递与引用传递
内容参考自孙卫琴的[*]分别为数组和基本类型整型创建change方法,用于交换一个数组和整型[code="java"]package com.perficient.basic;public class Swaper { //交换数组 public static void change(int[] array1, int[] array2){ System.ou...2011-03-08 11:23:19 · 255 阅读 · 0 评论 -
Java之三种显示对象创建方式
[color=red]内容来自孙卫琴的《Java面向对象编程》[/color],做了小的修改[*]Java中有四种显示地创建对象的方式1. 使用new语句创建2. 运用反射手段,调用Class或者Constructor类的newInstance()方法3. 调用对象的clone()方法4. 运用反序列化手段[*]以下例子使用前三种方式创建,Customer是我们...2011-03-07 15:04:40 · 159 阅读 · 0 评论 -
抽象类与接口总结
[b][*]抽象类[/b]1.抽象类可以没有抽象方法,但是包含了抽象方法的必需被定义抽象类.如果子类没有实现父类的中所有的抽象方法,则子类也必需定义为抽象2.没有抽象的构造方法,也没有抽象的构造函数3.抽象类中可以有非抽象的构造方法,可以有非抽象的方法4.抽象类及抽象方法不能被final修饰[b][*]接口[/b]1.接口中的成员变量默认都是public, static...2011-03-06 20:40:09 · 43 阅读 · 0 评论 -
Java自动装箱与拆箱
先看代码[code="java"]public class AutoBoxing { public static void main(String[] args){ Integer a = new Integer(10); int b = 11; int c1 = a + b; Integer c2 = a + b; System.out...2011-03-06 19:11:19 · 48 阅读 · 0 评论 -
Java学习之使用jar命令
[b][*]1.创建HelloWorld,它调用了Test类[/b][code="java"]package com.perficient.javabasic.test;public class HelloWorld { public static void main(String[] args){ System.out.println("Hello Java, I am...2011-03-06 16:53:41 · 78 阅读 · 0 评论 -
Java学习之HelloWorld编译与运行
1.在Eclipse项目下新建一个HelloWorld.java[code="java"]package com.perficient.javabasic.test;public class HelloWorld { public static void main(String[] args){ System.out.println("Hello Java, I am J...2011-03-06 14:29:12 · 194 阅读 · 0 评论 -
Java反射机制
[color=red]内容整理自网络[/color][b][*]反射定义[/b]百度百科上的定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制Java的反射机制的实现要借助于4个类:class,Constructor,Field...原创 2011-03-03 23:22:15 · 65 阅读 · 0 评论 -
Java Comparable接口以及Comparator类
[b][*]实现Comparable接口的自然排序[/b]实现类基于compareTo()方法的排序被称为自然排序,在JDK中,如Integer,Double和String等都实现了Comparable接口的,接口中有一个int compartTo(Object o)方法,返回整数类型.[b][*]Comparator接口的自定义排序[/b]实现Comparator接口的类会实现一...2011-03-08 15:57:10 · 91 阅读 · 0 评论 -
Map基本使用方法
[b][*]Map的定义[/b]Map(映射)是一种把键对象和值进行映射的集合,它的每一个元素都包含一个键对象和值对象,而值对象仍然可以是Map类型的对象[b][*]例子:MapTest[/b][code="java"]package com.perficient.javabasic.test;import java.util.HashMap;import java...2011-03-08 21:32:28 · 121 阅读 · 0 评论 -
泛型学习2-泛型的好处
泛型的主要好处如下:[b][*]能够写出有类型安全性的集合[/b]也就是说编译器能够帮忙防止你把Dog加到一群Cat中[b][*]消除强制类型转换[/b]泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。...2011-03-28 17:40:40 · 84 阅读 · 0 评论 -
面向对象设计的基本原则
以下内容摘自《Head First 设计模式》[b][*]OO基础[/b]1.抽象2.封装3.多态4.继承[b][*]OO原则[/b]1.封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起2.多用组合,少用继承3.针对接口编程,不要针对实现编程4.为交互对象之间的松耦合设计而努力5.类应该对扩展开放,就修改关...2011-03-17 00:23:41 · 44 阅读 · 0 评论 -
泛型学习1-将类型参数化
[b][*]例子代码如下:[/b][code="java"]package com.perficient.javabasic.test;import java.util.HashMap;public class Generic { public HashMap map = new HashMap(); public void put(K k, V v) { m...2011-03-14 00:46:51 · 74 阅读 · 0 评论 -
UML中类之间的关系
UML中类之间有五中关系,分别是:[b][*]泛化(Generalization)[/b]泛化是指类之间或者接口之间的继承关系,用实线三角形箭头表示[img]http://dl.iteye.com/upload/attachment/434715/1a2e6ce1-7152-3c20-b24d-9130afa63080.jpg[/img][b][*]实现(Reali...2011-03-13 18:14:12 · 76 阅读 · 0 评论 -
Java时间类小结
[b][*]参数说明 [/b] y 年 M 月 d 日 h 时 在上午或下午 (1~12) H 时 在一天中 (0~23) m 分 s 秒 S 毫秒 E 星期 D 一年中的第几天 F 一月中第几个星期几 w 一年中第几个星期 W 一月中第几个星期 a 上午 / 下午 标记符 k 时 在一天中 (1~24)...2011-03-10 23:03:44 · 84 阅读 · 0 评论 -
Java中String与StringBuffer的不同
String和StringBuffer都可以用来处理字符串,拥有一些相同的方法如length(),toString()等等[b][*]不同点[/b]1.String是可变类,StringBuffer是不可变类2.String类覆盖了equals()方法, StringBuffer类没有覆盖Object的equals方法3.String类的toString()方法返回当前Stri...2011-03-10 22:02:32 · 69 阅读 · 0 评论 -
标准IO输入输出流
Java提供了三个静态变量[list][b][*]System.in[/b]: 为InputStream类型,标准输入流,默认为键盘输入值[b][*]System.out[/b]:为PrintStream类型,标准输出流,默认为控制台输出[b][*]System.err[/b]:为PrintStream类型,代表错误输出流,默认为控制台输出[/list]以下代码实现将键...原创 2011-03-10 00:57:31 · 74 阅读 · 0 评论 -
IO Reader和Writer类总结
[b][*]概述[/b]Reader和Writer分别代表字符输入流和字符输出流,对于每一个字符,Java虚拟机会为其分配两个字节的内存.它们都都继承自抽象类Reader和WriterJava中,采用如下两种方法获取本地平台编码:[code="java"]System.out.println(System.getProperty("file.encoding"));Char...2011-03-09 23:46:48 · 234 阅读 · 0 评论