A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张超超 黑马帝   /  2012-4-1 11:41  /  2728 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java SE 7 中有哪些新功能啊,谁能给详细的说说啊

3 个回复

倒序浏览
1、增强的JTabbedPane组件
  JTabbedPane组件为我们提供了一种非常好的方法在窗体上显示很多的控件。我们可以将不同类别的控件放到不同的Tab页上,然后通过需要点击相应的Tab页。在传统的Tab页上只能防止文本的图标。而在Java SE 6中使我们可以直接将控件放到Tab上。我们可以通过setTabComponentAt方法将控件放到Tab上。这个方法有两个参数,一个是Tab的索引,另一个是要放置的对象。
2、 增强的打印功能
  自从Java SE 5开始,Sun就对控件的打印功能进行了加强。如JTextField、JTextArea等。在Java SE 6中Sun为打印增加了分页功能。我们只需要调用JtextField或JTextArea的print方法就可以调用打印对话框
3、增强的JTabbedPane组件
  JTabbedPane组件为我们提供了一种非常好的方法在窗体上显示很多的控件。我们可以将不同类别的控件放到不同的Tab页上,然后通过需要点击相应的Tab页。在传统的Tab页上只能防止文本的图标。而在Java SE 6中使我们可以直接将控件放到Tab上。我们可以通过setTabComponentAt方法将控件放到Tab上。这个方法有两个参数,一个是Tab的索引,另一个是要放置的对象。
4、增强的拖放功能
  在Java SE 6中的拖放功能得到了增强,这主要表现在两个方面。
  ·可以定制拖放模式。
  可以在拖放的过程中加入其它的辅助信息。 首先需要通过JList、JTable等控件的setDropMode()方法来设置一个拖动模式。所有的控件都可以使用USER_SELECTION模式。这个模式在以前的Java SE版本中就有。这也是默认的拖放模式。
回复 使用道具 举报
Oracle的官网:http://docs.oracle.com/javase/7/docs/index.html
该地址是java7的API文档:

下面选择其中的★部分说说:英语之外的文字是我个人的看法,欢迎大家多交流交流~
Java Programming Language

The following enhancements have been added to the Java language:
Binary Literals
Underscores in Numeric Literals
★Strings in switch Statements(字符串在switch 语句)
★Type Inference for Generic Instance Creation(泛型实例的类型推断)
Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
The try-with-resources Statement
Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
Java Virtual Machine

第一个:★Strings in switch Statements
In the JDK 7 release, you can use a String object in the expression of a switch statement:

public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
     String typeOfDay;
     switch (dayOfWeekArg) {
         case "Monday":
             typeOfDay = "Start of work week";
             break;
         case "Tuesday":
         case "Wednesday":
         case "Thursday":
             typeOfDay = "Midweek";
             break;
         case "Friday":
             typeOfDay = "End of work week";
             break;
         case "Saturday":
         case "Sunday":
             typeOfDay = "Weekend";
             break;
         default:
             throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
     }
     return typeOfDay;
}

通过上面的例子可以看出,Switch语句中可以放入一个String对象了。
第二个:★Type Inference for Generic Instance Creation(泛型实例的类型推断)

举个例子:
In Java SE 7, you can substitute the parameterized type of the constructor with an empty set of type parameters (<>):
java 7中我们可以写:
Map<String, List<String>> myMap = new HashMap<>();

注意:右边的<>中不一定要写了,可以空着,但是7之前的版本如果这样写,编译时会报错的

还有很多新特性,找到源头了,文档就多看啦。现在网上翻译工具很多,虽然是英语的,但也应该沉下心来看啊,希望我的回答能帮到楼主^_^
回复 使用道具 举报
1、Modularization 模块化– JSR 294 或者 Project Jigsaw
2、JVM 对动态语言的支持
3、更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203
4、对XML本地语言支持. (可能的probable)
5、Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。
6、Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。
7、更好的类型推断 Better type inference
8、多重捕获Multi-catch
9、JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。

“小的”sun方面的修改有:
1、升级的类加载class loader 架构;
2、XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;
3、Swing 更新 – JXLayer, DatePicker, CSS styling 等;

JavaFX
sun方面“快速”的修改,主要是性能更新:
1、并发方面的细微调整 concurrencytweaks (JSR 166),更好的支持Multicore
2、G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC
3、64 bit VM的压缩指针Compressed pointer
4、MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马