Java基础巩固——《Java核心技术基础·卷一:基础知识》
阅读记录追踪:前言部分
阅读前先看:简介、目录和勘误!
Java编程语言是一种多用途、并发的、基于类的、面向对象的编程语言;编译时通常包括将持续转化成机器无关的字节码表示。运行时活动包括加载和链接执行持续所需的类,生成可选的机器代码,动态优化持续和执行实际的程序。
Java提供代码的可移植性、内存垃圾回收器,以及大型的API库(庞大的库——优质的资源),提供奇特的绘图功能、网络连接功能和数据库存取功能。可以从以下11个关键字对Java进行描述:简单性、面向对象、网络技术、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程和动态性。
针对简单性而言,Java的目标之一是支持开发能够在小型机器上独立运行的软件;基本的解释器以及类支持大约仅为40KB;再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核)大约需要增加175KB。
Java的网络技能在于:一个扩展的例程库,用于处理像HTTP和FTP这类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
Java语言的健壮性体现在两方面:出错倾向的检查和指针模型(并没有采用指针,而是对C++指针的封装)。但没有指针的语言,许多数据结构很难实现。Java是如何实现这些数据结构的?
Java的安全性机制:Java设计能够防范各种袭击,包括:运行时堆栈溢出,在自己的处理空间之外破坏内存,未经授权读写文件等等。(这一点怎么和Linux的权限系统如此相似!)
体系结构中立,指的是:使用了虚拟机。(这一部分需要重点把握)生成的中间代码,可以应用于所有已经正确安装解释器的机器上。
可移植性体现在:基本数据类型的大小以及有关算法都做了明确说明;Java中的数据类型具有固定大小,消除了代码移植时可能遇到的问题。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。
Java的解释型体现在哪里?导致的结果在于:对关键应用程序运行速度较慢。现今JVM采用即时编译器,其代码运行速度和C++相差无几。
在一些特定的场合需要更加高效的性能,Java编译后的字节码可以(在运行时)快速地翻译成运行这个应用程序的特定CPU机器码,以进一步提高执行速度。
Java的多线程执行,带来更好的交互响应和实时行为。只要操作系统支持,Java中的线程就可以利用多个处理器。在底层,主流平台的线程实现机制各不相同,Java并没有话费太大的力气对此实现平台无关性。在不同的机器上,只是调用多线程的代码完全相同;Java把多线程的实现交给了底层的操作系统或线程库来完成。
Java和applet,当今如果需要在浏览器上显示动态效果时,大多数网页都会直接使用JavaScript或Flash,而不是applet。
Java语言的发展状况如下:
可见:在2004年加入新特性后,API有爆炸性的增长。
Java的常见术语
容易混淆的是:JRE指Java运行环境,包含有虚拟机但不包含编译器。这并不是开发者所想要的环境,而是专门为不需要编译器的用户而设计的。JDK,很形象得被称为是:开发工具箱(tool-kit)。
注意:在安装JDK时,Windows环境下强烈建议不要接受带有空格的默认路径名,而使用如下形式:jdk/bin或jdk1.6.0\bin...此外,还需要将jdk/bin目录添加到执行路径中;所谓执行路径指的是操作系统搜索本地可执行文件的目录列表。
在jdk\bin的同一级目录包含有src.zip文件,该文件就是所有公共类的源代码
获得更多的源代码(编译器、虚拟机、本地方法以及私有辅助类等等)可以访问:oracle.net。
如下是JDK部分的剖析图:
可以明显看出:JDK和JRE的不同之处。
Java的引用类型包括三种:类类型、接口类型和数组类型。引用类型是由动态创建的对象(类或数组的实例)实现的,可以有多个引用指向一个对象。有用于把基本值包装在对象内部的类,这个类我们称为包装类。