第一章 Java程序设计概述
通过阅读Java核心技术并辅以自己的理解以及查阅的其他资料整理成读书笔记记录下来以把Java从底层原理到实现细节详细的再学习一遍。
1.1 Java程序设计平台Java语言具有令人赏心悦目的语法和易于理解的语义。同时Java是一个完整的平台,有一个庞大的库,库中包含了很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
1.2 Java的12个关键术语1.简单性
Java在设计之初尽可能的接近C++,但提出了C++中许多很少使用、难以理解、易混淆的特性(如:头文件、指针、结构、联合、操作符重载、虚基类)。即Java语法是C++语法的一个“纯净”版本,不过设计者没有清除C++中所有不适当的特性(如:switch)
同时,简单性还指Java在设计之初的解释器以及类支持较小。现在随着不断的扩展,类库已经相当庞大,具有最初设计目的(嵌入式消费电子设备)和较小类库的则是JavaME版本(Java Micro Edition)。
2.面向对象
面向对象设计指将重点放在数据(将其对象化)再考虑这个数据在事件中的行为。
举个例子:如果在程序中需要实现 a add b这样一个运算步骤。面向对象设计需要先创建一个类和类中方法,然后由该类的实例化对象调用方法,即:a.add(b);这个步骤是对象a的行为。
面向过程设计则关注程序中的每一个步骤,将步骤设计为函数直接使用:add(a,b)。
相比于面向过程,面向对象需要实例化对象,因此性能会差一些。但是具有使用的灵活度高、扩展性强的特点。同时由于接口的特点,可以设计出高内聚低耦合的系统。
3.分布式
方便在程序中处理HTTP、FTP之类的TCP/IP协议。
4.健壮性
Java的健壮性体现在对问题检测和问题的处理上,包括编译器的早期问题检测和运行时的动态检测。
5.安全性
分为两方面:
首先是高级特性-平台安全性,Java的平台基于一个动态、可扩展、标准、可操作的安全架构。内置加密、身份验证、授权、秘钥等基础架构确保安全特性。
其次是低级特性-Java的编译器与虚拟机的内置语言安全特性
*数据类型管理-满足类型转换规则才能转换成功
*内存自动管理-垃圾回收、去除指针使用引用避免内存泄漏
*字节码校验-一系列字节码校验规则
*安全的类加载-类加载机制
6.体系结构中立
Java语言在编译时会先生成一个平台无关的字节码文件。在执行时将字节码文件交由对应平台的JVM进行解释执行
因此,在解释执行时的速度会低于编译型语言直接执行编译之后的机器码的速度。不过虚拟机存在一个即时编译选项可以将执行最频繁的字节码序列翻译成机器码以加速执行。
7.可移植性
Java的基本数据类型大小固定,相关运算有明确说明而不依赖于平台去实现。所以在程序编写时可以不考虑底层操作系统进而具有强大的可移植性。
8.解释型
Java并非是编译型语言,而是最终需要字节码在不同JVM上进行解释执行。
9.高性能
即时编译器可以监控经常执行的代码并优化以提高执行速度。同时还具有内联的优化功能。
10.多线程
Java是第一个支持并发程序设计的主流语言,多线程的设计可以让线程轮流执行而不用担心某种阻塞(如I/O)使整个系统卡住。
11.动态性
允许将某些代码添加到正在运行的程序中去。