泛型高级之通配符
/*
* 泛型高级(通配符)
*
* ?:任意类型,如果没有明确,要么就是Object以及任意的Java类
* ? extends E:向下限定,E及其子类
* ? super E:向上限定,E及其父类
* */
增强for的概述和使用
/*
* 增强for:是for循环的一种
*
* 格式
* for (元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素;
}
*
* 好处:简化了数组和集合的遍历
*
* 弊端:增强for的目标不能为null
*
* 如何解决?
* 对增强for的目标先进行null的判断
*
* 增强for可以用来替代迭代器
* */
import java.util.List; /* * 增强for:是for循环的一种 * * 格式 * for (元素数据类型 变量 : 数组或者Collection集合) { 使用变量即可,该变量就是元素; } * * 好处:简化了数组和集合的遍历 * * 弊端:增强for的目标不能为null * * 如何解决? * 对增强for的目标先进行null的判断 * * 增强for可以用来替代迭代器 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = { 1, 2, 3, 4, 5 }; for (int x : arr) { System.out.println(x); } String strArray[] = { "hello", "world", "java" }; for (String x : strArray) { System.out.println(x); } List<String> list = null; if (list != null) { for (String x : list) { System.out.println(x); } } } }
静态导入的概述和使用
import static java.lang.Math.abs; import static java.lang.Math.max; import static java.lang.Math.pow; /* * 静态导入 * * 格式: * import static 包名...类名.方法名; * 可以直接导入到方法的级别 * * 静态导入的注意事项: * A:方法必须是静态的 * B:如果有多个同名的静态方法,容易不知道使用哪个。这个时候必须加前缀 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(abs(-100)); System.out.println(max(20, 30)); System.out.println(pow(2, 3)); } }
可变参数的概述和使用
/* * 可变参数:定义方法的时候不知道应该定义多少个参数 * * 格式: * 修饰符 返回值类型 方法名(数据类型... 变量名) { * } * * 注意: * 这里的变量其实是一个数组 * 如果一个方法有可变参数,并且有多个参数,那么可变参数肯定是最后一个 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub int result = sum(10, 20, 30, 40); System.out.println(result); } public static int sum(int... a) { int s = 0; for (int x : a) { s += x; } return s; } }