java ee5的新特性

1、标注

  一种元数据,作用分为三类:编写文档@Document、代码分析@Deparecated(过时的)和编译检查@override(重写)

2、EJB3

  EJB2的升级版,商业化的java bean,是轻量化的框架,引入了拦截器功能,

  拦截器:@Interceptors拦截器用来监听程序的一个或多个方法,它对方法调用提供了控制功能。

  

3、JPA

  Java Persistence API 数据持久化API 

   首先要了解ORM对象关系映射(Object Relational Mapping)技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换,从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”,将数据库中的表和java中的类相对应,将数据库中的字段和java中的对象相对应。

  在JPA出现之前,各种ORM框架之间的API差异很大,使用了某种ORM框架的系统会受制于该ORM的标准。JPA就是为了统一ORM技术,JPA本质上是一种ORM规范,并未提供ORM实现,具体的实现由各个数据库厂商提供。

  其中Hibernate就是这样的一个JPA。

4、Web Service

  客户端和服务器可以自由的利用HTTP进行通信,跨平台跨语言。

5、依赖注入(控制反转)

  对象A调用对象B不需要对象A去创建,而是使用Spring框架创建,再注入到对象A中。

  可以降低代码的耦合度,使得资源访问变得更加容易。

  例如:类A中用到一个类B的实例,而用依赖注入的方式是在applicationContext.xml文件里面写入如下内容:

    <bean id="id1" class="A"><property name="B" ref="id2"></bean>

    <bean id="id2" class="B"></bean>

6、泛型

  使用泛型为了指明可变的类型进行指明,允许程序员讲一个实际的数据类型的确定延迟到创建泛型的实例的时候。

  使得整个集合的数据类型统一化,避免之后造型带来的隐患。

  

public class A {
    public static void main(String[] args) {
        //不使用泛型
        ArrayList list=new ArrayList();
        list.add(2);
        list.add("asd");
        int a=(int)list.get(1);
        System.out.println(a);
        //使用泛型
        ArrayList<Integer> list1=new ArrayList();
        list.add(2);
        int b=(int)list.get(0);
        System.out.println(b);
    }
}

7、枚举

  枚举本质上就是一个命名变量的列表。对命名常量可以通过类似对象成员的方法或者通过方法values()、valueOf()、ordinal()、name()等方法进行存取。

  

public class A {
    public static void main(String[] args) {
      for(Week week:Week.values()){
          System.out.println(week);
      }
    }
    public enum Week{
        Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday;
    }
}

8、增强的for循环即:foreach用法

9、可变参数

  在参数列表中有三个点代表不定数量的参数

public class A {
    public static void main(String[] args) {
        System.out.println(add(2,3));
        System.out.println(add(2,3,4,5));
    }
    public static int add(int...args){
        int sum=0;
        for(int i=0;i<args.length;i++){
            sum+=args[i];
        }
        return sum;
    }
}

10、静态导入

  import static java.lang.System.*;

  out.println(2);

原文地址:https://www.cnblogs.com/television/p/8524730.html