【自学java笔记#第一天#】Java程序设计概述
选用教材:《Java核心技术卷一》
第一章 Java程序设计概述
1.1 Java程序设计平台
1.1.1 Java是一个完整的平台,而非是一门单纯的语言。它包括:庞大的库、可重用的代码、无与伦比的安全性、跨操作系统的可移植性、自动垃圾收集等服务。
1.2 Java “白皮书”的关键术语
1.2.1 简单性
读本科时,略有接触过java。知道它是一门和C++比较相像的计算机语言,但它在C++的基础上,又摒弃了很多程序员几乎用不上/容易出错的特性如指针等,所以java的简单性不难理解。
1.2.2 面向对象
就我接触过的计算机语言而言,大体上可以总结为面向过程和面向对象这两类。面向过程的语言注重的是达成最终目标的过程,面向对象则将重点放在整个过程中出现的数据及它们的行为上。举一个浅显的例子,我们小时候喜欢玩的贪食蛇游戏,面向过程的语言专注于如何使这条贪食蛇将食物一颗颗吃完这个过程的实现方法,可能是调用一个接一个的函数去达成目的;而面向对象的语言首先要分析出整个系统中存在的东西,比如贪食蛇、食物粒子、规则系统:吃到食物,贪食蛇的长度会增加;咬到身体的任何部位或者撞到墙壁,就宣布游戏结束等。分析出这些东西或者说功能,再辅以恰当的工具来实现整个系统。
1.2.3 分布式
书里面写的比较模糊,我自己的理解是:分布式这个概念和一体式是相对的。好比我只有一台电脑,我既想用它来打大型游戏,又想用来编代码。因为这台电脑本身性能一般,所以用的越久,它就越卡,卡到让我怀疑人生。而如果我和网吧老板一样,拥有很多台电脑就没有这个烦恼了,我可以将几台电脑划分到打游戏的板块,再将其他的电脑划分到编代码的板块,这些电脑各司其职,我能玩得尽兴也能尽情提高我写代码的能力。不仅如此,在有必要的时候,我还能将编代码的电脑再更改为玩游戏的电脑,邀请三五好友在峡谷里驰骋。
1.2.4 健壮性
现在没有弄清楚java程序运行的底层逻辑,这一个特性挺难理解的。暂且放到第二章的学习中去解决吧。
1.2.5 安全性
这点同上,我还没有配置java开发环境,没有真正写代码,所以理解得并不透彻。但是既然java被这么多程序员奉为殿堂级语言,它的安全性应该是无可比拟的吧。我目前只能浅显地认为是因为它独特的开发环境(虚拟机/沙箱)及开源协议等的限制性带来的强大的安全性。
1.2.6 体系结构中立
C、C++等语言,遵循的是这套程序实现规则:C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件。但是java却另辟蹊径,不仅删掉了头文件这一块,还通过即时编译,在过程中生成一种字节码指令。使得在任何安装有java运行系统的机器上都能成功运行。
1.2.7 可移植性
大学学C语言的时候,深刻地记得在不同机器上,数据的位数是不同的。所以将一台机器上写好的C程序,放到另一台机器上去运行,就有可能发生错误。但是java的数值类型有固定的字节数,这样以来就使得它具有良好的可移植性。
1.2.8 解释型
和体系结构中立的解释大同小异吧,任何安装有java解释器的机器,都能运行它生成的字节码序列。
1.2.9 高性能
即时编译方式的优势体现,要在具体编程时才能感受得到。
1.2.10 多线程
这一点还是比较抽象的,从字面意思上是可以理解,但是java并发程序设计是怎么一回事就不太清楚了,且等我入行后再细细品味吧。
1.2.11 动态性
Java有一个庞大的库,书上说我们可以在库中自由地添加新方法和实例变量,而对客户端不会造成任何影响。正式开始编程后,再体验这一点。
这一章其他的内容没啥好说的了,重点是把java的这11个特性过一遍,最好是能用我自己的话复述出来。文字性的东西倒还好理解,希望从明天开始的实际编程学习时,心态不要爆炸!
浙公网安备 33010602011771号