黑马程序员-----JDK1.5新特性-自动拆装箱、静态导入、枚举、可变参数、for循环增强

时间:2023-02-18 11:58:06

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

 

一、静态导入

 静态导入与导入的区别:
   导入,是指导入一个类或某个包中的所有类
   静态导入,是指导入一个类中的某个静态方法或某个类中的所有静态方法

 

import static java.lang.Math.*;

public class StaticImport {

public static void main(String[] args) {
int i = 0;
i++;
System.out.println(i);

//此为静态导入的示例
System.out.println(max(3,2)); //省略了Math.max();最大值
System.out.println(abs(3 - 5)); //省略了Math.abs();绝对值

}

}


 

二、Myeclipse设置

    一、工作间的切换:File-Switch Workspace
    二、视图与透视图的关系:视图包含透视图,每一个框都是一个视图,整个界面是一个透视图
    三、Debug调试:在需要调试的语句前双击,出现一个点,然后运行Debug,在Debug界面,选中变量右键选watch,会出现该变量的值,然后点下一步
    四、打开不小心关闭的视图:Window-->show View-->
    五、设置单个工程的编译器(javac)和运行(java):选中工程右键点Properties
    六、高版本的java可以运行低版本的javac
    七、设置和使用模板:
            使用:选中代码,右键Surround With-->
            设置:preferences-->java-->editor-->Templates

 

 

三、可变参数

JDK1.5以后新特性:可变参数,代表若干个参数
  1、该参数只能在列表最后
  2、参数用...表示

public class VariableParameter {
public static void main(String[] args) {
/*调用可变参数的方法前,编译器为该可变参数隐含创建一个数组,
在方法体中以数组的形式访问可变参数*/
method(3,4,5);
method(3,4,5,6);
}

public static void method(int a,int ... args){
int num = a;
//这里把可变参数当做数组来用
/*for(int i=0;i<args.length;i++){
num+=args[i];
}
System.out.println(num);*/

//JDK1.5以后新特性:for循环增强,arg代表数组中的每个元素值args[i],args代表数组名
for(int arg : args){
num+=arg;
}
System.out.println(num);
}

}


 

 

四、自动拆装箱

public class AutoBox {


public static void main(String[] args) {
//自动装箱
Integer i = 9;
//自动拆箱
System.out.println(i + 1);

//首先也会在池中产生一个"abc"
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1==s2); //false
String s3 = "abc";
String s4 = "abc";
System.out.println(s3==s4); //true

//如果基本数据类型在规定范围内,则首先会把该值缓存到池中,则会在池中产生一个2
Integer i3 = new Integer(2);
Integer i4 = new Integer(2);
System.out.println(i3==i4);
Integer i1 = 127; //范围要在 -128~127 之间
Integer i2 = 127; //范围要在 -128~127 之间
System.out.println(i1==i2);


Integer i5 = Integer.valueOf(3);
Integer i6 = Integer.valueOf(3);
System.out.println(i5==i6);

/*
* 享元设计模式(flyweight):
* 例一:
* 一个word文档中,会出现N多个字母,如果每个字母都定义成一个对象,浪费内存空间,如果定义26个对象,
* 字母相同的都是同一个对象,只不过是位置不同而已,这样就大大节约了空间和资源
* 例二:
* 电脑桌面图标中,分为txt文档和word文档等等,如果每一个文档定义成一个对象,浪费资源,
* 而每一种文档定义为一个对象,就大大节约了空间和资源
* */
}

}


 

 

五、枚举

特点:

1、枚举常量必须定义在第一行

2、构造方法必须用private修饰

3、如果该枚举只有一个成员,那么该枚举可以作为单例模式的一种实现方式

作用:控制某类型变量的值只能够是几个固定值中的某一个,否则就会报错

好处:

1、控制编译器,如果编译器出现了错误就无法通过

2、省略了public static final的书写形式

3、省略了私有化构造函数(private修饰)

4、省略了采用匿名内部类创建枚举常量的成员

 

[1]. 获取成员的名字:name() 默认值就是枚举成员的标示符名字(非静态)

[2]. 获取成员在所有枚举元素中的排名:ordinal() 按照定义时候书写顺序的排行(非静态)

[3]. 获取所有枚举成员构成的数组:values() (静态)

 

 

如果枚举里定义了抽象方法:

1、枚举成员必须实现这个抽象方法

2、不需要在类上添加abstract关键字,因为enum已经包含


  

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net