`
floating
  • 浏览: 80756 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java语言的新特性,我们用了多少?

阅读更多
11月6日,Java6相关的主要的JSR都已经通过,Java6的正式发布已经离我们越来越近。想起这些,稍微有点悲哀。在实际工作中,Java5的主要特性尚未得到很好的普及(除了很多开源和非开源的框架中大量使用了Annotations之外),Java6能得到Java1.2,或者Java1.4那样的关注吗?

现在还记得大概一年半以前将自己用1.5的语法实现的框架改回用1.4语法实现的心情。原因是公司里的java开发人员对1.5的某些语法的不接受(现在估计要好很多)。希望Java6给我们带来的新元素能够比较快速的得到大众的追捧并且在工作中得到使用。

下面简单的列出Java5和Java6的主要新特性。
Java5:
1。泛型
2。枚举类型
3。自动类型包装和解包装(autoboxing & unboxing)
4。变长参数
5。Annotations
6。新的迭代语句
7。静态引入
8。新的格式化方法
9。新的线程模型和并发库

Java6:
1。引入了一个支持脚本引擎的新框架
2。UI的增强
3。对Web Service支持的增强(JAX-WS 2.0 和 JAXB 2.0)
4。一系列新的安全相关的增强(本地敏感资源服务 Locale Sensitive Services SPI)
5。JDBC 4.0
6。Compiler API
7。通用的Annotations支持
分享到:
评论
17 楼 floating 2006-11-14  
wolfquare 写道

如果可以象C一样使用类似printf(...)的方式来调用还是很方便的


在jdk5中的确有printf的,当然format本身已经非常接近C里面的printf了,而且在国际化方面比C里面的printf还要强(很久没有关心C++的发展了,也许在C++新的标准里也考虑了国际化的问题。)
16 楼 wolfsquare 2006-11-14  
1.4是没有变长参数的.
如果可以象C一样使用类似printf(...)的方式来调用还是很方便的
15 楼 steeven 2006-11-14  
我猜很多人assert都没用吧
14 楼 steeven 2006-11-14  
sorphi 写道
together 写道
我们所有开发的系统都使用1.4的语法。但会在jdk1.5上进行测试。
我觉得除了范型和增强for循环有一点作用外,其它几项的必要性都不大。

为了保证与1.4的兼容性,我们是一点也没有用1.5的新特性,了解即可。


jdk1.5不兼容1.4吗?我所知的好像只有jakarta common里面的enum要注意。还有其他的吗,我挺想知道的,给个线索。


最不兼容的是范型语法。


偶的项目里面把1.5的新特性全用上了,1.6等release吧
13 楼 sorphi 2006-11-14  
together 写道
我们所有开发的系统都使用1.4的语法。但会在jdk1.5上进行测试。
我觉得除了范型和增强for循环有一点作用外,其它几项的必要性都不大。

为了保证与1.4的兼容性,我们是一点也没有用1.5的新特性,了解即可。


jdk1.5不兼容1.4吗?我所知的好像只有jakarta common里面的enum要注意。还有其他的吗,我挺想知道的,给个线索。
12 楼 together 2006-11-14  
我们所有开发的系统都使用1.4的语法。但会在jdk1.5上进行测试。
我觉得除了范型和增强for循环有一点作用外,其它几项的必要性都不大。

为了保证与1.4的兼容性,我们是一点也没有用1.5的新特性,了解即可。
11 楼 floating 2006-11-14  
wolfsquare 写道

这..
NumberFormat nf = new DecimalFormat("0000.#####");
nf.format(xxxx);
不行?


如果改成
NumberFormat nf = new DecimalFormat("000,000.####");

是可以的。但是这个例子是为了说明1.5以前format的局限性啊:就是只能一个一个的按照类型来格式化。不知道wolfsquare换一种写法的目的是什么?是不是说比我提供的例子少了一行代码?

那再举个复杂点儿,看上去就比较清楚的例子:

1.4下面:
double x = 10000.0 / 3.0;
final String str1 = "This is a example for JDK5 format feature: ";
final String str2 = "computerized scientific notation: ";
final String a = "a";
final String b = "b";
final String c = "c";
final String d = "d";

NumberFormat nf = new DecimalFormat("000,000.####");
String str3 = nf.format(x);
NumberFormat nef = new DecimalFormat("E");
String str4 = nef.format(x);

StringBuffer buf = new StringBuffer();
buf.append(str1)
    .append("\nnumber: ")
    .append(str3)
    .append("\n")
    .append(str2)
    .append(str4)
    .append("\nstring: ")
    .append(" ")
    .append(d)
    .append("  ")
    .append(c)
    .append("  ")
    .append(b)
    .append("  ")
    .append(a);
System.out.println(buf.toString());  
  
5下面:
        double x = 10000.0 / 3.0;
        final String str1 = "This is a example for JDK5 format feature: ";
        final String str2 = "computerized scientific notation: ";
        final String a = "a";
        final String b = "b";
        final String c = "c";
        final String d = "d";
        
        String out = String.format("%6$s\nnumber: %1$,012.4f\n%7$s%1$e\nstring: %5$2s %4$2s %3$2s %2$2s",x,a,b,c,d,str1,str2);
        System.out.println( out );
10 楼 wolfsquare 2006-11-14  
floating 写道
我觉得
引用
8。新的格式化方法

应该也使用的比较多才对啊。例如:我们在1.4版本上完成一个数字格式化输出的时候,需要:
double x = 10000.0 / 3.0;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(4);
formatter.setMinimumIntegerDigits(6);
String s = formatter.format(x); // the string "003,333.3333"

在1.5下面只需要:

double x = 10000.0 / 3.0;
String s = String.format("%,012.4f",x);

就可以实现同样的效果。

另:发现一个奇怪的bug。我如果写
引用

【code】
double x = 10000.0 / 3.0;
String s = String.format("%,012.4f",x);
【/code】



这..
NumberFormat nf = new DecimalFormat("0000.#####");
nf.format(xxxx);
不行?

9 楼 Allen 2006-11-14  
我还记得以前在代码里面写了一个Long.valueOf(1), 结果被经理狂批……
8 楼 floating 2006-11-14  
我觉得
引用
8。新的格式化方法

应该也使用的比较多才对啊。例如:我们在1.4版本上完成一个数字格式化输出的时候,需要:
double x = 10000.0 / 3.0;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(4);
formatter.setMinimumIntegerDigits(6);
String s = formatter.format(x); // the string "003,333.3333"

在1.5下面只需要:

double x = 10000.0 / 3.0;
String s = String.format("%,012.4f",x);

就可以实现同样的效果。

另:发现一个奇怪的bug。我如果写
引用

【code】
double x = 10000.0 / 3.0;
String s = String.format("%,012.4f",x);
【/code】

就会在显示的时候出现两次重复的代码:

7 楼 Norther 2006-11-14  
。泛型 常用,
2。枚举类型 不用
3。自动类型包装和解包装(autoboxing & unboxing) 最常用
4。变长参数 不用
5。Annotations 不用
6。新的迭代语句 第2常用
7。静态引入 不用
8。新的格式化方法  不用
9。新的线程模型和并发库 不用
6 楼 subkey 2006-11-14  
4。变长参数
7。静态引入
8。新的格式化方法
9。新的线程模型和并发库

这几个很少用
5 楼 floating 2006-11-14  
建议大家把自己用新特性实现的一些有意思的代码片段贴上来。:)
4 楼 fxsc 2006-11-14  
1。范形
2。枚举类型
3。自动类型包装和解包装(autoboxing & unboxing)
5。Annotations
6。新的迭代语句
这些用过,因为主要作web应用所以8和9用的不多
3 楼 Morgan0916 2006-11-14  
俺现在还只能用1.4呢,眼巴巴的等着IBM的RAD升级呢
2 楼 温柔一刀 2006-11-14  
1。范形
2。枚举类型
5。Annotations

这几个常用
1 楼 daoger 2006-11-14  
唉!能不能在项目中应用一下这些新东西也不都是我们个人说了算的,先自己学着点解解馋吧!

相关推荐

    JAVA语言的特性

    java的特性 用于新手学习java 了解java的好帮手

    Java语言的特性

    关于Java语言的特性.exe 详细精彩的介绍了关于java语言的特性,非常值得学习

    Java8 新特性

    Java8是Java编程语言的一次重大更新,引入了许多新的特性和功能,极大地提升了开发效率和代码的可读性。以下是一些主要的Java8新特性详解: 1. **Lambda表达式**:Lambda表达式是Java8中最显著的新特性,它为Java...

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,极大地提升了开发效率和代码质量。本文将深入探讨Java 8的三大关键新特性:接口的默认方法实现、Lambda表达式以及一系列相关的变化。 一、...

    JAVA1.5新特性

    JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列...JAVA 1.5的这些新特性极大地丰富了Java语言的功能性,提高了开发效率,同时增强了代码的安全性和可维护性,是Java编程语言发展的重要一步。

    第7章 Java语言类的特性(第7版).pptx

    第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7版)第7章 Java语言类的特性(第7...

    java8新特性

    Java 8是Java编程语言的一个重大更新,引入了许多新的特性和...以上就是Java 8的主要新特性,这些改进使得Java语言更加现代,适应了开发趋势,提高了开发者的生产力。对于Java开发者来说,理解和掌握这些特性至关重要。

    JAVA8新特性讲解

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新特性,极大地提升了开发效率和代码质量。以下是关于Java 8新特性的详细讲解: 1. **函数式编程:Lambda表达式** Lambda表达式是Java 8中最显著的新特性,它...

    尚硅谷Java8新特性下载

    这些特性极大地提高了Java语言的功能性和效率,使得开发人员能够编写更加简洁、高效的代码。 ### Java 8 新特性概述 #### Lambda 表达式 Lambda表达式是Java 8中最重要的一项新特性。它允许开发者将行为作为方法...

    02 Java语言的特性

    02 Java语言的特性02 Java语言的特性02 Java语言的特性02 Java语言的特性

    java7新特性与java高级编程

    Java 7是Java编程语言的一个重大更新,发布于2011年,它引入了许多新的特性和改进,旨在提升开发者的效率和代码的可读性。在这个主题中,我们将深入探讨Java 7的新特性以及Java的高级编程概念。 **1. 多线程并行流...

    Java语言规范 基于Java SE 8

    本书全面、准确而详细地讨论TJava编程语言,是Java语言新版本的规范。全书从Java基础的文法、类型、变量到高级特性lambda表达式、线程与锁等进行了详尽圃述。该规范针对每一项语言特性都给出了代表性的示例程序,以...

    java9新特性

    Java 9是Java语言在2017年推出的版本,这个版本引入了许多新的特性与改进。与之前版本相比,Java 9的升级主要集中在模块化系统,以及对开发者的生产力和平台管理的改进上。由于给定的文件信息中【部分内容】提取的...

    Java语言程序设计.pdf

    从提供的文件信息来看,该文件名为《Java语言程序设计.pdf》,主要涉及Java语言程序设计的相关知识。以下是从文件【部分内容】中提取并解释的知识点: 1. Java语言程序设计的基本概念:Java是一种面向对象的编程...

    什么是C语言?什么是VB语言?什么是VF语言?什么是JAVA语言?什么是C语言?.pdf

    【JAVA语言】:Java是由Sun Microsystems(现已被Oracle收购)开发的一种面向对象的编程语言。Java的设计理念是“一次编写,到处运行”,因为它的可移植性极强。Java以其平台独立性、安全性、健壮性和高性能而闻名,...

    超实用的Java新特性 - 2020最新版.zip

    Java作为世界上最受欢迎的编程语言之一,其每个新版本都会带来一系列增强和改进,以提高开发者的效率和程序的性能。2020年的Java 11、12、13和14版本也不例外,这些更新引入了多个引人注目的新特性。下面,我们将...

    Java语言程序设计(第2版)第1-6章 课后习题答案.pdf

    Java语言程序设计是指使用Java语言进行程序设计的过程,涵盖了Java语言的基本概念、语法、特性和应用。Java语言是由Sun Microsystems公司开发的一种高级语言,具有平台无关、对象oriented、安全性强等特点。 Java...

Global site tag (gtag.js) - Google Analytics