1. 静态导入:
import static 一个静态的类或者一个静态类下面的方法,使用时就不用写这一个静态类名。
2. 加强的for循环,形式:for( (访问修饰符) type 变量名:集合){。。。},变量的集合必须实现了iterable接口。
3. 可变参数传入:
形式:publice void add(int a,int… nums){
for(int num : nums){
sum += num;
}sum +=a;
}
可变参数以数组方式访问、并且在参数列表的最后。
4. 自动装箱与拆箱:
例:Integer a = 3(自动装箱); int b = a + 3(自动拆箱);
对于相等的int型数字,在-128到127之间自动装箱成为Integer类型后这两个对象是相等的,否则不相等。例:Integer i1 = 4;Integer i2 = 4;则i1等于i2;引入了“享元
设计模式” 多个对象含有相同的属性,把他们变成一个对象,不同的属性以方法参数形式传入,称为外部状态,相同属性称为内部状态。
5. java枚举:
枚举的构造方法,枚举的构造方法写在枚举元素的之后;如果枚举元素之后有代码,元素之后要加分号。枚举元素希望调用一个特定参数构造函数,在枚举元素之后加上参数即可。Java枚举的每一个元素都是一个类,打开源代码可以看到,使用一个类的子类生成实例:new 类名{子类构造函数或者一个返回此类的一个的方法}
public enum WeekDay{
SUN(1),MON(),TUE,WED,THI,FRI,SAT;
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}
6. 注解的使用:
自定义注解:
package com.itcast.d34;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
// RetentionPolicy.RUNTIME对应内存中的字节码,RetentionPolicy.CLASS对应class文件,
// RetentionPolicy.SOURCE对应源文件
@Retention(RetentionPolicy.RUNTIME)
// 指定注解的位置
@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
注解的使用:
package com.itcast.d34;
@MyAnnotation
public class AnnotationTest {
public static void main(String[] args) {
if (AnnotationTest.class.isAnnotationPresent(MyAnnotation.class)) {
MyAnnotation myAnnotation = (MyAnnotation)AnnotationTest.class.getAnnotation(MyAnnotation.class);
System.out.println(myAnnotation);
};
}
}
7. 泛型的使用