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);
java ee5的新特性的更多相关文章
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- Java 8的新特性—终极版
作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...
- Java 9和Java 10的新特性
http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...
- Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结
Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...
- JDK 15 JAVA 15的新特性展望
目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: T ...
- Java最近版本新特性使用介绍
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在阅读<Thinking in Java>的过程中,并发这一章出现不少新特性,工作中也有 ...
- Java API —— JDK5新特性
JDK5新特性 自动拆装箱.泛型.增强for.静态导入.可变参数.枚举 1.增强for概述 1)简化数组和Collection集合的遍历 2)格式: ...
- Java SE 6 新特性: Java DB 和 JDBC 4.0
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...
- Java SE 6 新特性: 对脚本语言的支持
2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...
随机推荐
- UML期末绘图及细节总结
往届期末绘图的题目例如以下所看到的: Read the providing materials carefully, and then do tasks. 2.1: Use Case Diagram ...
- 使用Swift和SpriteKit写一个忍者游戏
这篇文章的游戏使用SpriteKit和Swift语言来完毕. SpriteKit是苹果自己的游戏引擎,更能贴合iOS系统底层的API,只是架构和实现上都是模仿了Cocos2D.所以使用上事实上区别不大 ...
- 0x37 容斥原理与莫比乌斯函数
多重集的组合数公式得记下.cf451E就是这个的裸题 #include<cstdio> #include<iostream> #include<cstring> # ...
- 杂项-DB:ETL(数据库仓库技术)
ylbtech-杂项-DB:ETL(数据库仓库技术) ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).交互转换(transfor ...
- 体系化认识RPC--转
原文地址:http://www.infoq.com/cn/articles/get-to-know-rpc?utm_source=infoq&utm_medium=popular_widget ...
- java实现sql批量插入参数
背景: 需要更新一些不规范的时间格式,如将某个时间格式化为yy-MM-dd,实际上为 yy-MM-dd hh:mm:ss,并且需要提供回滚脚本. 例如:规范化时间的脚本如下: ,) WHERE tes ...
- 【node.js web项目】解决路由默认是hash模式(带#)
[概念讲述] 1.什么是hash模式 Vue+WebPack项目,本身是一个单页应用. vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 ...
- C++内存分配方式——小结
1 内存分配方式 内存分配方式有如下三种: 从静态存储区域分配.内存在程序编译的时候就分配好了,这些内存在整个程序运行期间都存在,如全局变量.static变量等等. 在堆栈上分配.在函数执行期间,函数 ...
- 陆、jq基础语法
一.概述:更加方便的处理html文档.events事件.动画效果和ajax交互等. 1.jq主要功能: (1)访问页面框架的局部. (2)修改页面表现 (3)更改页面的内容 (4)响应事件 (5)为页 ...
- Codeforces Round #493 (Div. 2) B. Cutting 前缀和优化_动归水题
不解释,题目过水 Code: #include<cstdio> #include<cmath> #include<algorithm> using namespac ...