读书笔记——《Java核心技术 卷一》
第一章 Java程序设计概述
Java程序设计平台
-
Java是一个完整的平台
- 提供一个庞大的
库
,包含了很多可重用
代码,例如数据库存取功能,无需手动编写代码 - 提供了一个高质量执行环境,这个环境提供了诸如
安全性
、跨操作系统的可移植性
以及自动垃圾收集
等服务
- 提供一个庞大的
-
功能齐全
- 具备赏心悦目的
语法
和易于理解的语义
(原话)
- 具备赏心悦目的
-
Java存在
兼容性
问题(作者的想法)- 为了与现存代码的兼容,新增的特性就
没有
原有特性那么简洁精炼
- 为了与现存代码的兼容,新增的特性就
Java“白皮书”的关键术语
-
简单性
-
语法上的简单
- 剔除了C++中许多很少使用又难以使用和理解的特性,例如头文件、指针运算、结构、联合、操作符重载、虚基类等,因为这些特性带来的麻烦远远多于它的好处
-
另一个方面是“
小
”-
基本的解释器以及类支持大约40KB
-
基础的类库和对线程的支持,大约再增加175KB
-
当然,这是在当时刚发布时的情况了,由于不断发展,类库已经相当庞大了,现在提供了一个Java微型版(Java Micro Edition),适用于嵌入式设备
-
-
-
面向对象
- 简单来讲
- 面向对象设计是一种程序设计技术,重点放在数据(即对象)与对象的接口上
- 比方:一个“面向对象”的木匠始终首先关注最终的成品:”椅子“,其次才是制作的工具
- 与C++的对比
- 面向对象特性两者旗鼓相当
- Java不同之处在于可以接口多重继承,同时接口也是更简单的概念,提供了更加丰富的
- 简单来讲
-
分布式
-
健壮性
- Java强调前期的问题检测,后期的运行时检测,其编译器能够检测出在其它语言中仅在运行时才能够检测出来的问题
- Java采用的指针模型能够消除重写内存的可能性,而C++就会出现这种由于指针bug引起的内存冲突
-
安全性
-
体系结构中立
-
可移植性
-
解释型
-
高性能
-
多线程
-
动态性
Java applet与Internet
Java发展简史
版本 | 年份 | 新语言特性 | 类与接口的数量 |
---|---|---|---|
1.0 | 1996 | 语言本身 | 211 |
1.1 | 1997 | 内部类 | 477 |
1.2 | 1998 | strictfp修饰符 | 1524 |
1.3 | 2000 | 无 | 1840 |
1.4 | 2002 | 断言 | 2723 |
5.0 | 2004 | 泛型类、循环、可变元参数、自动装箱、元数据、枚举、静态导入 | 3279 |
6 | 2006 | 无 | 3793 |
7 | 2011 | switch支持字符串、菱形运算符、二进制字面量、异常处理增强 | 4024 |
8 | 2014 | lambda表达式、包含默认方法的接口、流和时间/时间库 | 4240 |
9 | 2017 | 模块、其他的语言和类库增强 | 6005 |