1.可变参数
public void add(int... nums){
int sum = 0;
for(int i=0; i<nums.length; i++){
sum += nums[i];
}
System.out.println(sum);
}
注意:当有多种参数时,可变参数放在最后
2.foreach
public void add(int[] nums){
int sum = 0;
for(int num : nums){
sum += num;
}
System.out.println(sum);
}
注意:foreach最早在C#中使用;用于替换for循环
3.静态导入
package xyz.pascall.study;
import static java.util.Calendar.*;
public class StaticImport {
public static void main(String[] args) {
System.out.println(DAY_OF_MONTH);
}
}
注意:在导入包下方法的时候,一定要添加static关键词;使用时直接指定方法名即可
4.泛型
package xyz.pascall.study;
import java.util.List;
import java.util.Map;
public class StaticImport {
public static void main(String[] args) {
String name = new GenericityDemoOne<String>("小明").getT();
System.out.println(name);
}
}
/**
* 简单泛型使用
* @author zhang
*
* @param <T>
*/
class GenericityDemoOne<T>{
private T t;
public GenericityDemoOne(T t) {
this.t = t;
}
public T getT() {
return t;
}
}
/**
* 泛型在方法上使用
* @author zhang
*
*/
abstract class GenericityDemoTwo{
/**
* 泛型在方法上声明
* @param t
*/
public static <T extends Object> void show(T t) {
System.out.println(t);
}
/**
* 通配符使用,泛型在方法参数上声明
* @param list
*/
public static void show(List<? extends Object> list) {
System.out.println(list);
}
/**
* 泛型在抽象方法上使用
* @param map
*/
public abstract <S, I> void show(Map<S, I> map);
}
注意:
- 类在定义的时候使用一个标记,该标记为数据类型;
- 泛型解决向下类型转化出错问题;
- 泛型不能为基本数据类型,是能使引用数据类型;
- 通配符“?”,可以配置不同类型的泛型;
- ? extends 类:设置泛型上限(可在 声明和方法参数 上使用)
- ? super 类:设置泛型下限(可在 方法参数 上使用)
- 泛型可以定义类和接口,使用泛型时,注意声明泛型(通配符除外)
- JDK 1.7及以后,在实例化泛型类型时,可以不用在右边声明数据类型(List<String> list = new ArrayList<>();)
5.枚举
package xyz.pascall.study;
public class Enumeration {
public static void main(String[] args) {
Color red = Color.RED;
System.out.println(red.getName());
}
}
/**
* 枚举
* @author zhang
*
*/
enum Color{
/**
* 定义实例化Color类
*/
RED("红色"), GREEN("绿色");
// 定义枚举属性
private String name;
private Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
注意:
- 枚举类中定义的实例化必须放在类中最上面;
- enum和Enum关系:enum是关键词,Enum是类;用enum定义的枚举=一个类继承了Enum抽象类;
- Enum类的构造方法使用protected关键词修饰,属于构造方法私有化;
- 枚举支持switch,枚举属于高级的多例模式
6.Annotation(JDK 1.5最大特色)
package xyz.pascall.study;
/*
* Annotation中三种基本注解使用
*/
public class AnnotationDemo{
/**
* Override:用于准确覆写父类的方法,否则编译时出错
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
/**
* Deprecated:用于声明方法过期
*/
@Deprecated
public void sayHello() {
System.out.println("Hello");
}
/**
* SuppressWarnings:用于压制多个警告
*/
@SuppressWarnings("unused")
private String title;
}
注意:
- Annotation利用注解的形式来实现程序的不同功能;
- Annotation有三种基本注解:@Override, @Deprecated, @SuppressWarnings
来源:https://www.cnblogs.com/pascall/p/9796888.html