《Java核心技术卷Ⅰ》阅读笔记,更新中——
第一章 Java程序设计概述
1.1 Java白皮书
1)简单性
2)面向对象
3)分布式
4)健壮性
5)安全性
6)体系结构中立
7)可移植性
8)解释性
9)高性能
10)多线程
11)动态性
1.1.1 简单性
Java可以说是C++的一个纯净版本。Java没有头文件、指针运算、结构、联合、操作符重载、虚基类等。同时C++和Java的语法很相似。
1.1.2 面向对象
Java的面向和C++的面向对象旗鼓相当。Java和C++的不同点在于多重继承,在Java中,取而代之的是接口。与C++相比,Java提供了更丰富的运行时自省功能。[?]
1.1.3 分布式
Java有丰富的库用于处理HTTP和FTP之类的协议,是的访问URL和网上内容很便捷。
1.1.4 健壮性
Java与C/C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。[?]
Java编译器能够检测许多其他语言中仅在运行时才能够检测出来的问题。
1.1.5 安全性
一开始的Java程序并不安全,存在一些小Bug。
1.1.6 体系结构中立
Java能够生成体系结构中立的目标文件格式(.class)。这是一种编译型代码,它可以在很多处理器上运行。可以在虚拟机上转化为原生机器代码。
解释虚拟机指令肯定比全速运行机器指令慢得多。不过,虚拟机有个选项,可以将执行最频繁的字节码序列转换成机器码,即即时编译(just-in-time compliation)
。
1.1.7 可移植性
- Java中的int总是32位整数,不像C++中int'大小依据操作系统。
- 二进制数据以固定的格式进行存储和传输,消除了有关字节顺序的困扰。[?]
- 字符串采用标准的Unicode格式存储。
- 很多Java库也能很好地支持平台独立性,无需顾虑底层操作系统。
1.1.8 解释性
Java9 提供了jshell工具来支持类似于逐行执行并能直接看到结果的编程。
1.1.9 高性能
现在的即时编译器已经非常出色,可以和传统编译器相媲美。即时编译器可以监控哪些代码频繁执行,并优化这些代码以提高速度。还能消除函数调用(即“内联”)。即时编译器知道已经加载了哪些类。基于当前加载的类集合,如果一个特定的函数不会被覆盖,就可以使用内联。[?]
1.1.10 多线程
摩尔定律即将走到尽头,我们不在追求更快的处理器,而是着眼于更多的处理器。Java支持多线程。
1.1.11 动态性
Java本质为静态语言,而不是动态语言。动态语言显著的特点是在程序运行时,可以改变程序结构或变量类型,典型的动态语言有Python、ruby、javascript等。Java不是动态语言,但Java具有一定的动态性。[?]
1.2 Java发展简史
Java版本分为三种,标准版(Java SE)
、微型版(Java ME)
、企业版(Java EE)
。
Java版本的更迭
标签:Java,1.1,核心技术,虚拟机,C++,编译器,多线程 From: https://www.cnblogs.com/vLiion/p/17726278.html