当前位置: 首页 > news >正文

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

相关文章:

  • [LuoguP1141]01迷宫
  • webpack学习笔记1
  • POJ2187 旋转卡壳 求最长直径
  • 《Java并发编程的艺术》--Java中的锁
  • win10 vs2015源码编译tesseract4.0
  • Go语言备忘录(2):反射的原理与使用详解
  • ubuntu16.04 更换源
  • Django中间件middleware
  • 结构图
  • libimobiledevice --Mingw32交叉编译
  • 在c:forEach作用域外使用标签所产生的值
  • 04-手机套餐:建造者模式
  • css总结1:position定位:absolute/relative/fixed
  • zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)
  • SQL循环语句 详解
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 《深入 React 技术栈》
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • java多线程
  • js继承的实现方法
  • ng6--错误信息小结(持续更新)
  • nodejs:开发并发布一个nodejs包
  • spring boot下thymeleaf全局静态变量配置
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 安装python包到指定虚拟环境
  • 第十八天-企业应用架构模式-基本模式
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 我建了一个叫Hello World的项目
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 如何用纯 CSS 创作一个货车 loader
  • # 计算机视觉入门
  • #大学#套接字
  • $.ajax,axios,fetch三种ajax请求的区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (0)Nginx 功能特性
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Python) SOAP Web Service (HTTP POST)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)ObjectiveC 深浅拷贝学习
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .Net 4.0并行库实用性演练
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core 控制台应用程序读取配置文件app.config
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)