Java基础
Java_Web_Book
这个作者很懒,什么都没留下…
展开
-
String与StringBuffer
1、String类String是比较特殊的数据类型,它不属于基本数据类型,但是可以直接赋值,不使用new关键字进行实例化,但是也可以使用关键字new进行实例化。下面的代码都是合法的: String s1 = "this is a string!"; String s2 = new String("this is another string!");另外String在使用的使用也不需...2007-03-16 13:44:00 · 134 阅读 · 0 评论 -
NullPointerException异常
顾名思义,NullPointerException是空指针异常。但是在Java中没有指针,怎么会有空指针异常呢?在C++中,声明的指针需要指向一个实例(通过new方法构造),这个指针可以理解为地址。在Java中,虽然没有指针,但是有引用(通常称为对象引用,一般直接说对象),引用也是要指向一个实例对象(通过new方法构造)的,从这种意义上说,Java中的引用与C++中的指针没有本质的区别,不...2009-06-20 19:36:00 · 195 阅读 · 0 评论 -
java.lang.ClassCastException
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。这种异常是如何产生的呢?举一个比较形象的例子。Animal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码:Animal a1 = new Dog(); // 1...2009-06-25 16:54:00 · 311 阅读 · 0 评论 -
Java中成员变量和属性之间的关系
有人可能遇到这样的错误,明明在类中定义了某个成员变量,但是系统在运行的时候提示错误:属性XX没有定义。这是什么原因呢?大家知道成员变量有多种访问控制符,通常都应该把成员变量定义成私有的,然后为该成员变量提供set方法和get方法,外界通过set方法和get方法对成员变量进行操作。这样对外界来说,只有能够访问到的成员变量才算是属性,例如下面的代码:private String userNam...2009-07-01 08:20:00 · 212 阅读 · 0 评论 -
java.lang.ArrayIndexOutOfBoundsException异常分析及解决
这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界。下面是一个错误示例:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2at test4.State.nextStates(State.java:93)at test4.State.main(State.java:47...2009-08-26 10:52:00 · 252 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError错误的原因及解决方案
错误提示如下:java.lang.UnsupportedClassVersionError: Bad version number in .class file错误原因:编译Java和运行Java所使用的Java的版本不一致。例如,编译的时候使用的Java版本是6,运行时候使用的Java版本是5。解决方案:修改运行环境的Java版本或者修改编译环境的Java版本,让两者...2009-09-07 13:04:00 · 363 阅读 · 0 评论 -
Java注释(Annotation)
Java5中提供了新的注释(Annotation),能够为类提供额外信息,本文介绍了如何定义注释、如何使用注释和如何解析注释。1、定义注释package ch5;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.Reten...2010-05-26 16:10:00 · 113 阅读 · 0 评论 -
Java反射机制
Java中提供了Class类,可以通过Class类获取类的定义信息,包括包名、类名、类上的注释(Annotation)、类的修饰符、父类、继承的接口、构造方法、成员变量和成员方法。这些信息分别使用java.lang.annotation.Annotation、 java.lang.reflect.Constructor、java.lang.reflect.Field、java.lang.refle...2010-05-26 16:14:00 · 152 阅读 · 0 评论 -
Java中使用ResourceBundle访问资源文件(properties文件)
在程序中经常需要使用常量,如果直接写在程序里,改变这些字符串时必须重新编译,例如编写数据库应用的时候数据库驱动程序、URL、用户名和口令等信息,可以使用资源文件(Properties文件),Java中提供了ResourceBundle类来方便对属性文件的访问。本文介绍如何编写properties文件,如何访问,如何实现国际化。1、properties文件的编写文件的后缀名为.propert...2010-05-27 12:45:00 · 119 阅读 · 0 评论 -
Java变长参数
在Java5中提供了变长参数,也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如:print("hello");print("hello","lisi");print("hello","张三");下面介绍如何定义可变长参数以及如何使用可变长参数。1、可变长参数方法的定义使用...表示可变长参数,例如print(String... args){ ...2010-05-27 12:47:00 · 122 阅读 · 0 评论 -
谈谈强制类型转换
强制类型转换在Java中大量使用,与继承、接口实现、多态都相关,非常重要,如果没有强制类型转换,很多功能可能都没有办法实现。而在实际使用过程,对它的理解和使用总是有一些误解,下面对它进行比较详细的分析。首先看看两个场景。引子1:在课堂上问过学生这样一个问题:“在Java中如何把一个表示数字的字符串转换成数字呢?”在不同的班级中有多个同学回答:“使用强制类型转换”我继续问,“代码...2009-11-18 13:12:00 · 434 阅读 · 0 评论 -
Java代码编写规范
原文出处:http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html,译文出处:http://morningspace.51.net/,moyingzz@etang.com 1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下...2007-09-28 16:50:00 · 392 阅读 · 0 评论 -
HashMap对象的遍历
假设map是HashMap的对象,对map进行遍历可以使用下面两种方式: 第一种:得到元素的集合,然后进行运算,元素类型是Map.Entry。 Object[] o = map.entrySet().toArray(); //得到元素集合,然后转换成数组 Map.Entry x ; for(int i=0;i<map.size();i++) // 对数组进行遍历 { x = (Ma...2007-05-31 13:52:00 · 199 阅读 · 0 评论 -
HashSet类的用法
HashSet是实现Set接口的一个类,具有以下的特点:Ø 不能保证元素的排列顺序,顺序有可能发生变化。Ø 另外HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改Set中的值,就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果不存在这样的对象,可以使用Collections.synchronizedSet()方法完成。Set s = Co...2007-03-19 14:54:00 · 84 阅读 · 0 评论 -
Hashtable类的用法
实现了Map接口,是同步的哈希表,不允许类型为null的键名和键值。哈希表主要用于存储一些映射关系。这个类比较特殊,与Collection中的其它的类不太一样,首先它是同步的,另外它是继承自java.util.Dictionary类。一个典型的应用就是在连接数据库的时候,需要提供各种参数,包括主机、端口、数据库ID、用户名、口令等,可以把这些信息先存储在哈希表中,然后最为参数使用。下面通过...2007-03-19 14:56:00 · 265 阅读 · 0 评论 -
Math类的常用方法
封装了一些基本运算方法,包括进行三角运算的正弦、余弦、正切、余切相关的方法:例如,求正弦的sin,求余弦的cos等,如果使用的话可以参考JDK。下面的方法可能是我们经常要使用的:(1)求最大值,可以用于求int类型,long类型,float类型,double类型的最大值,下面仅仅下求整数最大值的方法的定义:public static int max(int a,int b);(2)...2007-03-19 14:57:00 · 228 阅读 · 0 评论 -
Vector类的用法
Vector类实现了AbstractList。Vector相当于动态数组,Java中我们定义数组之后,元素的个数不能发生变化,如果元素个数未知就不能使用数组,这时候就可以使用Vector。Vector对象可以存放各种对象。Vector是一个动态数组,所以在执行过程中,会随着元素的变化调整自身的容量。提供了4种构造函数:public Vector();默认的构造函数,用于创建一个空的数组...2007-03-19 14:59:00 · 184 阅读 · 0 评论 -
迭代器Iterator的用法
迭代器Iterator的用法和枚举一样,表示一些对象的集合,主要用于对数组进行遍历,定义如下:package java.util;public interface Iterator { boolean hasNext(); Object next(); void remove();}3个方法的作用如下:Ø hasNext(),判断是否有下一个...2007-03-19 15:04:00 · 250 阅读 · 0 评论 -
异常处理
异常处理认识异常首先看下面的代码:class User{ private String uname; private int age; public void setUname(String uname) { this.uname = uname; uname = new String(uname.getBytes("8859_1")); } ...2007-03-19 15:08:00 · 181 阅读 · 0 评论 -
面向对象的实现
面向对象的实现对象之间存在的关系如下:继承关系继承关系使用extends关键字来实现,通常父类具有的属性子类都有,另外子类会有一些特殊的属性,继承父类之后,只需要在子类中添加新的成员变量就可以了。这里需要关心的是这些成员变量在哪里进行初始化?对于子类新创建的成员变量肯定是在子类中就行初始化,通常情况下是在构造函数中进行初始化。对于从父类继承过来的成员变量可以在父类中初始化,也可以在...2007-03-19 15:09:00 · 142 阅读 · 0 评论 -
日期及其格式化
日期及其格式化1、java.util.Date类用于表示日期和时间,要获取当前时间,可以使用下面的代码: Date d = new Date(); System.out.println(d.toString());下面是输出的结果:Mon Feb 06 15:45:47 CST 2006如果想按照特定的格式进行输出,可以按照下面的方法完成,但是现在的版本中建议不要使用。...2007-03-19 15:10:00 · 130 阅读 · 0 评论 -
数字的格式化
数字的格式化在很多情况下需要对输出的信息进行格式化,尤其是当输入的内容为数字的时候,需要按照特定的格式进行输出。另外对运行的结果可能需要进行特殊的处理,例如结果只保留小数点后两位。对数字进行格式化可以使用下面的两个类:java.text.DecimalFormat java.text.NumberFormatNumberFormat是抽象类,所有主要使用DecimalFormat完...2007-03-19 15:12:00 · 102 阅读 · 0 评论 -
instanceof操作符
在进行强制类型转换的时候为了防止出现ClassCastException,需要进行判断,可以使用instanceof操作符。下面分别介绍instanceof操作符的基本用法、使用的场合以及注意事项。1、基本用法 instanceof操作符用于判断某个对象是否是某个类型的对象。 格式如下: o instanceof C o表示对象,C表示类型,如果o是C的对象表达式返回true,...2010-06-20 12:26:00 · 120 阅读 · 0 评论