1)静态注入:import static java.lang.Math.*;
就可以直接用里面的方法,不用再New个对象调用了
System.out.println(max(1,2));
System.out.println(abs(1-2.45));
2)可变参数:
public static int add(int x,int y ,int ... args){
int sum = x+y;
for (int i = 0; i < args.length; i++) {
sum+=args[i];
}
return sum;
}
调用方法:System.out.println(add(1, 2, 3));
3)For循环增强
for(type 变量名 :集合变量名){}
public static int add(int x,int y ,int ... args){
int sum = x+y;
/*for (int i = 0; i < args.length; i++) {
sum+=args[i];
}*/
for(int arg : args){
sum+=arg;
}
return sum;
}
4)基本类型的自动装箱和拆箱
自动装箱:Integer i = 3;
自动拆箱:System.out.println(i+4);
Integer i1 = 134;
Integer i2 = 134;
i1!==i2
而当,这是一种设计模式,叫享元模式
Integer i1 = 127;
Integer i2 = 127;
范围在-128~127之间
i1==i2为true,是共享同一个对象
i1== i2;//==比较两个的引用是否为同一个,也就比较引用,即内存地址
i1.equal(i2);//这个equals用来比较值
5)枚举
为什么用枚举
枚举是一个类,可以避免修改错误,设置了枚举就可以在后面的编程中选择属性。
比如定义:星期1~星期日
就永远不会错误的输入星期八……
public enum WeekDay{
//括号加上个参数表示用了第二个构造方法
a(2),b(),c,d,e,f,g;
private weekDay(){
System.out.println("first");
};
private weekDay(int day){
System.out.println("second");
};
}
枚举的遍历
for(int i=0;i<weekDay.values().length;i++){
weekDay[] day = weekDay.values();
System.out.println(day[i]);
}
一个交通灯的实现,用枚举方法
public enum Traficlight{
RED(30) {
@Override
public traficlight nextLight() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(45) {
@Override
public traficlight nextLight() {
// TODO Auto-generated method stub
return YELLOW;
}
},
YELLOW(20) {
@Override
public traficlight nextLight() {
// TODO Auto-generated method stub
return RED;
}
};
public abstract traficlight nextLight();
private int time;
private Traficlight(int time){
this.time = time;
}
}
traficlight greenLight = traficlight.GREEN;
System.out.println(greenLight.nextLight());//YELLOW;
当枚举只有一个成员的时候,就可以作为一种单例的实现方式