Java 9 已在路上,程序员们都准备好了吗?

  • 时间:
  • 浏览:1

long Math.safeAdd(long value1, long value2)

8.map集合支持并发请求,且可不可不上能写成 Map map = {name:"xxx",age:18};

3.语法上支持集合,而不一定是数组

2.运用List tempList = new ArrayList<>(); 即泛型实例化类型自动推断

5.Boolean类型反转,空指针安全,参与位运算

long Math.safeAdd(long value1, int value2)

int Math.safeAdd(int value1, int value2)

Boolean Booleans.negate(Boolean booleanObj)

int Math.safeSubtract(int value1, int value2)

boolean Booleans.and(Boolean[] array)

int Math.safeNegate(int value)

long Math.safeSubtract(long value1, int value2)

True => False , False => True, Null => Null

c, Documented

指出被定义的annotation被视为所熟悉的线程单元的公开API之一

被@Documented标注的annotation会在javadoc中显示,这在annotation对它标注的元素被客户端使用时有影响时起作用

d, Inherited

该meta-annotation应用于目标为class的annotation类型上,被此annotattion标注的class会自动继承父类的annotation

long Math.safeSubtract(long value1, long value2)

Java7:

1,switch中可不可不上能使用字串了

String s = "test";

switch (s) {

case "test" :

System.out.println("test");

case "test1" :

System.out.println("test1");

break ;

default :

System.out.println("break");

break ;

}

File System.getUserHomeDir() // 当前用户目录

Java5:

1、泛型 Generics:

引用泛型事先,允许指定集合里元素的类型,免去了强制类型转换,但会 能在编译时刻进行类型检查的好处。Parameterized Type作为参数和返回值,Generic是vararg、annotation、enumeration、collection的基石。

A、类型安全

离开List、Map,使用List、Map给它们添加元素肯能使用Iterator遍历时,编译期就可不可不上能你可不可不上能检查出类型错误

B、最好的依据 参数和返回值添加了Type

离开List、Map,使用List、Map

C、不都要类型转换

List list=new ArrayList();

String str=list.get(i);

D、类型通配符“?”

假设有有1个 打印List中元素的最好的依据 printList,亲戚亲戚让我们都都希望任何类型T的List可不可不上能被打印:

代码:

public void printList(List<?> list,PrintStream out)throws IOException{

for(Iterator<?> i=list.iterator();i.hasNext();){

System.out.println(i.next.toString());

}

}

肯能通配符?让亲戚亲戚让我们都都的参数类型过于广泛,亲戚亲戚让我们都可不可不上能把List<?>、Iterator<?> 修改为

List<? Extends Number>、Iterator<? Extends Number>限制一下它。

2、枚举类型 Enumeration:

3、自动装箱拆箱(自动类型包装和解包)autoboxing & unboxing:

简单的说是类型自动转换。

自动装包:基本类型自动转为包装类(int ——Integer)

自动拆包:包装类自动转为基本类型(Integer——int)

4、可变参数varargs(varargs number of arguments)

参数类型相同時 ,把重载函数合并到同時 了。

如:public void test(object... objs){

for(Object obj:objs){

System.out.println(obj);

}

}

5、Annotations 它是Java中的metadata

A、Tiger中预定义的四种 标准annotation

a 、Override

指出某个method覆盖了superclass 的method当帮我覆盖的最好的依据 名拼写错时编译不通过

b、Deprecated

指出某个method或element类型的使用是被阻止的,子类将只能覆盖该最好的依据

c、SupressWarnings

关闭class、method、field、variable 初始化的编译期警告,比如:List那末 使用 Generic,则@SuppressWarnings("unchecked")添加编译期警告。

B、自定义annotation

public @interface Marked{}

C、meta-annotation

肯能说annotation的annotation

四种 标准的meta-annotation详细定义在java.lang.annotaion包中:

a, Target

指定所定义的annotation可不可不上能用在什么线程单元上

肯能Target那末 指定,则表示该annotation可不可不上能使用在任意线程单元上

代码

Java6:

1、引入了有有1个 支持脚本引擎的新框架

2、UI的增强

3、对WebService支持的增强(JAX-WS2.0和JAXB2.0)

4、一系列新的安全相关的增强

5、JDBC4.0

6、Compiler API

7、通用的Annotations支持

6、新的迭代搞笑的话(for(int n:numbers))

7、静态导入(import static )

8、新的格式化最好的依据 (java.util.Formatter)

formatter.format("Remaining account balance: $%.2f", balance);

9、新的线程模型和并发库Thread Framework

HashMap的替代者ConcurrentHashMap和ArrayList的替代者CopyOnWriteArrayList

在大并发量读取时采用java.util.concurrent包里的一点类会让亲戚亲戚让我们都都满意BlockingQueue、Callable、Executor、Semaphore...

boolean Booleans.xor(Boolean[] array)

boolean Booleans.xor(boolean[] array)

File System.getJavaHomeDir() // JRE的安装目录

File System.getJavaIoTempDir() // IO临时文件夹

final List piDigits = [ 1,2,3,4,5,8 ];

4.新增一点取环境信息的工具最好的依据

boolean Booleans.or(boolean[] array)

boolean Booleans.or(Boolean[] array)

long Math.safeMultiply(long value1, long value2)

long Math.safeNegate(long value)

long Math.safeMultiply(long value1, int value2)

6.有有1个 char间的equals

boolean Character.equalsIgnoreCase(char ch1, char ch2)

int Math.safeMultiply(int value1, int value2)

D, Annotation的反射

亲戚亲戚让我们都都发现java.lang.Class有一点与Annotation的反射相关的最好的依据 ,如getAnnotations、isAnnotationpresent

亲戚亲戚让我们都可不可不上能利用Annotation反射来做一点事情,比如自定义Annotation来做Model对象验证

代码

File System.getUserDir() // 启动java线程时所在的目录5

boolean Booleans.and(boolean[] array)

7.安全的加减乘除

int Math.safeToInt(long value)

b, Retention

指出Java编译期怎么上能对待annotation

annotation可不可不上能被编译期丢掉,肯能保留在编译过的class文件中

在annotation被保留时,它也指定否有 会在JVM加载class时读取该annotation

代码