随笔分类 -  Java

上一页 1 2

深入研究探索Java技术,包括J2SE基础,J2EE框架,以及JUnit源码,Spring源码
List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用
摘要:引入题目:List中的数据如何根据对象的某一个或多个字段排序?第一节对于引入题目的探讨首先把引入题目表述的清楚一些,在一个List中存储的是一些对象实例,而对象实例包含多个属性字段,我们要根据对象的某个或者多个属性来对List进行排序。假设List中存储的都是Student类的实例,Student类包含name、gender、id属性。首先根据Student实例中的name属性排序,如果两个名字相同,就再根据id属性排序。Student类源码如下:[java]view plaincopypackagechapter1;publicclassStudent{privateStringname;p 阅读全文

posted @ 2012-08-14 15:33 AllenZhao 阅读(2046) 评论(0) 推荐(0)

使用Arrays.sort()方法,以及涉及到的Comparable和Comparator
摘要:[java]view plaincopyprint?Arrays.sort用法packagetest;importjava.util.Arrays;importjava.util.Comparator;publicclassArraySortDemo{/***整数型数组排序*/publicvoidsortIntArray(){int[]arrayToSort=newint[]{48,5,89,80,81,23,45,16,2};System.out.println("整数型数组排序,排序前:");for(inti=0;i0)return1;if(diff<0)retu 阅读全文

posted @ 2012-08-14 15:30 AllenZhao 阅读(1841) 评论(0) 推荐(0)

使用StackTraceElement封装,打印调试代码!
摘要:这个是在Alcatel-Lucent实习的时候,学到。 原来老是看别人说要掌握Java的几个API包,例如lang和util,起码要熟悉,本来以为自己已经熟悉了,现在才知道自己还差得远啊。需要上网搜集各包的相关知识,扩展下。 譬如说StackTraceElement这个,可以得到方法的调用栈信息,那么在进行开发的时候,为了比较好的测试,查看代码流程,可以在每个方法的开头还有结尾trace下,这样的话,代码如下:[java]view plaincopyprint?publicclassTrace{publicvoidmethodStart(){StackTraceElementthisMeth. 阅读全文

posted @ 2012-08-14 15:27 AllenZhao 阅读(766) 评论(0) 推荐(0)

File的相关方法代码实例
摘要:1:Java多种读取文件的方式importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.RandomAccessFile;importjava.io.Reader;publicclas 阅读全文

posted @ 2012-08-14 15:18 AllenZhao 阅读(169) 评论(0) 推荐(0)

通过例子看六种异常处理的陋习
摘要:六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?1 OutputStreamWriter out = ...2 java.sql.Connection conn = ...3 try { // ⑸4 Statement stat = conn.createStatement();5 ResultSet rs = stat.executeQuery(6 "select uid, name from user");7 while (rs.next())8 {9 out.p 阅读全文

posted @ 2012-08-14 15:14 AllenZhao 阅读(256) 评论(0) 推荐(0)

StringBuffer与StringBuilder的区别
摘要:StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的。StringBuffer 始于 JDK 1.0StringBuilder 始于 JDK 1.5从 JDK 1.5 开始,带有字符串变量的连接操作(+),JVM 内部采用的是StringBuilder 来实现的,而之前这个操作是采用 StringBuffer 实现的。 阅读全文

posted @ 2012-08-14 15:10 AllenZhao 阅读(157) 评论(0) 推荐(0)

String字符串拼接原理剖析
摘要:String a ="ab"+"c";这时候生成的"abc"会放入StringPool(正解),String a="ab";String c=b+"c";由于和字面量"c"进行+运算的是一个对象而不是字面量,这样Java虚拟机就会在堆里面生成一个新的对象并返回该对象引用,此时变量a和变量c指向了两个不同的地址。即使String a = new String("abc"),虽然这样一来a和c都是指向堆的,但她们还是指向两个不同的对象,因为b+"c& 阅读全文

posted @ 2012-08-13 14:44 AllenZhao 阅读(1788) 评论(0) 推荐(1)

String类的split方法
摘要:对于Strig类的这个split方法,碰到过多次,参考了很多网上的资料,现在整理总结一下1:split函数第二个参数的用法在论坛上看到了一个问题,然后兴起了对这个函数进一步探究的兴趣:首先,使用只有一个参数的split: publicclassSplitTest{ /***@paramargs*/publicstaticvoidmain(String[]args){Stringstr="what,is,,,,that";String[]strs=str.split(",");System.out.println(strs.length);}}输出结果是6 阅读全文

posted @ 2012-08-13 14:32 AllenZhao 阅读(2134) 评论(0) 推荐(1)

hashcode和equals方法详细解析, hashmap对于hashcode方法的使用
摘要:一 第一篇 http://jameswxx.iteye.com/blog/647451 字符串引出来 前几天有个同事问我,String a="123",String b=new String("123");它们的hashcode相等吗?我当时愣了一下,首先它们的equals肯定是true的,“==”是false的,但是还真没注意到两个的hashcode是否相等。 (下面插入代码测试正确) package equals.hashcode;public class TestHashcode { /** * @param args */ public stat 阅读全文

posted @ 2012-08-13 10:59 AllenZhao 阅读(497) 评论(0) 推荐(0)

Enum枚举
摘要:A:JDK1.4之前的枚举在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在Java中想表示这种数据集最容易想到的写法可能是这样,我们以表示一周五天的工作日来举例:Java代码public class WeekDay { public static final int MONDAY = 1; public static final int TUESDAY = 2; public static final int WENSDAY = 3; pub 阅读全文

posted @ 2012-08-13 10:19 AllenZhao 阅读(314) 评论(0) 推荐(0)

父类引用指向子类对象
摘要:父类引用指向子类对象应该说是比较困难的知识点,多态,面向对象等方面的知识看似很简单的话,其实包含着很多规范在里面。从对象的内存角度来理解试试. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存.现在通过代码来看看内存的分配情况: Father f = new Father();//系统将分配1M内存. Son s = new Son();//系统将分配1.5M内存! 因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造函数.由于s中包含了父类的实例,所以s可以. 阅读全文

posted @ 2012-08-08 11:12 AllenZhao 阅读(1021) 评论(1) 推荐(1)

BigInteger使用总结(也是不可变的)
摘要:今天参考课本写了一个关于二进制与十进制转换的程序,程序算法不难,但写完后测试发现不论是二转十还是十转二,对于大于21亿即超过整数范围的数不能很好的转换。都会变成0.参考书籍发现使用使用BigInteger可以解决这个问题。于是查找了下JDK,然后测试几次终于写成功了!使用心得如下:1,BigInteger属于java.math.BigInteger,因此在每次使用前都要import这个类。偶开始就忘记import了,于是总提示找不到提示符。2,其构造方法有很多,但现在偶用到的有:BigInteger(Stringval)将 BigInteger 的十进制字符串表示形式转换为 BigInteg. 阅读全文

posted @ 2012-08-08 09:51 AllenZhao 阅读(676) 评论(0) 推荐(0)

上一页 1 2

导航