1. java中处理错误情况有两种,1 Error,2 Exception
error是无法处理的,Exception是可以处理的情况。
Exception中又有两种情况,RuntimeException和编译时异常。
1)如果异常是运行时异常,则可以声明抛出异常,也可以不声明。可以处理异常,也可以不处理异常。
2)如果异常是编译异常,则必须声明抛出异常,也必须处理异常。
2. 集合类HashSet,如果添加元素,1)会先看他的hashCode是否相同,如果相同 2)则调用equals方法,看是否相等,如果还相等则认为是相同元素。不再添加。
TreeSet内部是一颗红黑树,所以是有顺序的。添加的元素如果不具有自然顺序,则需要实现Comparable接口。
3. 在泛型中没有多态的概念,左右两边必须一致,可以一边不写。
比如:ArrayList<String> names = new ArrayList<String>(); ArrayList names = new ArrayList<String>(); ArrayList<String> names = new ArrayList();都是可以的。而ArrayList<Object> names = new ArrayList<String>(); 或ArrayList<String> names = new ArrayList<Object>();都是不合法的。
4。 泛型
可以理解为数据类型的占位符,或数据类型的变量。
泛型方法,定义格式:访问修饰符 泛型变量声明 返回类型 函数名(参数列表。。。)。泛型类型的确定时间是实参传递进来时。
比如:public static <T> T add(T t)
泛型类
定义格式:class MyClass<T>{...},泛型类型的确定时间是实现接口时,可以指定接口中声明的泛型类型,也可以延迟到创建对象时指定泛型类型,此时需要接着声明泛型<T>。
泛型接口定义格式
interface MyInterface<T>{...}
如果想在创建接口实现类时指定自定义泛型数据类型,数据定义格式
class MyClass<T> implements MyInterface<T>{...}。
注意:接口中声明的自定义泛型,仅可以用在接口中声明的函数。类中声明的自定义泛型,仅可以用在类的函数中。
5. IO流
注意转换流的两个作用,1)将字节流转换成字符流InputStreamReader,或者将字符流转换成字节流OutputStreamWriter。2)指定字符编码格式。
6。 内省
当需要通过字符串来设置对象的属性时,可以使用apatch 提供的包commons-beanutils里面的setProperty方法,方便设置对象的属性,使用的前提条件是类已经将各个属性的setter和getter设置好。