黑马程序员-JAVA基础加强-新特性简介

来源:互联网 发布:车载空气净化器 知乎 编辑:程序博客网 时间:2024/04/28 19:04
------- android培训、java培训、期待与您交流! ---------

静态导入、可变参数、自动拆箱与装箱和享元模式

StaticImport  静态导入。
    当类名重名时,需要指定具体的包名。
    当方法重名时,指定具备所属的对象或者类。
    import后面跟Static时导入的是某个类的所有静态成员,导入后调用方法时可以省略类名。
import java.util.*;import static  java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。import static java.util.Collections.*;import static  java.lang.System.*;//导入了System类中所有静态成员。class  StaticImport //extends Object{public static void main(String[] args) {out.println("haha");int[] arr = {3,1,5};sort(arr);//Arrays.导入静态后省略int index = binarySearch(arr,1);out.println(Arrays.toString(arr));//不能省略Arrays.因为Object里面也有toString方法,所以需要指定System.out.println("Index="+index);ArrayList al = new ArrayList();al.add(1);out.println(al);sort(al);out.println(al);}
可变参数:  
    public static int add(int x,int ...args)//...就是可变参数
可变参数的特点:
    只能出现在参数列表的最后
    ...位于变量类型和变量之间,前后有无空格都可以
    调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(add(1,2,3,5));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];}return sum;}
增强for循环
语法:
    for ( type 变量名:集合变量名 ) { … }
注意事项:
    迭代变量必须在( )中定义!
    集合变量可以是数组或实现了Iterable接口的集合类
举例:
public static int add(int x,int ...args) {    int sum = x;    for(int arg:args)    {    sum += arg;   }   return sum;}  
自动拆箱与装箱
    Integer x=4//自动装箱相当于Integer x=new Integer(4)
    x=x+2;//x+2,x进行自动拆箱,变成了int类型。拆箱的过程相当于调用x.intvalue()和2进行加法运算,在将他们的和进行装箱赋给x.
    Integer m = 129;
    Integer n = 129;
    System.out.println("m==n:"+(m==n));//结果为flase,因为越界开辟了新空间,因为byte的范围是-127—127.
享元模式 
    将那些值比较小的整数、a-z,26个字母缓存起来放入常量池,当其他地方用到该常量或组成各个单词时,直接调用而不重新新建对象。
    有很多小的对象,它们有很多属性相同,把它们变成一个对象,那些不同的属性把他们变成方法的参数称之为外部状态。那些相同的属性称之为对象的内部状态。


------- android培训、java培训、期待与您交流! ---------
原创粉丝点击