(1)静态导入
·import 语句可以导入一个类或某个包中的所有类。
·import static语句导入一个类中的某个静态方法或所有静态方法
静态导入与编译器语法设置:
import 可以导入一个类或者一个包下的所有的类,
而import static 可以导入某个类中的一个静态方法或所有的静态方法。
我们调用静态方法都是 类名.方法的方式进行调用,
有了import static 就可以不用写类名(jdk1.5或更高的版本),而直接写方法名了,
只是介绍有 这个一个知识点,但是并不常用因为没有多大的意义。
·语法举例:
-import static java.lang.Math.sin;
-import static java.lang.Math.*;
-System.out.println(add(2,3,5));
-System.out.println(add(1,2,3,5));
·可变参数的特点:
(1)只能出现在参数列表的最后。
(2) ...位于变量类型和变量名称之间,前后有无空格都可以。
(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数.
语法:for(VariableModifies(可选) type 变量名: 集合变量名) {....}
注意事项:(1)迭代变量必须在()中实现!
·import 语句可以导入一个类或某个包中的所有类。
·import static语句导入一个类中的某个静态方法或所有静态方法
静态导入与编译器语法设置:
import 可以导入一个类或者一个包下的所有的类,
而import static 可以导入某个类中的一个静态方法或所有的静态方法。
我们调用静态方法都是 类名.方法的方式进行调用,
有了import static 就可以不用写类名(jdk1.5或更高的版本),而直接写方法名了,
只是介绍有 这个一个知识点,但是并不常用因为没有多大的意义。
·语法举例:
-import static java.lang.Math.sin;
-import static java.lang.Math.*;
- import static java.lang.Math.*;
- public class StaticImport {
- public static void main(String[] args){
- int x = 1;
- try {
- x++;
- } finally {
- System.out.println("template");
- }
- System.out.println(x);
- System.out.println(max(3, 6));
- System.out.println(abs(3 - 6));
- }
- }
(2)可变参数
-System.out.println(add(2,3,5));
-System.out.println(add(1,2,3,5));
·可变参数的特点:
(1)只能出现在参数列表的最后。
(2) ...位于变量类型和变量名称之间,前后有无空格都可以。
(3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数.
(3)java5的增强的for循环:
注意事项:(1)迭代变量必须在()中实现!
(2)集合变量可以是数组或者实现了Iterable接口的集合类
- public class VarableParameter {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(add(2,3));
- System.out.println(add(2,3,5));
- }
- public static int add(int x,int... args){
- int sum = x;
- /*
- *
- for(int i=0;i<args.length;i++){
- sum += args[i];
- }
- */
- for(int arg : args){
- sum += arg;
- }
- return sum;
- }
- }
(4)自动拆装箱
<1>Integer iObj = 3;自动把一个 基本数据类型 装成了一个 Integer对象,再赋值给 引用变量iObj。
<2> System.out.println(iObj + 12); iObj是 Integer类型,而Integer类型不支持“+”法。必须要把其 变成 基本类型 才支持加法。
<3>:
·基本数据类型的对象缓存:
在对Integer对象的 -128~127 之间的数字的时候,使用了享元模式设计(flyweight)。
导致num1==num2 是true,即是同一个对象。
有很多个小的对象,它们有很多属性相同,就把他们变成相同的对象,
那些不同的属性把它变成方法的参数,称之为外部状态。
那些相同的属性称之为这个对象的内部状态。
- public class AutoBox {
- /**
- *
- * 基本类型的自动拆装箱
- *
- *
- * @param args
- */
- public static void main(String[] args) {
- // 自动装箱
- Integer iObj = 3;
- // 自动拆箱
- System.out.println(iObj + 12);
- Integer num1 =12;
- Integer num2 =12;
- System.out.println(num1==num2);// --true
- Integer num3 =129;
- Integer num4 =129;
- System.out.println(num3 == num4);// --false
- Integer num5 =Integer.valueOf(12);
- Integer num6 =Integer.valueOf(12);
- System.out.println(num5==num6);// --true
- Integer num7 =Integer.valueOf(212);
- Integer num8 =Integer.valueOf(212);
- System.out.println(num7==num8);// --false
- }
- }