阅读更多

102顶
15踩

编程语言

原创新闻 Java 7的主要变化

2009-11-25 12:13 by 资深编辑 wutao0603 评论(125) 有39464人浏览

Devoxx 大会结束在几天前结束了,一位与会者对此次大会的重要内容进行了总结,他提到Java 7的主要变化如下:

 

1.对collections的支持

 

List<String> list = new ArrayList<String>();
list.add("item");
String item = list.get(0);

Set<String> set = new HashSet<String>();
set.add("item");

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("key", 1);
int value = map.get("key");

 现在你还可以:

 

List<String> list = ["item"];
String item = list[0];

Set<String> set = {"item"};

Map<String, Integer> map = {"key" : 1};
int value = map["key"];

 

 

2.自动资源管理

 

BufferedReader br = new BufferedReader(new FileReader(path));
try {
   return br.readLine();
} finally {
   br.close();
}

 becomes:

 

try (BufferedReader br = new BufferedReader(new FileReader(path)) {
   return br.readLine();
}

You can declare more than one resource to close:

try (
   InputStream in = new FileInputStream(src);
   OutputStream out = new FileOutputStream(dest))
{
 // code
}

 

3.对通用实例创建(diamond)的type引用进行了改进

 

 

Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

 becomes:

 

Map<String, List<String>> anagrams = new HashMap<>();

4.数值可加下划线

 

int one_million = 1_000_000;

  

5.在switch中可使用string

 

String s = ...
switch(s) {
 case "quux":
    processQuux(s);
    // fall-through

  case "foo":
  case "bar":
    processFooOrBar(s);
    break;

  case "baz":
     processBaz(s);
    // fall-through

  default:
    processDefault(s);
    break;
}

 

6.二进制文字

 

int binary = 0b1001_1001;

  

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

 

当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告。详情查看

 


来自: joejag
102
15
评论 共 125 条 请登录后发表评论
45 楼 rongzhi_li 2009-11-26 09:00
爽!!  
44 楼 spiritfrog 2009-11-26 09:00
有几个改动挺像c#的, 感觉还不错。 switch 支持string也很方便。
43 楼 yxxcrtd 2009-11-26 08:56
关注 垃圾回收!!!
42 楼 startfromheart 2009-11-26 08:46
这几个变化让人很舒服。
41 楼 qbq 2009-11-26 08:35
在switch中可使用string
这个很好

第二个是说我们使用资源之后不用调用close方法来关闭,而是自动管理么?

如果是这样,就感觉怪怪的。。。
40 楼 七月十五 2009-11-26 08:18
java动态化了?
39 楼 mikeandmore 2009-11-26 02:57
ray_linn 写道
linliangyi2007 写道
越来越RUBY了,哈哈,肉饼大大看了会喜欢的



越来越ruby ?...全是C#抄袭来的,c#1.0就有了

ruby说不好从92年就有了。。。。。。。
38 楼 ostrich 2009-11-25 23:39
简化、复杂都是相对而言。习惯了的才是最好的!不喜欢随版本升级而改变语法。
37 楼 ray_linn 2009-11-25 23:12
linliangyi2007 写道
越来越RUBY了,哈哈,肉饼大大看了会喜欢的



越来越ruby ?...全是C#抄袭来的,c#1.0就有了
36 楼 freej 2009-11-25 23:06
cdphantom 写道
damoqiongqiu 写道
   1. List<String> list = ["item"];  
   2. String item = list[0];  
   3.   
   4. Set<String> set = {"item"};  
   5.   
   6. Map<String, Integer> map = {"key" : 1};  
   7. int value = map["key"];  

这几个不错,写起来爽多了。


很少有人在Map初始化时就确定Map里的对象吧,这个功能我觉得用处不大,除非是一些小程序



有很多情况下会这么做
35 楼 Norther 2009-11-25 22:59
尽是些语法糖,最想要的T.class还有通过反射拿到参数的名称,都没提供。
34 楼 karvenlin 2009-11-25 22:38
写集合就像是些数组一样,很好!特别是在switch中还可以写String了,这样就可以少犯错误了!
33 楼 cdphantom 2009-11-25 22:13
damoqiongqiu 写道
   1. List<String> list = ["item"];  
   2. String item = list[0];  
   3.   
   4. Set<String> set = {"item"};  
   5.   
   6. Map<String, Integer> map = {"key" : 1};  
   7. int value = map["key"];  

这几个不错,写起来爽多了。


很少有人在Map初始化时就确定Map里的对象吧,这个功能我觉得用处不大,除非是一些小程序
32 楼 cdphantom 2009-11-25 22:12
damoqiongqiu 写道
   1. List<String> list = ["item"];  
   2. String item = list[0];  
   3.   
   4. Set<String> set = {"item"};  
   5.   
   6. Map<String, Integer> map = {"key" : 1};  
   7. int value = map["key"];  

这几个不错,写起来爽多了。

31 楼 banrui 2009-11-25 22:02
这些变化感觉还是蛮不错的
30 楼 蔡华江 2009-11-25 21:53
除了switch...case...和二进制有个改头。
其它的没感觉
29 楼 linliangyi2007 2009-11-25 21:13
越来越RUBY了,哈哈,肉饼大大看了会喜欢的
28 楼 tuoxie007 2009-11-25 21:08
damoqiongqiu 写道
   1. List<String> list = ["item"];  
   2. String item = list[0];  
   3.   
   4. Set<String> set = {"item"};  
   5.   
   6. Map<String, Integer> map = {"key" : 1};  
   7. int value = map["key"];  

这几个不错,写起来爽多了。

是呀,是呀!
27 楼 tuoxie007 2009-11-25 21:07
liupesnap 写道
Friedrich 写道
5.在switch中可使用string
--------------
终于等到这一天了……

同感!

同感!
26 楼 超级潜水员 2009-11-25 21:06
那天支持 a,b,c = [1,2,3]就好了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 软件测试的意义.ppt

    软件测试的意义 软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。

  • 软件测试的目的

    软件测试的目的每个人的理解不一样,但大体如下: 1、为什么要做测试需求分析? a:1 漏测试分析:网上问题(前期测试有漏洞) :测试分析设计不足(其实就是没有想到,大致占到60%);测试环境不具备;测试进度压力,无时间测试 b:有些问题无法考虑到,考虑不周全(测试视角太狭窄) c:如何站在客户的立场来测试(用户场景分析、用户体验) 2、测试的目的 测试的目的是想以最少的人力,物力和时间找出软件中存...

  • 软件测试之测试意义

    测试人员跟踪需求、验证质量、提交缺陷的同时也促进了开发人员技术的提升,在这个过程中牵扯到项目流程管理的问题,一个优秀的测试在这个过程中会建立一套完成的体系来提高整个团队的工作效率从而来降低开发成本进而把控产品质量,但需明确的是,软件的质量不只是测试人员来把关,最终质量好坏是整个团队的结果。测试是不可穷尽的,测试人员不可能发现系统中所有的缺陷,每个版本发布前也不可能保证所有已知的缺陷都会得到修复,所以反复测试是为了发现更多的缺陷,预防风险。4)一个成功的测试是发现了至今未发现的错误的测试。

  • 测试定义、流程、以及分类

    测试理论 1.测试的定义 就是寻找软件中存在的BUG 2.出现BUG的原因 20%来源于代码 80%需求不明确 产品需求经常变更 3.判定bug的依据: 需求文档 原型图 不相符合的错误类型 难以理解 不易使用 运行缓慢。。 4.产生bug的原因归纳为: (1) 需求解释有错误; (2) 用户需求定义错误; (3) 需求记录错误; (4) 设计说明有误; (5) 编码说明有误; (6) 程序代码有误; (7) 数据输入有误; (8) 测试错误; (9) 问题修改不正确 测试流程 需求评审 1从用户体验角度

  • 软件测试对于个人的意义

    优点: 1、有助于了解整个软件的各个功能,及时解决客户问题; 2、软件测站在客户的角度思考如何设计软件,软件如何为客户服务; 3、软件测试有助于了解客户的需求; 4、软件测试有助于对软件的全面功能的了解;(软件这么多功能,也是很辛苦啊) 缺点: 1、工作内容偏简单化,数量化; 2、工作内容不似开发那样,可以学习新的框架,API,协议,工具等; 3、工作成效不直观,不受重视; 4、换个产品,功能变了,还要重新学习;开发则更偏向于底层,发展更好; ...

  • 我认为的软件测试

    1.对于测试的认识 软件测试行业是一个新兴行业,尤其是在国内,软测已经不是以前单纯依附在软件开发过程中 一个可有可无的角色,而是发展到足以成为专门的行业。各公司相继成立测试部门,软件测试网站的增多,甚至于测试外包的出现,表明软件测试开始得到越来越受到人们的重视。 2.什么是软件测试 软件测试是指软件产品在使用的过程中我们对它进行所有的检查,测试相关的功能能否正常运行以及有无出现按一些不能控的...

  • 软件测试中的α、β、λ测试

    地球我来啦,同志们,今天分享关于α、β、λ测试的有关内容。一、α、β、λ常用来表示软件测试过程中的三个阶段: α是第一阶段,一般只供内部测试使用; alpha测试 (由用户、测试人员、开发人员共同参与的内部测试) β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用; beta测试 (内测后的公测,交给最终用户测试 公司外部展开的测

  • 有关我对软件测试以及软件测试开发的认识

        就目前来说,软件测试在软件开发过程中,受到越来越多的重视,它贯穿于整个开发过程中,各种软件互联网公司都在大量招收软件测试有关人员。     前2天,我看见百度的招聘信息,它主要招收的软件测试开发人员,这就说明了,现在随着社会的进步,科技的发展,以及自动化测试的成为主流的这一种趋势,现在公司所需要的对软件测试人员的要求大幅度提高,它不仅仅要求我们有测试能力,还需要兼备软件的开发能力,这就需要...

  • 对软件测试的认识(理论基础知识)

    软件测试基础 1:什么是软件缺陷? a.软件未达到产品设计规范表明的功能; b.软件出现了产品设计规范指明不会出现的错误; c.软件功能超出产品设计规范指明的范围; d.软件未达到产品设计规范虽未指出但应达到的目标; e.软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好。 2:为什么会出现软件缺陷? a.需求变化     b.设计错误

  • 软件测试的意义

    什么是软件

  • 【软件测试系列】关于软件测试的重要性

    软件测试的重要性(待续……)

  • 软件测试了解篇

    一、什么是软件测试 验证软件是否满足用户需求 二、软件测试和研发的区别 (1)软件测试与调试的区别 目的 参与角色 执行阶段 测试 发现程序中的缺陷 调试 定位并且解决程序中的问题 开发 ...

  • 软件测试的含义以及测试的对象

    软件测试的含义: 早期而言, 在1973年Bill Hetzel提出,软件测试是对程序能够按预期运行建立起的一种信心。 经典定义 是1979年Myers提出,测试是为发现错误而执行程序的过程。 软件测试(Software Testing)是软件生存期的一个重要的阶段,是软件质量保证的一个关键步骤。通俗的来说,软件测试就是软件在投入运行前,对软件需求分析、设计规格说明和编码进行...

  • 我对软件测试的理解以及我的职业规划

    很少分配时间用来思考自己的职业规划问题,今天总算让自己的心静了下来,去考虑我要从事什么工作,以及我要怎么去向这方面努力,还有就是我到底喜不喜欢这份工作。要做好职业规划首先要想好我正在进行的培训的事情,软件测试,我也算是接触了一个月的时间,期间学写了linux系统,学习了oracle,学习了c语言,这说明软件测试不仅仅是理论的,也是需要了解it基础知识的,也就是说测试不是简单...

  • 认识软件测试

    认识软件测试一 软件测试的定义和分类1.1 定义1.2分类一 软件测试的定义及分类 一 软件测试的定义和分类 1.1 定义 通俗说:软件测试就是在软件投入运行之前,对软件需求分析,设计规格说明书和编码实现的最终审查,它是软件质量保证的关键步骤。 IEEE给出的定义是:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清楚预期结果与实际结果之间的差别。 除了上述两种定义方法之外,还有其他一些定义,这些定义并没有对错之分只是进行定义的角度不同。 这里有一个关于软件

  • 我了解的软件测试基本概念

    题目汇总 共293道题 目录 题目汇总 1 一. 技术类型题目: 4 二. 测试话术: 9 1.什么是兼容性测试?兼容性测试侧重哪些方面? 9 2.正交表测试用例设计方法的特点是什么? 10 3.简述一下缺陷的生命周期? 10 3.画出软件测试的V模型图。 10 4.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 10 5.请以您以往的实际工作为例...

  • 测试软件

    day_1 文章目录day_1@[toc]软件缺陷产生的原因软件测试和缺陷修复的代价软件测试定义如何快速融入新团队测试人员的基本素质测试流程软件测试分类软件测试的原则软件的开发模式软件生命周期模型 软件缺陷产生的原因 (1)需求解释错误 (2)用户需求定义错误 (3)需求记录错误 (4)设计说明有误 (5)编码说明有误 (6)程序代码有误 (7)数据输入有误 (8)测试错误 (9)问题修改不正确 (10)不正确的结果是由于其他的缺陷而产生 软件测试和缺陷修复的代价 缺陷发现的越早越好 软件测试定义 狭.

  • 软件测试目的和作用

    测试人员会告诉你他们的主要工作是发现bug。但我们知道测试永远不能发现所有的bug,而且不可能去测试软件质量。许多领域内专家也极力主张软件测试的目的主要是在于发现软件错误,希望在软件开发生命周期内尽可能早的发现尽可能多得bug。这种认识源于我们没有办法对软件进行完全测试,即对程序的正确性进行完全证明,但遗憾的是,我们至今还没有使用的技术做到这一点。包括E.W.Dijkstra指出“测试只能证明程序

  • 如何理解软件测试

    1、软件测试的定义是什么?   在规定的条件下对软件进行操作,从而发现软件的错误,并对软件质量进行评估的一个过程。 2、软件测试的目的是什么?   不仅仅为了发现软件的缺陷,而且也要对软件质量进行度量和评估,从而提高软件的质量。 3、什么是软件质量?   即与需求相一致的程度。需求分为:明确的需求(明确叙述的功能和性能需求、明确描述的开发标准);隐含需求(行业的基本标准)。 4、软件测试有什么原则?   1、从用户需求出发,进行测试;   2、尽可能早的、持续地进行测试;   3、为测试做好终止条件,达到即

  • 从这几点谈谈软件测试的重要性

    从这几点谈谈软件测试的重要性随着市场对软件质量要求的不断提高,软件测试愈来愈受到重视。介绍了软件测试的重要性,对几种软件测试技术进行了论述。软件测试的意义在于:软件测试在软件研制中的作用软件测试的意义在于:a.发现软件错误;b.有效定从这几点谈谈软件测试的重要性随着市场对软件质量要求的不断提高,软件测试愈来愈受到重视。介绍了软件测试的重要性,对几种软件测试技术进行了论述。软件测试的意义在于:          软件测试在软件研制中的作用软件测试的意义在于:a.    发现软件错误;b.    有效定义和实现软件成分由低层到高层的组装过程;c.    验证软件是否满足任务书和系统定义文档所规定的

Global site tag (gtag.js) - Google Analytics