从linux了解世界
分类: Java
2016-07-30 15:05:04
Package:静态导包把只是对类中的静态方法和静态成员变量说的,可以用*把一个类的所有静态内容导入,如果和自己定义的内容重名,实际执行自己的。
Collection有一个超级根接口iterable(map没有),实现这个接口才可以使用迭代器才可以使用foreach增强for循环(foreach底层还是用的迭代器)
增强for循环简化迭代器写法,只要实现了iterable接口或者是数组对象都可以使用,在迭代过程中也不可以改变集合元素个数,foreach相当于只读的遍历,要改变元素还是用iterator
可变参数:数据类型…变量名
一个方法使用了可变参数,那么调用该方法可以传递参数也可以不传递参数
可变参数实际上是一个数组对象,而且必须是最后的形参。不传参数,该数组也存在,只不过.length是0,传入null则数组就没有了。
包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
我们以 Integer 包装类为例,来看下包装类的特性。
Integer 包装类的构造方法:
如下代码所示:
Integer包装类的常用方法:
Parseint(“string”,2-36)2-36进制
Integer会把-128-127的对象缓存起来,因为使用率高:
Integer a=1;integer b=1;a==b为true
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
当integer和int类型比较时,会把integer自动拆箱
Integer a=1000;int b=1000;a==b为true
用包装类的valueOf转换字符串是最方便的
enum声明类继承了Serializable和Comparable两个接口。且采用enum声明后,该类会被编译器加上final声明(同String),故该类是无法继承的。枚举类的内部定义的枚举值就是该类的实例(且必须在第一行定义,当类初始化时,这些枚举值会被实例化)。枚举实例为public static final由于这些枚举值的实例化是在类初始化阶段,因为是枚举,所以不可以在外部new,因此构造方法必须是private的,也可以有抽象方法,但必须在对象中实现。
Enum sex{
Man(“ha”){
Public void print(){
Return;
}
},woman(“hey”)){
Public void print(){
Return;
}
};
String value;
Private Sex(string value){
This.value=value;
}
Public abstract void print();
}
反编译之后
public static final sex man=new sex(“ha”);
public static final sex woman=new sex(“hey”);
枚举类中也可以定义成员变量和方法,和一般类不同的是枚举类的实例对象是固定的,因此只可以用sex.man(woman).调用。或者sex a=sex.boy;用a调用。
枚举类可以用switch:
Sex a=sex.boy;
switch (a) {
caseboy: //case不用声明哪个枚举类,如果可以则可以sex.静态成员
break;
default:
break;
}