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);
最新文章
- aop配置
- C# socket编程实践——支持广播的简单socket服务器
- bt和wifi的共存
- (转载)IOS中UIScrollView的属性和委托方法
- Java实现队列
- gson使用注意事项
- C语言常用排序全解(转)
- 试着把.net的GC讲清楚(1)
- java map遍历、排序,根据value获取key
- Django--基本篇:项目结构与设计模式(MVC)
- Linux网络编程学习(七) ----- 有名管道(第四章)
- 20175202 《Java程序设计》第四周学习总结
- 1. jdk内存配置
- MyBatis核心接口和类
- HOJ 2985 Wavio Sequence(最长递增子序列以及其O(n*logn)算法)
- HDU1712:ACboy needs your help(分组背包模板)
- 在线js调试工具JSbin、jsFiddle
- 20145331 《Java程序设计》第2次实验报告
- C# 5.0中使用CallerMemberName、CallerFilePath和CallerLineNumber获取代码的调用方信息(转载)
- CGAffineTransform 视频旋转(转)