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 ...
随机推荐
- [总结]FFMPEG视音频编解码零基础学习方法【转】
本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/15811977 在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFM ...
- mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储
摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...
- Java悲观锁和乐观锁
悲观的并发策略——Synchronized互斥锁 互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进 ...
- struts2学习之基础笔记6
第十一章 Struts 2的国际化 1 国际化简介 http协议,request_locale值 Locale类àà封装类request_locale值 ResourcesBandleàà ...
- SQL Server死锁排查
1. 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态. 死锁的四个必要条件:互斥条件(Mutua ...
- learn cmake
cmake简介 在cmake出现之前,在linuxiax下,大型软件系统一般使用make来控制编译过程,而在Windows下可能是用vs下一个project来构建.一个复杂的系统本身依赖关系就很麻烦, ...
- Thinkphp开源框架如何使用?
(一)首先是准备工作下载thinkPHP框架最新版本,解压缩到你将要开发的项目位置.杭州php操作演示如图: 其中index.php是入口文件,即所有的请求都要经过此文件才能够完成.Applicati ...
- CorelDRAW X6冰点价加推800套燃爆6月
CorelDRAW是迄今最具创意的图形设计程序,并获得所有行业的公认的知名工具.在刚刚结束的CorelDRAW X6限量活动之后,CorelDRAW官方继续加推800套CorelDRAW X6满足用户 ...
- 扩大缩小Linux物理分区大小
由于产品在不同的标段,设备硬盘也不同, 有些500G,有些320G有些200G,开始在大硬盘上做的配置,想把自己定制好的Linux克隆到小硬盘上,再生龙会纠结空间大小的问题, 因此需要做一些分区的改变 ...
- map————两个数组的交集(2)
class Solution { public: vector<int> intersect(vector<int>& nums1, vector<int> ...