本章目标:
1.静态导入
2.自动装箱/拆箱
3.for-each循环
4.可变参数
5.枚举
1. 静态导入语句使用 import static 语句
1 导入指定类的单个静态属性:
2 import static java.lang.System.out
3 导入指定类全部静态属性
4 import static java.lang.Math.*
2.自动装箱与自动拆箱:
• 自动装箱(autoboxing):把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量
• 自动拆箱:把包装类对象直接赋给一个对应的基本类型变量
3.代码展示:
public static void main(String[] args) {
Integer a1=100;
Integer a2=100;
System.out.println(a1==a2);
System.out.println(a1.equals(a2));
int b1=100;
int b2=100;
System.out.println(b1==b2);
Integer c1=-127;
Integer c2=-127;
System.out.println(c1==c2);
System.out.println(c1.equals(c2));
// 在-128--127这个范围内直接赋值int数值,Integer不会new 对象;
Integer d1=Integer.valueOf(100);
Integer d2=Integer.valueOf(100);
System.out.println(d1==d2);
}
运行结果展示:
true true true true true true
4.使用foreach循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素,
forearch 循环自动遍历数组和集合的每个元素
for(type varName : array | collection) {
//varName 自动迭代访问每一个元素
}
public static void main(String[] args) { //增强型for循环,不是基于index下标去遍历的,可用Set来证明 List list=new ArrayList(); list.add("唐"); list.add("婷"); list.add("栎"); for (int i=0;i<list.size();i++){ System.out.println(list.get(i)); } for (Object li:list) { System.out.println(li); } Set set=new HashSet(); set.add("Tang"); set.add("Ting"); set.add("Yue"); for (Object se:set) { System.out.println(se); } }
5.若在定义方法时, 在最后一个形参的类型后增加三点(…), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入 可变形参只能处于形参列表的最后,
所以一个方法最多只能有一个长度可变的形参
public class Demo4 { public static void main(String[] args) { Demo4.fun("aa"); Demo4.fun("bb",1); Demo4.fun("cc",1,2,3); int[] arr = new int[]{10,20,30}; Demo4.fun("dd",arr); } public static void fun(String s,int... x){ System.out.println("___________"); System.out.println(x.length); for (int i: x) { System.out.println(i); }
心得:
上苍真的很公平,命运在向你关闭一扇窗的同时,又为你打开了另一扇窗。世上的任何事是多面的,
我们看到的只是其中的一个侧面,这个侧面让你痛苦,但痛苦往往可以转化。任何不幸,失败与损失,都有可能成为我们有利的因素。