Java Programming Language Enhancements
引用:Java Programming Language Enhancements
Java Programming Language Enhancements
Enhancements in Java SE 7
- Binary Literals - In Java SE 7, the integral types (
byte,short,int, andlong) can also be expressed using the binary number system. To specify a binary literal, add the prefix0bor0Bto the number. - Underscores in Numeric Literals - Any number of underscore characters (
_) can appear anywhere between digits in a numerical literal. This feature enables you, for example, to separate groups of digits in numeric literals, which can improve the readability of your code. - Strings in switch Statements - You can use the
Stringclass in the expression of aswitchstatement. - Type Inference for Generic Instance Creation - You can replace the type arguments required to invoke the constructor of a generic class with an empty set of type parameters (
<>) as long as the compiler can infer the type arguments from the context. This pair of angle brackets is informally called the diamond. - Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods - The Java SE 7 complier generates a warning at the declaration site of a varargs method or constructor with a non-reifiable varargs formal parameter. Java SE 7 introduces the compiler option
-Xlint:varargsand the annotations@SafeVarargsand@SuppressWarnings({"unchecked", "varargs"})to supress these warnings. - The try-with-resources Statement - The
try-with-resources statement is atrystatement that declares one or more resources. A resource is an object that must be closed after the program is finished with it. Thetry-with-resources statement ensures that each resource is closed at the end of the statement. Any object that implements the newjava.lang.AutoCloseableinterface or thejava.io.Closeableinterface can be used as a resource. The classesjava.io.InputStream,OutputStream,Reader,Writer,java.sql.Connection,Statement, andResultSethave been retrofitted to implement theAutoCloseableinterface and can all be used as resources in atry-with-resources statement. - Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking - A single
catchblock can handle more than one type of exception. In addition, the compiler performs more precise analysis of rethrown exceptions than earlier releases of Java SE. This enables you to specify more specific exception types in thethrowsclause of a method declaration.
Enhancements in Java SE 6
No language changes were introduced in Java SE 6.
Enhancements in Java SE 5.0
- Generics - This long-awaited enhancement to the type system allows a type or method to operate on objects of various types while providing compile-time type safety. It adds compile-time type safety to the Collections Framework and eliminates the drudgery of casting. See the Generics lesson in the Java Tutorials. (JSR 14)
- Enhanced
forLoop - This new language construct eliminates the drudgery and error-proneness of iterators and index variables when iterating over collections and arrays. (JSR 201) - Autoboxing/Unboxing - This facility eliminates the drudgery of manual conversion between primitive types (such as int) and wrapper types (such as Integer). (JSR 201)
- Typesafe Enums - This flexible object-oriented enumerated type facility allows you to create enumerated types with arbitrary methods and fields. It provides all the benefits of the Typesafe Enum pattern (Effective Java, Item 21) without the verbosity and the error-proneness. (JSR 201)
- Varargs - This facility eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists.
- Static Import - This facility lets you avoid qualifying static members with class names without the shortcomings of the "Constant Interface antipattern." (JSR 201)
- Annotations (Metadata) - This language feature lets you avoid writing boilerplate code under many circumstances by enabling tools to generate it from annotations in the source code. This leads to a "declarative" programming style where the programmer says what should be done and tools emit the code to do it. Also it eliminates the need for maintaining "side files" that must be kept up to date with changes in source files. Instead the information can be maintained in the source file. (JSR 175)
NOTE: The@Deprecatedannotation provides a way to deprecate program elements. See How and When To Deprecate APIs.
Generics papers
- JSR14: Adding Generic Types to the Java Programming Language
- Generics lesson in the Java Tutorials
- JSR 14: Add Generic Types To The Java Programming Language
- Making the Future Safe for the Past: Adding Genericity to the Java Programming Language (PDF)
Bracha, Odersky, Stoutamire, and Wadler. OOPSLA 98, Vancouver, October 1998. ( other formats) - GJ: Extending the Java Programming Language with Type Parameters (PDF)
Bracha, Odersky, Stoutamire, and Wadler. A tutorial on GJ. August 1998. ( other formats) - Adding Generics to the Java Programming Language (PDF)
Bracha. Slides from JavaOne 2003 presentation. - Adding Wildcards to the Java Programming Language (PDF)
Torgersen, Hansen, Ernst, Ahe, Bracha and Gafter. An ACM paper, 2004.
Enhancements in J2SE 1.4
- Assertion Facility - Assertions are boolean expressions that the programmer believes to be true concerning the state of a computer program. For example, after sorting a list, the programmer might assert that the list is in ascending order. Evaluating assertions at runtime to confirm their validity is one of the most powerful tools for improving code quality, as it quickly uncovers the programmer's misconceptions concerning a program's behavior.
Java Programming Language Enhancements的更多相关文章
- Java programming language compiler
https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html\ javac - Java programming l ...
- Java programming language does not use call by reference for objects!
Instead, object references are passed by value! A method cannot modify a parameter of a primitive ty ...
- Code Conventions for the JavaScript Programming Language
This is a set of coding conventions and rules for use in JavaScript programming. It is inspired by t ...
- 编程提取字符串"Java is a programming language"中的各个单词,并打印输出。
import java.lang.String; import java.util.StringTokenizer; public class StringGetWord{ /* 编程提取字符串&qu ...
- What is the Best Programming Language to Learn in 2014?
It’s been a year since I revealed the best languages to learn in 2013. Once again, I’ve examined the ...
- Introduction to OOC Programming Language
Introduction to OOC Programming Language 文/akisann @ cnblogs.com / zhaihj @ github.com 本文同时发布在github ...
- The Go Programming Language. Notes.
Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...
- PythonStudy——高级语言 High-level programming language
高级语言 高级语言(High-level programming language)相对于机器语言(machine language,是一种指令集的体系.这种指令集,称机器码(machine code ...
- The D Programming Language 书评
此书的作者 Andrei Alexandrescu 作为前 C++ 社区的一朵奇葩,因为实在是不满 C++ 标准委员会的官僚作风,跳槽到了 D 社区,成为了 D 发明人 Walt Brightman ...
随机推荐
- WordPress忘记登录密码
后台的登录密码使用的是md5加密的,有时候会忘记登录密码,那么可以修改数据库,把密码改为你知道的字符串的md5加密值 如 hello对应的md5加密值为:5d41402abc4b2a76b9719d9 ...
- Eclipse设置选中高亮显示
高亮显示选中的变量对于程序员编程很有帮助,正常情况下Eclipse选中变量时都会高亮显示,可能软件冲突导致高亮显示失效,通过如下方法可以进行恢复. 单击IDE顶部Window菜单下的Prefences ...
- Python之路-python(堡垒机)
运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的 ...
- CentOS6.6安装及配置vsftpd文件服务器
1.安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下: # yum install -y vsftpd db4* 2.修改SELINUX,命令如下: # vim /etc/sys ...
- MonkeyTest简单实用介绍
什么是Monkeytest? monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键灯操作来对设备上的程序进行压力测试,检测程序发 ...
- Leetcode: Convex Polygon
Given a list of points that form a polygon when joined sequentially, find if this polygon is convex ...
- javascript原型对象
先来做个复习,ES5中有有几种数据类型呢? 5种基本数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 除了基本数据类型,万物皆对象,记 ...
- Python爬虫学习
lxml相关 http://blog.csdn.net/kl28978113/article/details/52241678 lxml安装 http://www.lfd.uci.edu/~gohl ...
- UEditor上传图片等附件都出现红叉,该怎么解决
------解决方案-------------------------------------------------------- 引用: 在本地这样配置就没问题:var URL = window. ...
- Java以基础类库
Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...