《Java: The Complete Reference》《Java 8 编程参考官方教程(第9版)》读书笔记
2016-02-14 21:20
344 查看
春节期间读了下《Java: The Complete Reference》发现这本书写的深入浅出,我想一个问题,书中很多内容我们也知道,但是为什么我们就写不出这样一本书,这么全面,这么系统,这么简单易懂。不得不佩服Herbert Schildt的编程功底,需要提到的是Herbert Schildt写了很多Java和C、C++的书,他是C、C++、Java和C#编程语言的权威,是ANSI/ISO组织C语言标准化委员会的委员。
Herbert Schildt最新的基本Java著作其实都差不多,在内容侧重点上有点不同。本文虽然名为《Java: The Complete Reference》《Java 8 编程参考官方教程(第9版)》读书笔记,但是实则是同时参考以下几本。
《Java: The Complete Reference, Ninth Edition》 中文版《Java 8 编程参考官方教程(第9版)》
《Java: A Beginner's Guide, Sixth Edition》 中文版《Java 8 编程入门官方教程 第6版》
《Java Programming: A Comprehensive Introduction》 中文版 《Java 7程序设计入门经典》
Java的起源
驱使计算机语言革新的因素有两个:程序设计技术的改进 和 计算环境的改变。
Java和C和C++的关系
Java继承了C的语法,Java的对象模型从C++改编而来。
Java不是C++的增强版,Java不是为替代C++而设计,而是为了解决特定问题而设计,C++则是用来解决另一个不同系列的问题。
Java的魔法:字节码
Java同时 解决安全性问题和可移植性问题的关键在于Java编译器的编译结果不是可执行代码,而是字节码bytecode。
字节码是一系列设计用来由Java虚拟机(JVM)的Java运行时执行的高度优化的指令。
只需要对每个平台实现Java虚拟机,尽管平台之间的Java虚拟机不同,但是他们都可以理解相同的Java字节码。
Java程序由JVM执行也使其更安全,因为每一个Java程序都处于JVM的控制下,此外Java语言中的一些限制也增强了安全性。
程序被解释要比被编译为可执行代码慢很多,对于Java两者区别不明显,因为字节码已经被高度优化。
虽然Java是解释型语言,但这在技术上不妨碍Java字节码迅速编译为本机代码。Sun在Java的初始版本之后提供了HotSpot技术,HotSpot提供了一个JIT字节码编译器。
当JIT成为JVM的一部分之后,它可以根据逐条命令将字节码实时转换为可执行代码,因为Java执行的各种检查只在运行时才进行,所以不能将整个Java程序一次性编译为可执行代码,而是在执行期间需要时JIT才编译代码。
不是所有的字节码序列都被编译,只有那些能从编译受益的字节码才会被编译,其余的代码被简单的解释。
编译程序
javac Example.java
编译器javac创建一个包含程序字节码的名为 Example.class的文件(字节码)。
编译过Java源代码后,每个单独的类被放在自己的输出文件中,输出文件以类名+.class扩展名。因为源码文件和.class文件名称相同,所以将Java源代码文件的名称指定为它包含的类名是个好主意。
运行程序
java Example
由Java解释器java运行程序,需要将类名Example作为实参传递。
注释
支持3种注释:/**/和//和文档注释,文档注释用于生成说明程序的HTML文件。以/**开头,以*/结束。
缩进原则
Java本身是形式自由的语言,但是推荐缩进,在每个左括号之后缩进一级,而在每个右括号之后提前一级。
代码块
将语句包含在{}之间实现,代码块一旦创建就成为一个逻辑单元。
代码块不会增加任何开销,{}只存在于源码中,Java不会执行{}。
空白符:空格,制表符,换行符。每个标记之间至少有一个空白符即可。
标识符:标识符用于命名事物,例如类,变量和方法。标识符可以由大小写字母,数字,下划线,美元符号等字符组成的任意序列。
不能以数字开头。Java是大小写敏感的。
字面值:常量的值是通过使用表示常量的字面值创建的。
分隔符:最常用的是分号,分号是语句的终止符。此外还有(),{}.[]等等。
关键字:50个。
Herbert Schildt最新的基本Java著作其实都差不多,在内容侧重点上有点不同。本文虽然名为《Java: The Complete Reference》《Java 8 编程参考官方教程(第9版)》读书笔记,但是实则是同时参考以下几本。
《Java: The Complete Reference, Ninth Edition》 中文版《Java 8 编程参考官方教程(第9版)》
《Java: A Beginner's Guide, Sixth Edition》 中文版《Java 8 编程入门官方教程 第6版》
《Java Programming: A Comprehensive Introduction》 中文版 《Java 7程序设计入门经典》
Java的起源
驱使计算机语言革新的因素有两个:程序设计技术的改进 和 计算环境的改变。
Java和C和C++的关系
Java继承了C的语法,Java的对象模型从C++改编而来。
Java不是C++的增强版,Java不是为替代C++而设计,而是为了解决特定问题而设计,C++则是用来解决另一个不同系列的问题。
Java的魔法:字节码
Java同时 解决安全性问题和可移植性问题的关键在于Java编译器的编译结果不是可执行代码,而是字节码bytecode。
字节码是一系列设计用来由Java虚拟机(JVM)的Java运行时执行的高度优化的指令。
只需要对每个平台实现Java虚拟机,尽管平台之间的Java虚拟机不同,但是他们都可以理解相同的Java字节码。
Java程序由JVM执行也使其更安全,因为每一个Java程序都处于JVM的控制下,此外Java语言中的一些限制也增强了安全性。
程序被解释要比被编译为可执行代码慢很多,对于Java两者区别不明显,因为字节码已经被高度优化。
虽然Java是解释型语言,但这在技术上不妨碍Java字节码迅速编译为本机代码。Sun在Java的初始版本之后提供了HotSpot技术,HotSpot提供了一个JIT字节码编译器。
当JIT成为JVM的一部分之后,它可以根据逐条命令将字节码实时转换为可执行代码,因为Java执行的各种检查只在运行时才进行,所以不能将整个Java程序一次性编译为可执行代码,而是在执行期间需要时JIT才编译代码。
不是所有的字节码序列都被编译,只有那些能从编译受益的字节码才会被编译,其余的代码被简单的解释。
编译程序
javac Example.java
编译器javac创建一个包含程序字节码的名为 Example.class的文件(字节码)。
编译过Java源代码后,每个单独的类被放在自己的输出文件中,输出文件以类名+.class扩展名。因为源码文件和.class文件名称相同,所以将Java源代码文件的名称指定为它包含的类名是个好主意。
运行程序
java Example
由Java解释器java运行程序,需要将类名Example作为实参传递。
注释
支持3种注释:/**/和//和文档注释,文档注释用于生成说明程序的HTML文件。以/**开头,以*/结束。
缩进原则
Java本身是形式自由的语言,但是推荐缩进,在每个左括号之后缩进一级,而在每个右括号之后提前一级。
代码块
将语句包含在{}之间实现,代码块一旦创建就成为一个逻辑单元。
代码块不会增加任何开销,{}只存在于源码中,Java不会执行{}。
空白符:空格,制表符,换行符。每个标记之间至少有一个空白符即可。
标识符:标识符用于命名事物,例如类,变量和方法。标识符可以由大小写字母,数字,下划线,美元符号等字符组成的任意序列。
不能以数字开头。Java是大小写敏感的。
字面值:常量的值是通过使用表示常量的字面值创建的。
分隔符:最常用的是分号,分号是语句的终止符。此外还有(),{}.[]等等。
关键字:50个。
相关文章推荐
- 无图片纯css实现中国象棋棋子
- javascript中的BOM和DOM
- 显示缩略图的javascript代码
- angularjs 路由切换
- 了解HTML 盒模型
- JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
- 最新版Butterknife plugin支持butterknife7.0.1和兼容butterknife 6.1.0及以下
- Json学习--简单解析
- EXT--表单AJax提交后台,返回前端数据格式的转换
- js实现瀑布流效果(使用绝对定位)
- New Features In SNMPv3 - SNMP Tutorial
- 289. Game of Life LeetCode
- 24. Swap Nodes in Pairs LeetCode
- javascript中的with关键字
- 前端性能优化-gzip
- 116. Populating Next Right Pointers in Each Node LeetCode
- 前端性能优化-gzip
- JavaScript杂谈
- js--eval函数
- JavaScript的Backbone.js框架的一些使用建议整理