【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象

时间:2022-03-07 20:54:18

JAVA起源

【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象

从JDK诞生到现在已经有11年的时间了。沧海桑田一瞬间。转眼11年过去了,JDK已经发布了6个版本。在这11年里诞生了无数和Java相关的技术和标准。现在让我们进入时间隧道,重新回到1995年,再来回顾一下Java的发展轨迹和历史变迁。

一、 JDK前传

在这个世界上,熟悉Java历史的人非常多,如果要问一个人Java是从哪年诞生的,也许大多数人都会回答是1995年(这个非常好记,因为微软的Windows95也是在这一年发布的)。但事实上Java早在上个世纪90年代初就开始酝酿了。

1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。而Green项目组的成员一开始使用C++语言来完成这个项目, 由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,Gosling首先改写了C++编译器,但很快他就感到C++的很 多不足,需要研发一种新的语言来替代它,这时Oak语言诞生了。

在17 个月后,整个系统完成了,这个系统是更注重机顶盒式的操作系统,不过在当时市场不成熟的情况下,他们的项目没有获得成功,但OaK语言却得到了Sun总裁McNealy的赏识。

直至 1994年下半年,由于Internet的迅猛发展和环球信息网 WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。我们姑且将Java的这段历史称为Java前传吧。

其实Java的诞生颇有那么一股“有心栽花花不开,无心插柳柳成阴”的味道。就象当年Unix和它的前身MULTICS系统一样。

二、JDK的幼年时期(1995~1998)

Sun继Green项目后又经过了几年的研究,终于在1995年5月23日在SunWorld'95上正式发布Java和HotJava浏览 器。在同年,有很多公司先后获得了Java许可证,如Netscape在1995年8月,Oracle在1995年10月分别获得了Java许可证。 Sun在1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门──JavaSoft部,这个部分主要负责开发、销售并支持基于 Java技术的产品,由AlanBaratz先生任总裁。

在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持还行。因此,Sun在 1996年1月23日发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、集成 API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译Java程序的编译器(即javac)。在JDK1.0时 代,JDK除了AWT(一种用于开发图形用户界面的API)外,其它的库并不完整。

Sun在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1。JDK1.1相对于JDK1.0最大的改进就是为JVM增加了JIT(即时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调用时就不需要再编译了。这样JDK在效率上有了非常大的提升。

Sun在推出JDK1.1后,接着又推出了数个JDK1.x版本。自从Sun推出Java后,JDK的下载量不断彪升,在1997年,JDK的下载量突破了220,000,而在1998年,JDK的下载量已经超过了2,000,000。

虽然在1998年之前,Java被众多的软件企业所采用,但由于当时硬件环 境和JVM的技术原因,它的应用却很有限。当时Java主要只使用在前端的Applet以及一些移动设备中。然而这并不等于Java的应用只限于这些领 域。在1998年是Java开始迅猛发展的一年。在这一年中Sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和 J2ME。标志着Java已经吹响了向企业、桌面和移动3个领域进军的号角。


CHAPTER 1对象导论

地球人都知道,JAVA是一种面向对象(OO)的程序设计语言。

一种纯粹的面向对象程序设计方式的五个基本特性:

  • 万物皆为对象;
  • 程序是对象的集合;
  • 每个对象都有自己的由其他对象所构成的存储;
  • 每个对象都拥有其类型;
  • 某一特定类型的所有对象都可以接受同样的消息。

JAVA所有的类最终都继承自单一的基类;——单根继承结构

异常是一种对象,他从出错地点被“抛出”,并被专门设计用来处理特定类型错误的相应的异常处理器“捕获”。

并发编程

JAVA与internet


CHAPTER 2 一切都是对象

JAVA中的“引用”

就好比用遥控器(引用)来操纵电视机(对象),只要握住遥控器,就能保持与电视机的连接。如 String S;但是这里所创建的只是引用,并不是对象,因为它没有与任何事物相关联(即没有电视机), 因此,一种安全的做法是:String s=”asdf”;。

创建的对象存储到了什么地方?

  1. 寄存器:最快的存储区,位于处理器内部;
  2. 堆栈:位于通用的RAM,有堆栈指针,若向下移动则分配新的内存,向上则释放内存;
  3. 堆:也位于RAM,用于存放所有的java对象(new)
  4. 常量存储:ROM;
  5. 非RAM存储:流对象和持久化对象;

JAVA中的数组

必须被初始化;

JAVA中对象的销毁

由作用域决定,JAVA垃圾回收器会监视new出来的对象,当不再被引用,则自动销毁。

JAVA的编码风格:驼峰风格

类名的首字母要大写,如果类名由几个单词构成,那么把它们并在一起其中每个内部单词的首字母都采用大写形式,标识符的第一个字母采用小写。