Java核心技术卷I学习笔记第一章

Java 语法是 C + + 语法的一个 “ 纯净 ” 版本。 这里没有头文件 、指针运算 ( 甚至指针语法 )、 结构 、 联合 、 操作符重载 、虚基类等

Java 的面向对象特性与 C + + 旗鼓相当。 Java与 C ++ 的主要不同点在于多重继承, 在 Java 中 , 取而代之的是更简单的接口概念 。 与 C + +相比, Java提供了更丰富的运行时自省功能

Java 有一个丰富的例程库, 用于处理像HTTP 和 FIT 之类的 TCP / IP 协议。 Java应用程序能够通过 URL 打开和访问网络上的对象, 其便捷程度就好像访问本地文件一样 。

Java 编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题 。 至于第二
点, 对于曾经花费几个小时来检查由于指针 bug而引起内存冲突的人来说, 一定很喜欢 Java的这一特性。

编译器生成一个体系结构中立的目标文件格式, 这是一种编译过的代码 , 只要有Java 运行时系统 , 这些编译后的代码可以在许多处理器上运行。 Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性 。 精心设计的字节码不仅可以很容易地在任何机器上解释执行, 而且还可以动态地翻译成本地机器代码

Java 中的int 永远为 32 位的整数, 而在 C / C ++ 中 , int可能是 16 位整数 、 32 位整数 , 也可能是编译器提供商指定的其他大小。 唯一的限制只是int 类型的大小不能低于 short int , 并且不能高于 long int。 在Java 中, 数据类型具有固定的大小 ,这消除了代码移植时令人头痛的主要问题 。 二进制数据以固定的格式进行存储和传输 , 消除了字节顺序的困扰 。 字符串是用标准的 Unicode 格式存储的

除了与用户界面有关的部分外 , 所有其他Java 库都能很好地支持平台独立性 。 你可以处理文件 、 正则表达式 、 XML 、 日期和时间 、 数据库 、 网络连接 、 线程等 , 而不用操心底层操作系统。 不仅程序是可移植的 , Java API往往也比原生 API 质量更高。

Java 在当时很超前 。 它是第一个支持并发程序设计的主流语言。 从白皮书中可以看到 ,它的出发点稍有些不同。 当时 , 多核处理器还很神秘 , 而 Web编程才刚刚起步, 处理器要花很长时间等待服务器响应 , 需要并发程序设计来确保用户界面不会 “ 冻住 ”。并发程序设计绝非易事 , 不过 Java 在这方面表现很出色 , 可以很好地管理这个工作

但在实际中,某些领域其他语言有更出色的表现 , 比如, Objective C 和后来的 Swift 在 iOS 设备上就有着无可取代的地位 , 浏览器中的处理几乎完全由 JavaScript 掌控 。 Windows 程序通常都用 C + + 或 C # 编写 。 Java 在服务器端编程和跨平台客户端应用领域则很有优势

早期的 Java 是解释型的 。 现在 Java 虚拟机使用了即时编译器 , 因此采用 Java 编写的
“ 热点 ” 代码其运行速度与 C ++ 相差无几 , 有些情况下甚至更快 。

所有的 Java applet 都是在网页浏览器中运行的 。 这也恰恰是 applet 的定义 , 即一种在浏
览器中运行的 Java 程序 5 然而 , 大多数 Java 程序是运行在 Web 浏览器之外的独立应用程序 。实际上 , 很多 Java 程序都在 Web 服务器上运行并生成用于网页的代码 。

JavaScript 是一种在网页中使用的脚本语言 , 它是由 Netscape 发明的 , 原来的名字叫做
LiveScript。 JavaScript的语法类似 Java , 除此之外, 两者无任何关系 。 当然 , 名字有些相像 。JavaScript 的一个子集已经标准化为 ECMA - 262 。 与 Java applet 相比 , JavaScript 更紧密地与浏览器集成在一起。特别是 JavaScript程序可以修改正在显示的文档 , 而 applet 只能在有限的区域内控制外观

你可能感兴趣的:(Java)