
java
fenglei12
it男一枚,喜欢打篮球
展开
-
java中的Collection的toArray
Collection中的toArray方法很久以前就知道,不过今天发现有overload过。1.[code="java"]Object[] toArray()[/code]2.[code="java"] T[] toArray(T[] a)[/code]比较不同的是,2的形式中,返回的类型是由参数指定的。比如:[code="java"]String[] y = x.toArray(...原创 2011-08-17 14:45:23 · 166 阅读 · 0 评论 -
再谈可变参数
java方法可以重载,通过参数列表的不同进行分辨,但是可变参数的方法和确定参数的方法一起时,调用的是什么方法呢?通过程序可以看到:[code="java"]public class TestArgs { public static void say(String str) { System.out.println(str); System.out.println("111"...原创 2011-09-26 10:36:23 · 84 阅读 · 0 评论 -
junit4中的long
junit这个自动测试工具,是很好用的。但有个地方需要注意,就是assertEquals(Long,Long)时,不能直接传递如:1L等,需要用new Long(1)来进行传递,或者用变量传递。这个应该是自动拆箱和装箱的原因。...原创 2011-09-27 11:28:03 · 132 阅读 · 0 评论 -
java的classpath环境变量
以前很多java入门书籍在讲解java环境配置的时候都要配置dtjar和tools.jar的classpath变量,其实到了jdk 1.5以后,系统自动会加载这两个包,所以即使我们不用配置这两个包的classpath,也是完全没有问题的。一旦我们设定了classpath,jre就会根据这个配置来进行搜索java文件。在指定classpath别忘了加上“.”这个路径,代表当前路径,不然会出现找不...原创 2011-09-28 14:12:01 · 90 阅读 · 0 评论 -
java的参数都是值传递的
java中没有引用传递的概念。基本类型肯定是值传递了,所以在方法中的修改不会对值产生任何影响。如:[code="java"]public class SwapNum { /** * @param args */ public static void main(String[] args) { int a = 1; int b = 3; Syst...原创 2011-09-28 15:37:07 · 90 阅读 · 0 评论 -
java的对象创建
java对象的创建其实不是完全依赖构造器的,其实在构造器执行前就已经创建好对象了,因为在构造器中可以调用this对象。原创 2011-09-28 18:03:28 · 103 阅读 · 0 评论 -
简单多态代码
java语言3大特征之一——多态。多态为开发提供了很多的便利,为可扩展性提供很大的支持。[code="java"]public enum Sex { MALE,FEMALE;}[/code]Person类:[code="java"]public class Person { private String name; private int age; pu...原创 2011-09-29 13:30:36 · 392 阅读 · 0 评论 -
final的理解
final修饰的变量分为基本类型和引用类型。两者最大的差别在于可操作性。当用final修饰了一个基本类型时,如果这个变量是局部变量,则这个变量不必马上就初始化: [code="java"]public static void main(String[] args) { final int a; a = 1; System.out.println(); }...原创 2011-09-29 14:24:41 · 126 阅读 · 0 评论 -
接口与抽象类理解
接口与抽象类。接口更适用于一个规范,定义一个规范,然后实现此接口的类都遵循这个接口的规范。抽象类更适用于定义一个模板,抽象类实现子类的通用的地方,留下特殊的让子类各自实现。接口和抽象类在选择的时候应尽量符合自己的长处,接口定义规范,抽象类定义模板。这样才能写出更为高效的代码。接口可以继承多个接口。...原创 2011-09-30 16:49:22 · 90 阅读 · 0 评论 -
内部类权限设置
java类的访问权限设置只能是默认或者public修饰,一个文件中只能有一个public类,且文件名必须与文件名一致。但内部类跟这个是有区别的,内部类可以看成外部类的一个成员变量,内部类和其他成员变量一样,可以有private,default,protected,private这4个权限修饰符进行权限控制。...原创 2011-10-09 08:02:48 · 145 阅读 · 0 评论 -
内部类中变量的查找
在非静态内部类的方法中访问某个变量时,系统优先在该方法内查找是否存在该名字的局部变量,如果存在则用此局部变量;若不存在,则到该方法的内部类查找是否存在该名字的属性,若存在则用此属性;若还不存在,则到此内部类所在的外部类中进行查找,若存在,则取用,否则,报异常。[code="java"]public class InnerTest { private int i = 2; p...原创 2011-10-09 08:22:05 · 134 阅读 · 0 评论 -
date的比较大小
两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。实际上比较的是自1970 年 1 月 1 日 00:00:00 GMT以来的毫秒数。毫秒数越大的时间越大。如:[code="j...原创 2011-10-09 14:36:19 · 986 阅读 · 0 评论 -
Integer的一个小秘密
看一个程序:[code="java"]import java.lang.Integer; public class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Int...原创 2011-10-17 13:26:13 · 107 阅读 · 0 评论 -
switch
在jdk1.6之前,switch的类型是int或Integer和枚举类型,byte,char,short都能自动转型为int,所以都适合,但long和String不能自动转成int,所以不行。但在java7中,已经可以对String进行switch了。java交流群:132607763...原创 2011-12-23 10:16:55 · 114 阅读 · 0 评论 -
不通过中间变量交换整型数
[code="java"]package com.randy.generic;public class GenericMethodTest { public static void testChange(int i, int j) { i = i ^ j; j = i ^ j; i = i ^ j; System.out.println(i + " " + ...原创 2011-11-08 14:05:55 · 81 阅读 · 0 评论 -
Random的种子
若两个Random实例用相同的种子,并对他们以同样的顺序调用方法,会产生相同的数字序列。[code="java"]public static void main(String[] args) { Random rand = new Random(50); System.out.println("nextBoolean():" + rand.nextBoolean()); by...原创 2011-11-30 08:52:08 · 140 阅读 · 0 评论 -
java的Access restriction错误
在编写代码时,突然出现:Access restriction: The type Launcher is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar错误,解决办法,在java build path中先移除jre system library,然后重新将jre ...原创 2012-03-06 22:48:16 · 154 阅读 · 0 评论 -
java的serialver工具使用
serialver用于生成序列化的serialVersionUID。首先进入到需要生成serialVersionUID的java文件的目录下,然后编译此文件,javac -d .\ Xxx.java利用serialver来生成:serialver -show,在弹出的一个界面中,输入完整类名(xxx.xxx.Xxx),这样就能生成serialVersionUID...原创 2013-04-09 14:46:35 · 1674 阅读 · 0 评论 -
List的subList
List也可以取她的子List,方法是subList(int fromIndex, int toIndex),根据文档,subList包括fromIndex,但不包括toIndex。如:[code="java"]List l1 = l.subList(1,3);[/code]得到的是l中的第2个和第3个元素。...原创 2011-09-23 13:59:07 · 120 阅读 · 0 评论 -
java +和+=
java中有+=运算符。比如[code="java"]a += b[/code]表示[code="java"]a = a + b;[/code]大多数情况下是成立的,但是有个例子就不相等了。[code="java"]short s1 = 1;s1 = s1 + 1;[/code]编译时就会出错。因为s1 + 1的类型是int型,赋值给short型的s1就会出现转型错...原创 2011-09-14 17:06:15 · 202 阅读 · 0 评论 -
override与overload:覆盖与重载
方法的覆盖(override):基本都是对接口的实现,或子类对抽象父类的方法的实现。在方法覆盖时注意:1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方...原创 2011-08-17 15:01:08 · 103 阅读 · 0 评论 -
finally的认识
一直以为对finally认识很明白了,昨天在看到论坛上的一个小程序犯糊了。[code="java"]public class FinallyTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System...原创 2011-08-19 10:17:58 · 96 阅读 · 0 评论 -
数组与可变参数
今天才发现可变参数可以用数组进行传递。再通过eclipse一看,参数类型就是个数组。[code="java"]public class ChangableArgTest { /** * @param args */ public static void main(String[] args) { String[] strings = new String[] ...原创 2011-08-19 11:15:25 · 157 阅读 · 0 评论 -
java集合类解析——容器类的认识
容器类分为2种:Collection和Map。List和Set都是Collection的子接口。List必须保持元素特定的顺序,Set不能有重复对象。Map则是以键值对的形式保存的。其实集合类可以大致分为Set,List,Map三大类。接下来仔细介绍各个集合类。...原创 2011-08-19 20:18:45 · 112 阅读 · 0 评论 -
java集合类——ArrayList和Vector类
ArrayList:查看API可以知道,ArrayList实现List接口。ArrayList的size()方法得到的是实际元素的个数,不管生成对象时的初始大小是多少,这是自动优化的。ArrayList可以使用foreach和Iterator输出。不是线程安全的。代码如下:[code="java"]package ArrayListVectorTest;import java.ut...原创 2011-08-19 21:23:30 · 200 阅读 · 0 评论 -
java集合类——Set接口解析
Set中不能有重复元素出现,这是与List最大的不同的地方。HashSet是无序的,TreeSet是有序的。简单代码如下:[code="java"]import java.util.HashSet;import java.util.Set;import java.util.TreeSet;public class SetTest { /** * @param ...原创 2011-08-19 21:50:10 · 191 阅读 · 0 评论 -
奇数判断的误区
奇数判断,一个很简单的程序,但里边暗藏玄机啊。。。一个负奇数对2取余,结果是-1。有种错误奇数判断写法是这样的:[code="java"]public class IsOddTest { /** * @param args */ public static void main(String[] args) { System.out.println(isOd...原创 2011-08-20 11:37:11 · 194 阅读 · 0 评论 -
java集合类——Stack类
查看java的API文档,Stack继承Vector类。栈的特点是后进先出。API中Stack自身的方法不多,基本跟栈的特点有关。[code="java"]import java.util.Stack;public class StackTest { public static void main(String[] args) { Stack stack ...原创 2011-08-22 12:37:50 · 381 阅读 · 0 评论 -
java集合类——LinkedList类
LinkedList是实现List接口。LinkedList类有很多方法,对头尾的操作都提供了方法。如addFirst(),addLast()等等。LinkedList与Stack的顺序刚好相反,是先进先出的。[code="java"]import java.util.LinkedList;public class LinkedListTest { /** * @...原创 2011-08-22 13:43:19 · 476 阅读 · 0 评论 -
java集合类——LinkedHashSet类
对这个类,到现在还是从来没用过,不过要知道这个的LinkedHashSet类的优点是必须的,至少以后用到的时候,能有个可选的余地,有个解决方案。LinkedHashSet具有保序性。什么意思呢?就是说,比如从数据库里取出数据,用HashSet保存,结果发现顺序却是乱的,这是LinkedHashSet就能派上用场了哦。其实在HashSet的构造方法中有一个是这样的:[code="ja...原创 2011-08-22 14:02:50 · 117 阅读 · 0 评论 -
java迭代接口——Iterator接口及ListIterator接口
集合类基本都有返回Iterator的方法,比如List就由返回Iterator和ListIterator的方法。ListIterator继承Iterator接口。这两个接口最大的不同在与Iterator这能进行顺序遍历,而 ListIterator能进行双向遍历。[code="java"]import java.util.ArrayList;import java.util.Itera...原创 2011-08-22 14:24:13 · 265 阅读 · 0 评论 -
Map——HashMap和HashTable
HashMap和HashTable都实现Map接口。HashMap允许键和值为null,但HashTable不行。两者的键都不能重复。[code="java"]import java.util.HashMap;import java.util.Hashtable;public class MapTest { /** * @param args */ pu...原创 2011-08-22 15:31:11 · 76 阅读 · 0 评论 -
求解Comparator和Comparable
Comparator接口,实现此接口的类就是一个排序器,Arrays和Collections都能在sort()方法的参数中指明排序方式,即实现Comparator接口的类的示例。User类:[code="java"]public class User { private String name; private int age; public User(Strin...原创 2011-08-22 18:18:45 · 80 阅读 · 0 评论 -
java正则表达式
创建步骤:1.创建一个Pattern,Pattern p = Pattern.compile(String regex);2.创建Matcher,Matcher m = p.matcher(String str);3.匹配。Matcher对于匹配有3中,matches(),find(),LookingAt()。matches()要全部匹配才能返回true,LookingAt...原创 2011-08-25 09:59:36 · 81 阅读 · 0 评论 -
java访问权限控制小解
private,protect,friendly(即默认),publicprivate只能在本类中访问protect能在本类,同个包以及子类都能访问friendly本类及同个包进行访问public在本类,同个包,子类,不同包中都能访问...原创 2011-08-30 14:35:29 · 100 阅读 · 0 评论 -
jdbc关闭连接顺序
jdbc连接数据库时,先获取connection,再通过statement进行操作,将结果集放在resultset中,不过在关闭数据库的时候要小心,要跟前面的操作反着来,不然就会出现异常。如果直接关闭connection的话,就是说将其他也关闭了,再对其他的如statement进行操作就会出现:操作不允许在关闭以后进行的异常。[code="java"]try { rs = stmt.e...原创 2011-09-05 10:05:29 · 1603 阅读 · 1 评论 -
java String的对象创建
一个常见的面试题:1:String str = new String("aaa");String str1 = "aaa"String str2 = new String("aaa");System.out.println(str == str1);System.out.println(str == str2);System.out.println(str1 ...原创 2013-01-09 16:10:46 · 116 阅读 · 0 评论