JDK各版本新增的主要特性

JDK1.5新特性:

1.自动装箱与拆箱:

2.枚举

3.静态导入,如:import staticjava.lang.System.out

4.可变参数(Varargs)

5.内省(Introspector),主要用于操作JavaBean中的属性,通过getXxx/setXxx。一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。

6.泛型(Generic)(包括通配类型/边界类型等)

7.For-Each循环

8.注解

9.协变返回类型:实际返回类型可以是要求的返回类型的一个子类型

JDK1.6新特性:

1. AWT新增加了两个类:Desktop和SystemTray,其中前者用来通过系统默认程序来执行一个操作,如使用默认浏览器浏览指定的URL,用默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档等。后者可以用来在系统托盘区创建一个托盘程序

2.使用JAXB2来实现对象与XML之间的映射,可以将一个Java对象转变成为XML格式,反之亦然

3. StAX,一种利用拉模式解析(pull-parsing)XML文档的API。类似于SAX,也基于事件驱动模型。之所以将StAX加入到JAXP家族,是因为JDK6中的JAXB2和JAX-WS 2.0中都会用StAX。

4.使用Compiler API,动态编译Java源文件,如JSP编译引擎就是动态的,所以修改后无需重启服务器。

5.轻量级Http Server API,据此可以构建自己的嵌入式HttpServer,它支持Http和Https协议。

6.插入式注解处理API(PluggableAnnotation Processing API)

7.提供了Console类用以开发控制台程序,位于java.io包中。据此可方便与Windows下的cmd或Linux下的Terminal等交互。

8.对脚本语言的支持如: ruby,groovy, javascript

9.Common Annotations,原是J2EE 5.0规范的一部分,现在把它的一部分放到了J2SE 6.0中

10.嵌入式数据库 Derby

JDK1.7 新特性

1.对Java集合(Collections)的增强支持,可直接采用[]、{}的形式存入对象,采用[]的形式按照索引、键值来获取集合中的对象。如:

List<String>list=[“item1”,”item2”];//存

Stringitem=list[0];//直接取

         Set<String>set={“item1”,”item2”,”item3”};//存

         Map<String,Integer> map={“key1”:1,”key2”:2};//存

         Intvalue=map[“key1”];//取

2.在Switch中可用String

3.数值可加下划线用作分隔符(编译时自动被忽略)

4.支持二进制数字,如:int binary= 0b1001_1001;

5.简化了可变参数方法的调用

6.调用泛型类的构造方法时,可以省去泛型参数,编译器会自动判断。

7.Boolean类型反转,空指针安全,参与位运算

8.char类型的equals方法: booleanCharacter.equalsIgnoreCase(char ch1, char ch2)

9.安全的加减乘除: Math.safeToInt(longv); Math.safeNegate(int v); Math.safeSubtract(long v1, int v2);Math.safeMultiply(int v1, int v2)……

10 .Map集合支持并发请求,注HashTable是线程安全的,Map是非线程安全的。但此处更新使得其也支持并发。另外,Map对象可这样定义:Map map = {name:"xxx",age:18};

JDK1.8新特性

1.接口的默认方法:即接口中可以声明一个非抽象的方法做为默认的实现,但只能声明一个,且在方法的返回类型前要加上“default”关键字。

2. Lambda 表达式:是对匿名比较器的简化,如:

         Collections.sort(names,(String a, String b) -> {

       returnb.compareTo(a);

});

对于函数体只有一行代码的,你可以去掉大括号{}以及return关键字。如:

         Collections.sort(names,(String a, String b) -> b.compareTo(a));

或:Collections.sort(names, (a, b) -> b.compareTo(a));

3. 函数式接口:是指仅仅只包含一个抽象方法的接口,要加@FunctionalInterface注解

4. 使用 :: 关键字来传递方法或者构造函数引用

5.多重注解

6.还增加了很多与函数式接口类似的接口以及与Map相关的API等……

转载于:https://www.cnblogs.com/yepei/p/5650440.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 导入sql文件 汉字乱码_将现有的sql脚本导入 Oracle 数据库,中文乱码问题...

将现有的sql 脚本导入 Oracle数据库比如 在windows 系统下&#xff0c;可以写一个 bat 来实现直接导入如&#xff1a;bat 中的内容如下&#xff0c;logs.log 将会记录执行日志sqlplus user/passworddbname create.sql > logs.logcreate.sql 中的内容可以是需要执行的sql 语句…

html图片多边形怎么写,使用CSS3构建的图像多边形裁剪动画特效

CSS语言&#xff1a;CSSSCSS确定html {background: #333;}.polygon {-webkit-clip-path: polygon(50% 0%, 79.38926% 9.54915%, 97.55283% 34.54915%, 97.55283% 65.45085%, 79.38926% 90.45085%, 50% 100%, 20.61074% 90.45085%, 2.44717% 65.45085%, 2.44717% 34.54915%, 20.…

python函数示例_带Python示例的complex()函数

python函数示例Python complex()函数 (Python complex() function) complex() function is a library function in Python, it is used to get the complex number from given a real number or/and an imaginary number (which is an optional part), it accepts either a rea…

windows 下 git 禁用 CRLF 转换 LF

2019独角兽企业重金招聘Python工程师标准>>> windows中的换行符为 CRLF&#xff0c; 而在linux下的换行符为LF&#xff0c;所以在执行add . 时出现提示&#xff0c;解决办法&#xff1a; 删除根目录 .git 文件夹禁用自动转换 > git config --global core.autocrl…

cmd执行sql文件路径 oracle_oracle 基础 执行sql文件

