读书笔记------深入理解Java7

来源:互联网 发布:mac无法更新10.12.6 编辑:程序博客网 时间:2024/05/21 10:45

1. switch语句中除了可以使用基本类型之外,支持使用字符串。但这个新特性是在编译器层次实现的,而非虚拟机或者字节代码层次上。编译时将字符串替换成了对应的哈希值,因此虚拟机所看到的仍然是基本类型兼容的类型。值得注意的是case语句编译之后仍然需要使用String的equals方法对字符串进行比较来避免哈希冲突。

2. Java7之前支持十进制、八进制、十六进制的字面量,7中添加二进制字面量,前面加“0b/0B”。数字字面量中可以使用下划线便于阅读。

3. 优化异常处理,支持一个catch同时捕获多个异常,捕获抛出的异常更加精确。

4. try-with-resource语句的资源管理新用法,try中申请的资源会被自动的正确释放。

5. @Safe Varargs注解。

6. Java虚拟机只理解Java字节码格式,介于底层操作系统和应用程序之间。Java、Scala、JRuby、Groovy、PHP、C#、JavaScript、Tcl和Lisp支持Java虚拟机为目标运行平台。

7. InputStream和OutputStream在字节层次上操作,由机器来处理;Reader和Writer来处理字符流。

8. 图形用户界面库通常包含组件、布局、事件3个要素。AWT(抽象窗口工具箱)是Java平台最早的图形用户界面库。

9. JDK1.2引入的Swing用户界面库完善了AWT在一些方面功能不足的问题。

10.AWT依靠本地图形库(操作系统的原生控件)实现绘制,是重量级组件,因此不同的操作系统界面可能不一样;Swing是基于AWT的Java实现扩展,是轻量级组件,通过Java 2D绘制。封装和扩展使得Swing能够提供更加丰富的组件功能,并且统一不同操作系统的样式风格。

11.AWT的每个组件都有本地对等组件,意味着其为交集,外观绑定了本地组件的相关外观,组件功能也不全;Swing为100%纯Java实现,因此可以控制组建的外观,同一平台不同的展现,不同实现跨平台。

12.Swing采用了一种MVC的设计范式,即"模型-视图-控制"(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。

13.SWT(标准小部件工具箱)能与Swing匹敌,但不是Java平台默认支持的用户界面库。

14.JavaFX是Java开发桌面应用的未来发展方向。

15.虚拟机一般采用Just-in-time(JIT)即时编译的方式将字节代码直接转换成底层操作系统平台上的原生指令,为了优化JIT编译方式的性能问题,HotSpot虚拟机采用了自适应的优化技术,关键是利用程序运行中的热点(hot spot),这就是HotSpot虚拟机名称的由来。

16.多线程并发编程的三大难题:a. 编写正确的代码很难;b. 测试代码是否正确很难,并发顺序未知;c. 代码调试很难,错误重现很难。

0 0
原创粉丝点击