
Java
云烟,不再年轻
积累是一个漫长的过程,它足以可以让你写出N本书的内容
展开
-
初学Java,泛型类型通配符(三十七)
c#的泛型没有类型通配符,原因是.net的泛型是CLR支持的泛型,而Java的JVM并不支持泛型,只是语法糖,在编译器编译的时候都转换成object类型类型通配符在java中表示的是泛型类型的父类public void test(List c){ for(int i = 0;i < c.size();i++) { System.out.print原创 2012-02-28 14:50:32 · 2093 阅读 · 1 评论 -
初学Java,集合类的排序,查找,替换操作(三十五)
排序比较简单,简略说一下ArrayList nums = new ArrayList();nums.add(.....)......Collections.reverse(nums); //次序反转Collections.sort(nums); //按自然顺序排序Collections.shuffle(nums); //随机排序查找,替换ArrayList nums = new Arra原创 2012-02-27 21:54:51 · 2891 阅读 · 0 评论 -
初学Java,IdentityHashMap实现类(三十三)
IdentityHashMap又是一个我不明白会用在什么场合的类,用法了解一下吧,它是一个特殊的Map实现,它要求 两个key严格相等时才认为两个key相等import java.util.*;public class TestIdentityHashMap { public static void main(String[] args) { IdentityHashMap ihm原创 2012-02-27 21:18:37 · 7193 阅读 · 0 评论 -
初学Java,LinkedList功能最全的集合类(二十九)
LinkedList是List接口的实现类,也是Deque接口的实现类,Deque接口是Queue的子接口,它代表一个双向队列.因此LinedList的功能十分强大,兼具双向队列,栈和List集合的用法。LinedList就像LinkedSet一样,内部以链表来保存集合的元素,因此在插入,删除元素时性能非常出色,因为只需改变指针地址即可,但在访问元素时就相对慢一些了,因为需要访问内部链表impor原创 2012-02-19 11:10:26 · 6244 阅读 · 0 评论 -
初学Java,EnumMap实现类(三十四)
从名字上看出来,EnumMap是为枚举类服务的,它的key不能为null,在创建它的时候,必须要指定一个枚举类,如:EnumMap enumMap = new EnumMap(Season.class);下面示范它的用法public enum Season{ SPRING,SUMMER,FALL,WINTER}import java.util.*;public class TestEnum原创 2012-02-27 21:41:48 · 10159 阅读 · 0 评论 -
初学Java,List和ListIterator(二十八)
List代表的是一个有序的集合,每一个元素都有一个对应索引。List是Collection的子接口,所以Collection的所有方法都可以调用,另外也有它自身的方法。import java.util.*;public class TestList { public static void main(String[] args) { List books = new ArrayLis原创 2012-02-17 23:04:34 · 7752 阅读 · 2 评论 -
初学Java,比较HashSet,LinkedHashSet,TreeSet,EnumSet(二十七)
HashSet 集合存入元素时,会调用该对象的hashCode()方法得到hashCode值,根据hashCode值决定对象在HashSet中存储的位置,如有两个元素通过equals方法比较返回true,但它们的hashCode不同,HashSet会把它们存储在不同位置,也就可以添加成功迭代HashSet没什么好说的,可以用Iterator接口Iterator it = hashSet1.iter原创 2012-02-16 22:23:15 · 3376 阅读 · 1 评论 -
初学Java,操作Collection(二十六)
下面是操作Collection举例,即List,Set,Queue都可以使用的方法import java.util.*;public class TestCollection { public static void main(String[] args) { Collection c = new ArrayList(); //添加元素 c.add("苹果"); //虽然原创 2012-02-16 16:43:36 · 1579 阅读 · 0 评论 -
初学Java,WeakHashMap实现类(三十二)
WeakHashMap这个类,说真的,我不知道Java为什么弄这么一个集合类出来,反正C#里面找不到类似的实现,不知道它是用在什么场景下的看它的名字就知道,WeakHashMap的每一个key对象保存了实际对象的弱引用,当系统回收了该key所对应的实际对象之后,WeakHashMap会自动删除该key对应的key-value对下面做个实验import java.util.*;public cla原创 2012-02-24 16:47:18 · 2928 阅读 · 0 评论 -
初学Java,集合类概述(二十五)
关于集合类,我觉得用图来描述是再好不好了,又能标明层次,又能标明用途这些图都是网上收集来的,可以很好的说明问题,够用了.Collection和Map是Java集合类的根接口,Collection 主要是元素集合,就像C#里面List一样,而Map就像C#里面的HashTable,Dictionary一样,属于键值对集合,上面的图是这两个类的体系结构.下面这么多类,它们的用处和区别也用图来表示原创 2012-02-16 16:07:27 · 1897 阅读 · 1 评论 -
初学Java,创建线程同步的集合类(三十六)
很幸运,Java已经帮程序员做好了创建线程同步集合的工作,只消调用集合对应的同步方法就可以了名称都是以这个形式出现,synchronizedXXXimport java.util.*;public class TestSynchronized { public static void main(String[] args) { //创建四个同步集合 Collection c =原创 2012-02-28 10:24:49 · 1874 阅读 · 0 评论 -
初学Java,Annotation注释(三十八)
Annotation 注释,这个注释和写代码时解释代码在干什么那个注释完全不是一个东西,这里的注释是指代码中的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。 通过这些标记,可以在不改变原有逻辑的情况下,在源文件嵌入一些补充的信息。Annotation可用于修饰包,类,构造器, 方法,成员变量,参数,局部变量的声明。其实Java中的Annotation和C#中的attribu原创 2012-03-08 21:39:16 · 1688 阅读 · 0 评论 -
初学Java,IO之使用FileInputStream和FileReader读取文件(四十一)
import java.io.*;public class FileInputStreamTest{ public static void main(String[] args) throws IOException { //创建字节输入流 FileInputStream fis = new FileInputStream("FileInputStreamTest.java");原创 2012-03-27 15:32:36 · 36454 阅读 · 2 评论 -
java.lang.IllegalArgumentException: Control character in cookie value or attribute
java.lang.IllegalArgumentException: Control character in cookie value or attribute. 出现这个错误,冷静!一般跟web.xml没什么关系,跟字符集类型也没什么关系,直接清理掉IE的Cookie即可 照此文参考解决链接原创 2017-02-08 09:59:07 · 1659 阅读 · 0 评论 -
初学Java,面向接口编程,命令模式(十八)
命令模式 :把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。命令模式就像是把“处理行为”作为参数传入一个方法,这个“处理行为”用编程来实现就是一段代码public原创 2012-02-08 22:02:02 · 6708 阅读 · 19 评论 -
设置Java环境变量批处理脚本
@echo off set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment set javahome=C:\Program Files (x86)\Java\jdk1.7.0_40rem LPY echo. echo ******************转载 2014-08-29 17:22:41 · 2512 阅读 · 0 评论 -
Eclipse 3.7(代号Indigo) 中文字体太小解决办法
原文链接http://hi.baidu.com/lovearuis/blog/item/2316fd129caccd1b5aaf53b0.html升级到3.7Eclipse最直观的反映就是,中文怎么那么小啊………… 相当不方便。其实这是Eclipse的默认字体换了,以前的一直是Courier New,现在修改字体也找不到了,算了不找了。这次eclipse用的字体是Consolas,这是一个很好的编转载 2012-06-24 22:55:57 · 2042 阅读 · 0 评论 -
初学Java,IO之重定向标准输入\输出(四十五)
重定向标准输入/输出一共有三个方法setErr 重定向“标准”错误输出流setIn 重定向“标准”输入流setOut 重定向"标准"输出流下面使用重定向输出流把System.out输出重定向为向文件输出,而不是在屏幕上输出import java.io.*;public class RedirectOut{ public static void main(String[] args)原创 2012-05-23 22:01:14 · 5183 阅读 · 0 评论 -
初学Java,IO之推回输入流(四十四)
5月结婚的关系,这个月都没有时间翻一下书,学习一下Java,有损我学习Android的进度了,现在好不容易有了闲暇时间,马上来拉一下学习进度,呵呵~推回输入流是什么,我一开始看名字就有点费解,看了几个例子,大概知道它可以在读取流的时候,改写流的内容,或者跳过某些字符不读,又或者只读取流的一部分(两个重要方法,read(),unread()),下面是它的概念,我觉得写的都有点晦涩难懂了Pushbac原创 2012-05-16 14:33:55 · 2639 阅读 · 0 评论 -
初学Java,IO之使用转换流,读取键盘输入(四十三)
import java.io.*;public class KeyinTest { public static void main(String[] args) { BufferedReader br = null; try { //将system.in对象转换成Reader对象 InputStreamReader reader = new InputStream原创 2012-04-04 11:54:02 · 3009 阅读 · 1 评论 -
初学Java,IO之使用FileOutputStream和FileWriter写入文件(四十二)
import java.io.*;public class FileOutputStreamTest { public static void main(String[] args) throws IOException { FileInputStream fis = null; FileOutputStream fos = null; try { //创建字节输入流原创 2012-04-04 10:30:38 · 5709 阅读 · 0 评论 -
初学Java,IO之文件过滤器(四十)
FilenameFilter接口包含accpet 方法,该方法将依次对指定File的所有子目录,子文件夹进行迭代,如果该方法返回true,则list方法会列出该子目录或者子文件夹import java.io.*;class MyFileNameFilter implements FilenameFilter{ public boolean accept(File dir,String nam原创 2012-03-12 17:32:09 · 3673 阅读 · 0 评论 -
初学Java,IO之File用法(三十九)
import java.io.*;public class FileTest { public static void main(String[] args) throws IOException { //以当前路径来创建一个File对象 File file = new File("."); //直接获取文件名,输出一点 System.out.println(file.ge原创 2012-03-12 15:14:22 · 5992 阅读 · 0 评论 -
初学Java,Hashtable,HashMap,LinkedHashMap和Properties(三十一)
Hashtable,呵呵,这个类的命名有问题啊,table的T没有大写,而C#中就是HashTable,这个类很"老",在JDK1.0就出现了,可能当时并没有人发现它的命名问题,待到后来已经牵涉到太多的其它类,此时已经无法轻易的修改它的名字了,也就这么着了,属于历史遗留问题.Hashtable与HashMap这两个类似乎很像,但还是有区别的 ,Hashtable是一个线程安全的Map实现,但Has原创 2012-02-22 22:20:57 · 2361 阅读 · 0 评论 -
初学Java,jar命令详解(二十四)
JAR文件是个压缩包,其实就是一个类库,相当于.net世界里面的dll,里面放的都是编译编码后生成的字节码文件(xxx.class),另外会有一个清单文件META-INF/MANIFEST.MF其文件也是可以数字签名的,所谓增强安全性罗。下面罗列一些jar命令创建 jar文件 jar cf test.jar test 将当前路径下的全部内容生成一个test.jar文件,如果存在该文件,那么覆盖该原创 2012-02-14 22:17:45 · 1940 阅读 · 0 评论 -
初学Java,包的用法(九)
Java包的概念跟C#命名空间没什么区别,只是换个名称,语法还是有那么一点不同下面是定义一个叫lee的包package lee;public Class Test ......包的下面还可以定义子包Package lee.sub 这跟C#也是一样引用一个包的时候跟C#也不一样Java可以引用一个包里面的某个类,这种只引用一个包下的某个类的用法,在C#里没有,只能直接引用整个命名空间import p原创 2012-02-05 12:31:55 · 1622 阅读 · 0 评论 -
初学Java,调用父类方法(十一)
在Java的继承关键字是extends,而C#是一个冒点:他们子类调用父类的关键字也不同,Java 子类调父类方法是''super.父类方法名称'',C#是''base.父类方法名称''public void callOverrideMethod(){ //在子类中通过super 显式调用父类被覆盖的实例方法 super.fly();}public void callOverrideMet原创 2012-02-06 10:22:37 · 1599 阅读 · 0 评论 -
初学Java,在构造器中调用另一个构造器(十)
在Java中在构造器中调用另一个构造器,和C#的写法有又那么一点点的不同public class Apple{ public String name; public String color; public String weight; public Apple() {} //两个参数构造器 public Apple(String name,String color,double原创 2012-02-06 10:00:45 · 6631 阅读 · 0 评论 -
初学Java,形参长度可变的方法(八)
Java中如果在定义方法时,在最后一个形参的类型后增加三点(...),表明形参可以接受多个参数值,多个参数值被当成数组传入public class Varargs { //定义了形参长度可变的方法 public static void test(int a, String... Books) { //books被当成数组处理 for(String tmp : Books) {原创 2012-02-02 22:11:46 · 2472 阅读 · 5 评论 -
初学Java,方法中返回this,连续调用方法(六)
public class ReturnThis { public int age; public ReturnThis grow() { age++; //return this,返回调用该方法的对象 return this; } public static void main(String[] args) { ReturnThis rt = new ReturnT原创 2012-02-02 21:31:42 · 5957 阅读 · 0 评论 -
初学Java,foreach(五)
从JDK1.5开始,加入了foreach,Java中的foreach与c#中的略有不同public class TestForEachError{ public static void main(String[] args) { String[] books = {"J2EE","Struts2","Ajax"} for (String boo原创 2012-01-30 21:35:06 · 2176 阅读 · 0 评论 -
初学Java,跳出外层循环(四)
public class TestBreak2{ public static void main(String[] args) { //外层循环,outer作为标识符 outer: for (int i=0;i<5;i++) { for (int j=0;j<3;j++)原创 2012-01-30 21:14:12 · 2083 阅读 · 4 评论 -
初学Java,使用swicth与c#的不同(三)
在JAVA中,switch控制表达式的类型只能是byte,short,char和int在C#中,这点要方便些,起码可以用string类型原创 2012-01-30 17:43:01 · 1616 阅读 · 0 评论 -
初学Java,文档注释(二)
Java 有单行注释,多行注释,这C#都是有的,不过Java还可以生成文档注释,所谓文档注释,就是使用javadoc命令提示符根据你的源码文件类,包等相关的注释生成API文档.注意,默认情况下只生成public,protected 修饰的内容,如果需要生成private部分,需要增加-private 选项好像C#里面不能使用储如此类的功能,对C#估计有第三方工具或vs.studio可以生成吧,对这原创 2012-01-30 17:09:54 · 3188 阅读 · 2 评论 -
windows7 64位设置Java环境变量
计算机(右键)-属性-高级系统设置-环境变量1.新建系统变量 : JAVA_HOMEC:\Program Files (x86)\Java\jdk1.6.0_10(你的JDK安装路径)2.修改系统变量 :PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 3.新建系统变量:CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\li原创 2012-01-18 22:32:14 · 13376 阅读 · 4 评论 -
初学Java,判断类型是否可强制转换(十二)
if(objPri instanceof String){ String str = (String)objPri;}Java中的instanceof 运算符相当于C#中的is,都是判断一个对象是否是某个类型If(objB is typeA){ objA = (typeA)objB;}原创 2012-02-06 14:18:45 · 8985 阅读 · 0 评论 -
初学Java,toString(十四)
C#里面也有个ToString,注意大小写的不同Java的toString的和C#的ToString完全不是同一概念,首先toString是一个"自我描述"的方法,然后它可以被重写public class Person { private String name; public Person(String name) { this.name = name; } public vo原创 2012-02-07 14:25:15 · 3821 阅读 · 0 评论 -
初学Java,final关键字(十六)
之所以单独把这个关键字拿出来说是因为C#没有这个关键字,但C#却有与之不同场景下对应的不同关键字final 所修饰的不管是类,变量,还是方法,都是赋初值后不允许再修改的.而C#要达到同样目的话,需要用不同的关键字下面是一个比较类:Javapublic final class MyFinalClass {...}C#public sealed class MyFinalClass {...}相当于原创 2012-02-07 21:16:14 · 1365 阅读 · 0 评论 -
初学Java,对象的软,弱和虚引用(二十三)
java.lang.ref包下提供了三个类SoftReference,phantomReference WeakReference,分别代表软引用,虚引用和弱引用C#中没有这些概念强引用,最常见的引用,程序创建一个对象,并把这个对象赋值给一个引用变量,通过该引用来实际操作对象软引用,需要通过SoftReference类来实现,当一个对象只有一个软引用,它有可能被垃圾回收机制回收。内存空间足够时,不原创 2012-02-13 22:00:02 · 1411 阅读 · 0 评论 -
初学Java,枚举类(二十二)
Java的枚举类比C#枚举类更像类一点,因为它还可以定义属性和方法public enum Gender { MALE,FEMALE; private String name; public void setName(String name) { switch(this) { case MALE: if(name.equals("男")) {原创 2012-02-10 16:53:27 · 1763 阅读 · 0 评论