Oracle执行外部文件&#xff1a;sql>new.sql执行多个sql文件:1.把所有的文件都放在同一个目录下&#xff0c;然后在命令行里执行命令&#xff1a;c:>dir/b > d:/1.sql会把所有的sql文件名都输出到一个sql文件中。2.用UltraEdit打开生成的sql文件&#xff0c;altC切换到…

获取天气html,使用htmlparser获取sohu的天气预报

首先&#xff0c;我们新建一个类&#xff0c;存放天气信息/** Created on 2005-3-8** To change the template for this generated file go to* Window>Preferences>Java>Code Generation>Code and Comments*/packageorg.exoplatform.portlets.chinaweather.compon…

使用gulp构建前端(三)

为什么80%的码农都做不了架构师&#xff1f;>>> 使用gulp构建前端&#xff08;三&#xff09; 紧接着上述文章内容&#xff0c;开始新的插件的使用 插件三 gulp-clean-css&#xff0c;作用减小文件大小&#xff0c;并给引用url添加版本号避免缓存&#xff0c;一个需…

c++中atan2函数_atan2()函数以及C ++中的示例

c中atan2函数C atan2()函数 (C atan2() function) atan2() function is a library function of cmath header, it is used to find the principal value of the arc tangent of y/x, where y is the proportion of the y-coordinate and x is the proportion of the x-coordin…

python不合法的布尔表达式_python测试题

一、填空题 1.Python使用符号标示注释;以划分语句块。 2、Python序列类型包括 、、三种; 是Python中唯一的映射类型。 3、Python中的可变数据类型有,不可变数据类 型有。 4、Python的数字类型分为、、等子类型。 5、设s=‘abcdefg’,则s[3]值是 ,s[3:5]值是 , s[:5]值是…

网站html标签如何优化,网站HTML标签优化教程

真正需要SEOer掌握并经常使用的HTML标签也就那么几个&#xff0c;本小节丈哥seo带来的是页面HTML标签优化。title标签 – 标题标签1)title标签用法网站SEOHTML标签优化教程 – 丈哥seo2)标题标签的作用关于网站标题写法与操作技巧有许多&#xff0c;需要怎么优化标题的朋友可以…

hypot函数_hypot()函数与C ++中的示例

hypot函数C hypot()函数 (C hypot() function) hypot() function is a library function of cmath header, it is used to find the hypotenuse of the given numbers, it accepts two numbers and returns the calculated result of hypotenuse i.e. sqrt(x*x y*y). hypot()…

docker 磁盘问题:device or resource busy

问题&#xff1a;[roothdp-gp-dk02 ~]# docker start 01ea65845e45Error response from daemon: Cannot start container 01ea65845e45: Error getting container 01ea65845e4547be24bc3db0bc3b424faf52b8a0534eb525aa829dd9fd6081c2 from driver devicemapper: Error mounting…

axure form列表_常见的列表页如何用Axure画出来

列表页是PM画原型的时候最容易碰到的页面类型&#xff0c;那么如何快速画出并且展现交互呢&#xff1f;我们从具体的例子开始讲解其中的技巧&#xff0c;和各种不同的演变场景。希望初级PM可以通过这篇文章改进下自己的画法。列表页基本是由页面框架&#xff0c;上导航&#xf…

python中divmod_divmod()函数以及Python中的示例

python中divmodPython divmod()函数 (Python divmod() function) divmod() function is a library function, it is used to get the quotient and remainder of given values (dividend and divisor), it accepts two arguments 1) dividend and 2) divisor and returns a tup…

html 轮播图的鼠标事件,这是图片轮播的代码 html+css,怎么加上鼠标悬停移出继续功能?...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼.one {position: absolute;width: 500px;height: 400px;overflow: hidden;}.one_cantent img {width: 500px;height: 300px;float: left;}.one_cantent {width: 2500px;height: 400px;position: absolute;left: 0px;animation-name…

微软Azure云之企业Exchange 2016部署12—配置负载平衡

上几节我们把Exchange2016邮箱系统配置完毕了&#xff0c;本节我们来配置开通需要对外的端口&#xff0c;并对这些端口进行负载均衡配置&#xff0c;如下图红框所示&#xff1a;1.Exchange服务端口Exchange2016需要对外开通以下的端口&#xff0c;来对外提供不同的服务&#xf…

linux多线程求和_linux多线程pthread系列函数详解

linux多线程pthread系列函数详解(一)为什么要引入线程线程技术早在60年代就被提出&#xff0c;但是在80年代才真正使用到操作系统中。传统UNIX也支持多线程概念&#xff0c;但在一个进程中只允许有一个线程&#xff0c;这样多线程就意味着多进程。现在多线程技术已经被很多操作…

python独立log示例_带有Python示例的math.log()方法

python独立log示例Python math.log()方法 (Python math.log() method) math.log() method is a library method of math module, it is used to get the natural logarithm of a given number to base e (by default). It accepts the number and a base (which an optional) a…

搭建云计算机win10,win10电脑做云服务器

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器&#xff0c;帮助用户打造可靠、安全、灵活、高效的应用环境&#xff0c;确保服务持久稳定运行&#xff0c;提升运维效率三年低至5折&#xff0c;多种配置可选了解详情Windows远…

聚类分析在用户行为中的实例_用户关注行为数据分析过程详解-描述统计+聚类...

以下是基于一小段用户关注产品的行为数据分析过程详细描述&#xff0c;各位老师如有不同意见或优化建议&#xff0c;还请不吝赐教。一、数据大致是这样的(已经脱敏处理)二、数据预处理从年款提取出年限&#xff0c;从价格标识出价格区间&#xff0c;随便写一下SQL如下&#xff…