文章会有【原创】或者【转载】标示,部分来自Google Baidu的学习结果 {Java/PHP/Python/Ruby/Go}

Java 在学习四十五【原创】  


Java JDK新特性


1:静态导入;

2:自动装箱拆箱;

3:可变参数;

4:增强for循环;

5:枚举;

6:注解;

7:泛型;

8:线程框架;


静态导入后访问就不需要类名.操作,用的比较少;


package ioJava;


import static java.lang.Math.PI;

import static java.util.Calendar.getInstance;


import java.util.Calendar;


public class Test18 {


public static void main(String[] args) {

System.out.println(PI);

Calendar calendar = getInstance();

System.out.println(calendar.get(Calendar.YEAR));

System.out.println(calendar.get(Calendar.MONTH) + 1);

System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

}


}


针对的是基本数据类型和封装类;

1):基本类型可以直接转换成封装类的实例装箱

2):封装类可以直接换成基本的数据类型    拆箱



自动装箱对于byteintlongshort -128 ~127之间

对于chat 0 ~ 127之间存在享元模式

Integer n1 = 1; // 自动装箱

Integer n2 = new Integer(10);

int a = n2; // 自动拆箱

System.out.println(a);

//使用享元模式 -128 ~127

Integer n6 = 10;

Integer n7 = 10;

//没有使用享元模式,这时候使用new Integer

Integer n8 = 128;

Integer n9 = 128;

System.out.println(n6 == n7);

System.out.println(n8 == n9);

//HashMap key/val都必须是Object


可变参数:

System.out.println(add(new int[]{1, 2 , 3, 4, 5}));

System.out.println(add2(1, 2 , 3, 4, 5));

System.out.println(add2(1));

System.out.println(add2(new int[]{1, 2 , 3, 4, 5}));

//写一个加法希望能完成任意整数的相加

public static int add(int[] a) {

int sum = 0;

if (a.length == 0) {

return sum;

}

for (int i = 0; i < a.length; i++) {

sum += a[i];

}

return sum;

}

//可变参数

public static int add2(int ... a) {

int sum = 0;

if (a.length == 0) {

return sum;

}

for (int i = 0; i < a.length; i++) {

sum += a[i];

}

return sum;

}


【注意】:可变参数必须放在最后,只能有一个; 可变参数可以重载;

package ioJava;


import java.lang.reflect.Method;


public class Test19 {


public static void main(String[] args) {

try {

// 使用反射

Anan anan = new Anan();


// 使用无参数的

Class<? extends Anan> class1 = anan.getClass();

Method method = class1.getMethod("anan", new Class[] {});

method.invoke(anan, new Object[] {});


Method method2 = class1.getMethod("anan");

method2.invoke(anan);


// 一个参数的

Method method3 = class1.getMethod("anan", new Class[] { int.class });

method3.invoke(anan, new Object[] { 10 });


Method method4 = class1.getMethod("anan", int.class);

method4.invoke(anan, 10);


// 多个参数的

Method method5 = class1.getMethod("anan", new Class[] { int.class, int.class, int.class });

method5.invoke(anan, new Object[] { 10, 10, 10 });


Method method6 = class1.getMethod("anan", int.class, int.class, int.class);

method6.invoke(anan, 10, 10, 10);

} catch (Exception e) {

e.printStackTrace();

}

}

}


class Anan {


public void anan(int a, int b, int c) {

System.out.println(a + b + c);

}


public void anan(int a) {

System.out.println(a);

}


public void anan() {

System.out.println("Hello Anan");

}

}


增强数组:

package ioJava;


import java.util.ArrayList;


public class Test20 {


public static void main(String[] args) {

// TODO Auto-generated method stub

int[] a = { 1, 2, 3, 4, 5 };

for (int i = 0; i < a.length; i++) {

System.out.println(a[i]);

}


for (int i : a) {

System.out.println(i);

}


ArrayList<String> list = new ArrayList<String>();

list.add("aa");

list.add("bb");

for (String s : list) {

System.out.println(s);

}

}


}