- 浏览: 218480 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (397)
- j2se (28)
- nio (3)
- 易错点 (3)
- 面试ssh (9)
- ssh整合 (11)
- jbpm+spring (2)
- js (15)
- 高级技术 (59)
- swing (3)
- 数据库 (16)
- hibernate (18)
- spring (19)
- 开发网站知识点 (9)
- jbpm (4)
- json (5)
- 设计模式 (22)
- 自定义标签 (1)
- j2ee (9)
- lucene (3)
- cahce (11)
- maven (5)
- html5 (1)
- 多数据源 (10)
- 页面聊天 (9)
- 富客户端 (1)
- android (13)
- aop+拦截器+jms (13)
- 框架整合 (1)
- 非阻塞io (24)
- 暂时不看 (13)
- webservice (3)
- oracle (3)
- 算法 (4)
- 协程 (2)
- netty (1)
- 爬虫 (0)
- 高级基础 (1)
- JVM调优总结 (12)
- 知识点技巧 (1)
- REST (0)
- 基础 io (2)
- dubbo (8)
- 线程 (1)
- spring源码 (2)
- git (1)
- office (2)
最新评论
-
sjzcmlt:
,写的挺好的啊
一个完整的负载均衡的例子 . -
他大姨妈:
网上大部分例子都是直接通过IdleStateHandler来实 ...
Netty的超时机制 心跳机制
在最近举行的Devoxx大会上,Java SE首席工程师Mark Reinhol,针对新版的Java7做了一个最新发展方向的演讲。Mark称这次演讲的内容只是暂时的计划,并不表示Java7一定会跟着这个方向走。虽然如此,但是仍然在Java社区中引起了很多反响,特别是针对闭 包特性(Closures)的遗漏。
Hamlet D’Arcy提供了一个Mark演讲中有关Java7特性的总结。其中一些比较重要的变化包括:
1.JVM对动态语言的支持
2.更多新的I/O API已基本完成,包括真正同步的I/O(不仅仅是非阻塞I/O)和一个真正的文件系统API。
3. 安全重抛出——允许一个广泛的catch语句,编译器可以更加智能的基于try语句块中抛出的异常管理重新抛出。(我以前没有见过,不过看起来不错)
4.Null通过’?’语法检查,类似于Groovy...使开发人员避免一连串null检查。
5.与泛型实例化有关,但目前还不清楚这种推断会达到什么程度(我觉得越多越好)。
6.允许在catch语句中用逗号分割一系列异常类型。
7.Swing应用框架——仍然需要更简化以方便Swing应用开发。
8.特性的向前兼容(Java Kernal、QUickstarter、新Plug-in等)。
他同时提到了曾经考虑过但可能不会引入到Java 7的特性:
1.具体化泛型(Reified generics)
2.第一类属性(1st class properties)
3.操作符重载
4.BigDecimal语法
5.Bean绑定
下面看看代码吧:
1.对collections的支持
2.自动资源管理
3.对通用实例创建(diamond)的type引用进行了改进
4.数值可加下划线
5.在switch中可使用string
6.二进制文字
7.简化了可变参数方法的调用
当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告
时隔一段时间,我看了Java7的相关文档发现,Java7拥有如下的一些新的特性。
首先是模块化特性:如果您安装和使用过NetBeans6.7的话,是不是会有一个很大的感觉,就是NetBeans6.7的启动速度比以前快了很多,当然并不是NetBeans已经使用了Java7,而是NetBeans将以前一启动就加载的功能划分成了很多的模块,第一次安装启动的时候,很多模块都没有加载,只是加载了一些最基本的功能模块,在随后的使用过程中,如果用到了某一种功能,就启用相应的模块,这样形成了一个按需加载的特点,当然随着加载的模块数量增加,启动的速度也会随之变慢。不过除非你要用其中的所有模块,否则总是比之前的版本速度要快。现在的 Java7也是采用了模块的划分方式来提速,一些不是必须的模块并没有下载和安装,因此在使用全新的Java7的虚拟机的时候会发现真的很快,当虚拟机需要用到某些功能的时候,再下载和启用相应的模块,这样使得最初需要下载的虚拟机大小得到了有效的控制。同时对启动速度也有了很大的改善。如果你对 OpenJDK的架构比较熟悉,你甚至可以定制JDK的模块。
其次是多语言支持:这里的多语言不是指中文英文之类的语言,而是说Java7的虚拟机对多种动态程序语言增加了支持,比如:Rubby、 Python等等。对这些动态语言的支持极大地扩展了Java虚拟机的能力。对于那些熟悉这些动态语言的程序员而言,在使用Java虚拟机的过程中同样可以使用它们熟悉的语言进行功能的编写,而这些语言是跑在功能强大的JVM之上的。
第三是开发者的开发效率得到了改善:Java7通过多种特性来增强开发效率。比如对语言本身做了一些细小的改变来简化程序的编写,在多线程并发与控制方面:轻量级的分离与合并框架,一个支持并发访问的HashMap等等。通过注解增强程序的静态检查。提供了一些新的API用于文件系统的访问、异步的输入输出操作、Socket通道的配置与绑定、多点数据包的传送等等。
最后是执行效率的提高,也是给人感觉最真切体验的特性:压缩了64位的对象指针,Java7通过对对象指针由64位压缩到与32位指针相匹配的技术使得内存和内存带块的消耗得到了很大的降低因而提高了执行效率。此外还提供了新的垃圾回收机制(G1)来降低垃圾回收的负载和增强垃圾回收的效果。G1垃圾回收机制拥有更低的暂停率和更好的可预测性。
其实如上的这些特性是在告诉我们,Java7改善了什么,速度为什么快了,当然这些特性将随着Java7的正式版发布而继续凸显其优势。
最后让我们对c语言佩服的同时, 也支持以下java吧. 还是有前途的,至少我们这一代java不会没落的. 现在很多系统都是用java写的。
Hamlet D’Arcy提供了一个Mark演讲中有关Java7特性的总结。其中一些比较重要的变化包括:
1.JVM对动态语言的支持
2.更多新的I/O API已基本完成,包括真正同步的I/O(不仅仅是非阻塞I/O)和一个真正的文件系统API。
3. 安全重抛出——允许一个广泛的catch语句,编译器可以更加智能的基于try语句块中抛出的异常管理重新抛出。(我以前没有见过,不过看起来不错)
4.Null通过’?’语法检查,类似于Groovy...使开发人员避免一连串null检查。
5.与泛型实例化有关,但目前还不清楚这种推断会达到什么程度(我觉得越多越好)。
6.允许在catch语句中用逗号分割一系列异常类型。
7.Swing应用框架——仍然需要更简化以方便Swing应用开发。
8.特性的向前兼容(Java Kernal、QUickstarter、新Plug-in等)。
他同时提到了曾经考虑过但可能不会引入到Java 7的特性:
1.具体化泛型(Reified generics)
2.第一类属性(1st class properties)
3.操作符重载
4.BigDecimal语法
5.Bean绑定
下面看看代码吧:
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(); } 现在: 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>>(); 现在: 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* (可变)方法时,编辑器会生成一个“非安全操作”的警告
时隔一段时间,我看了Java7的相关文档发现,Java7拥有如下的一些新的特性。
首先是模块化特性:如果您安装和使用过NetBeans6.7的话,是不是会有一个很大的感觉,就是NetBeans6.7的启动速度比以前快了很多,当然并不是NetBeans已经使用了Java7,而是NetBeans将以前一启动就加载的功能划分成了很多的模块,第一次安装启动的时候,很多模块都没有加载,只是加载了一些最基本的功能模块,在随后的使用过程中,如果用到了某一种功能,就启用相应的模块,这样形成了一个按需加载的特点,当然随着加载的模块数量增加,启动的速度也会随之变慢。不过除非你要用其中的所有模块,否则总是比之前的版本速度要快。现在的 Java7也是采用了模块的划分方式来提速,一些不是必须的模块并没有下载和安装,因此在使用全新的Java7的虚拟机的时候会发现真的很快,当虚拟机需要用到某些功能的时候,再下载和启用相应的模块,这样使得最初需要下载的虚拟机大小得到了有效的控制。同时对启动速度也有了很大的改善。如果你对 OpenJDK的架构比较熟悉,你甚至可以定制JDK的模块。
其次是多语言支持:这里的多语言不是指中文英文之类的语言,而是说Java7的虚拟机对多种动态程序语言增加了支持,比如:Rubby、 Python等等。对这些动态语言的支持极大地扩展了Java虚拟机的能力。对于那些熟悉这些动态语言的程序员而言,在使用Java虚拟机的过程中同样可以使用它们熟悉的语言进行功能的编写,而这些语言是跑在功能强大的JVM之上的。
第三是开发者的开发效率得到了改善:Java7通过多种特性来增强开发效率。比如对语言本身做了一些细小的改变来简化程序的编写,在多线程并发与控制方面:轻量级的分离与合并框架,一个支持并发访问的HashMap等等。通过注解增强程序的静态检查。提供了一些新的API用于文件系统的访问、异步的输入输出操作、Socket通道的配置与绑定、多点数据包的传送等等。
最后是执行效率的提高,也是给人感觉最真切体验的特性:压缩了64位的对象指针,Java7通过对对象指针由64位压缩到与32位指针相匹配的技术使得内存和内存带块的消耗得到了很大的降低因而提高了执行效率。此外还提供了新的垃圾回收机制(G1)来降低垃圾回收的负载和增强垃圾回收的效果。G1垃圾回收机制拥有更低的暂停率和更好的可预测性。
其实如上的这些特性是在告诉我们,Java7改善了什么,速度为什么快了,当然这些特性将随着Java7的正式版发布而继续凸显其优势。
最后让我们对c语言佩服的同时, 也支持以下java吧. 还是有前途的,至少我们这一代java不会没落的. 现在很多系统都是用java写的。
发表评论
-
Java 如何有效地避免OOM:善于利用软引用和弱引用
2016-04-26 23:32 0想必很多朋友对OOM ... -
Java内部类详解
2016-04-26 23:21 0说起内部类这个词,想 ... -
浅析Java中的final关键字
2016-04-26 23:14 0浅析Java中的final关键字 谈到final关键 ... -
http和socket之长连接和短连接区别
2016-04-15 11:02 625TCP/IP TCP/IP是个协议组,可分为三个层次:网络层 ... -
一个对象占用多少字节?
2015-06-06 11:43 547老早之前写过一篇博客,是关于一个Integer对象到底占用 ... -
JVM学习笔记四 之 运行时数据区
2015-06-06 11:43 335一、概述 运行时数据区是jvm运行时的内存布局,类装载到 ... -
JVM学习笔记三 之 ClassLoader
2015-06-04 20:37 0一、ClassLoader 负责装载class文件;这个文 ... -
jvm运行期打印汇编信息
2016-04-26 22:51 728如果只在jvm参数中加入-XX:+PrintAssembl ... -
查看java对象在内存中的布局
2015-06-04 20:05 1012接着上篇《一个对象占用多少字节?》中遇到的问题: ... -
一个对象占用多少字节?
2015-06-04 20:04 391老早之前写过一篇博客,是关于一个Integer对象到底占 ... -
[JavaScript]多文件上传时动态添加及删除文件选择框
2014-11-07 10:41 608多文件上传时,首先要解决的一个问题就是动态去添加或删除文件选 ... -
java对象的内存计算
2014-11-01 13:07 457我们讨论的是java heap中对象所占内存。 1.基本类型 ... -
Jsoup模拟登陆例子
2014-10-30 09:12 560Java代码 package c ... -
JAVA多线程和并发基础面试问答
2014-10-28 09:47 435Java多线程面试问题 1. ... -
java消息插件开发
2014-10-25 22:39 467package my.addon; public int ... -
java监听器原理
2014-10-24 15:39 676public class MyActivity implem ... -
java常用设计模式应用案例 .
2014-06-06 09:39 542<div class="iteye-blog- ... -
Java中GC的工作原理 .
2014-06-09 10:19 414一个优秀的Java程序员必须了解GC的工作原理、如何优化G ... -
java中易出错的且常被面试的几点 .
2014-06-09 10:19 471一、关于Switch 代码 ... -
面试中排名前10的算法介绍 .
2014-06-11 21:40 583以下是在编程面试中排名前10的算法相关的概念,我会通过 ...
相关推荐
JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列创新特性,旨在提升编程效率、增强代码安全性并简化开发流程。以下是对JAVA 1.5新特性的详细解析: ### 1. 泛型 (Generics) #### 概述 泛型...
【Java 17新特性详解含示例代码】 Java 17作为Java的最新版本,引入了一系列提升开发效率、性能和开发体验的新特性。以下是Java 17的主要新特性及其实现方式: 1. **增强的伪随机数生成器 (JEP 356)** Java 17...
以下将详细阐述Java 5泛型的新特性: 1. **类型参数化**:泛型允许我们在类、接口和方法中定义类型参数。例如,`List<E>`中的`E`就是一个类型参数,代表某种未知的类型。当我们实例化列表时,可以指定`E`的具体类型...
Java 7是Java平台标准版的一个重要更新,它引入了一系列的新特性和改进,旨在提高开发者的效率、增强程序性能以及扩展平台的可用性。以下是Java 7的一些关键新特性: 1. **Nimbus Look & Feel**: Java 7引入了...
Java语言的不断发展带来了许多新特性,使得编程更加高效和安全。以下是这些特性的详细说明: 1. **自动装箱、拆箱**: 自动装箱是指将基本数据类型自动转换为对应的包装类对象,而拆箱则是将包装类对象转换回基本...
### Java 5新特性 #### 1. **泛型(Generics)** 泛型是Java 5最重要的特性之一,它允许在类、接口和方法声明中使用类型参数,增强了类型安全,减少了强制类型转换,提高了代码的可读性和可维护性。 #### 2. **...
Java 5 和 Java 6 是两个重要的 Java 发行版本,它们引入了一系列的新特性和改进,极大地提升了开发效率和代码质量。下面将详细讲解这两个版本的关键特性。 Java 5: 1. **泛型**:泛型允许在类、接口和方法中使用...
在Java中,类的特性主要包括以下几个方面: 1. **封装**:封装是面向对象编程的核心概念之一,它隐藏了对象的内部实现细节,只对外提供公共的访问方式。在Java中,我们通过访问修饰符(如public、private、...
本主题将深入探讨在Mac系统和Windows系统上安装JDK的过程,并详细解析Java从9到19版本的主要新特性。 一、JDK安装 1. Mac系统安装: - 使用Homebrew:在终端中输入`brew install AdoptOpenJDK`,然后通过`java -...
在本章“数组与方法”中,我们将深入探讨Java如何支持数组以及在新版本中引入的一些特性。以下是对这些知识点的详细阐述: 一、数组的基础概念 1. 定义:数组是一个固定大小的内存块,用于存储同一类型的数据集合。...
Java 5.0 版本引入了许多创新...学习并熟练掌握这些Java 5的新特性,不仅能使代码更高效、更安全,还能提高开发效率,让你的Java编程能力与时俱进。在实际项目中应用这些特性,有助于编写出更加优雅、易于维护的代码。
在这个"时间日期工具类(包含java8新特性).zip"压缩包中,我们有两个文件:DateUtil.java和DateUtils.java,它们很可能是自定义的工具类,用来扩展Java的标准日期处理功能。 首先,我们来看Java 8引入的新特性。在...
以下是对Java 5.0新特性的详细阐述: 1. **泛型(Generics)**:Java 5.0引入了泛型,允许在类、接口和方法声明中使用类型参数,以增强类型安全性和减少强制类型转换。泛型有助于防止在运行时出现...
在Java世界中,每个版本的更新都会带来一系列的新特性,以增强其性能和开发者体验。JDK1.6,也被称为Java SE 6,是Java发展史上的一个重要里程碑,它引入了许多关键性的改进和功能。以下是对这些新特性的详细阐述: ...
本教程聚焦于Java的基础,特别是动态代理和Java 8的新特性,这些都是现代Java开发中不可或缺的知识点。 首先,让我们深入理解Java动态代理。动态代理是Java提供的一种机制,允许我们在运行时创建一个实现一组给定...
7. **标准库和第三方库**:C++和Java都有丰富的标准库,但并不完全兼容。转换器需要找到相应的Java库来替代C++的库函数,或者可能需要重新实现某些功能。 8. **可执行文件(exe)**:在C++中,编译后的代码可以生成...
总的来说,从Delphi转向Java涉及到语言特性的理解、代码结构的重构、库和API的替换,以及对新平台特性的掌握。这是一个复杂的过程,需要耐心和细致的工作。在转换过程中,保持代码清晰和可维护性,同时考虑未来扩展...