本人男,目前就职于大连某著名外包企业,小程序猿一名,梦想着靠自己的努力实现梦想。
工作两年多,逐渐但觉到理想与现实的差距,仍不远放弃自己小小的梦想,调整心态,继续上路!
闲话少说,最近想学学Java,于是买了两本书开始学习,走起!
第一章
基本上就是Java的概述和历史。
Java发布于1996年。Java并不只是一种语言,Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
Java“白皮书”的关键术语
简单性
Java语法与C++类似,是C++的一个“纯净”版本,保留了C++的精华,但是去除了一些不易理解,容易带来麻烦的特性。Java中没有头文件,指针运算,Structure,Union,操作符重载,虚基类等不容易理解的语法。
面向对象
面向对象是一种程序设计技术。它将重点放在数据(即对象)和对象的借口上。用木匠打一个比方,一个“面向对象的”木匠始终关注的是所制作的椅子,第二位才是所使用的工具;一个“非面向对象的”木匠首先考虑的是所使用的工具,第二位才是所制作的椅子。
Java与C++的主要不同点在于多继承,Java不支持多继承,但是可以实现多个接口。
网络技能
Java有一个扩展的类库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
健壮性
Java投入了大量的精力进行早期的问题检测、后期动态的(Runtime)检测,并消除了有出错倾向的状态······Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
(使用Java后,再也不用担心使用的指针没有delete了~)
安全性
从一开始Java就被设计成能够防范给中攻击,其中包括:
- 运行时堆栈溢出。如,蠕虫等病毒常用的攻击手段。
- 在自己的处理空间之外破坏内存。
- 未经授权读写的文件。
体系结构中立
编译器生成一个体系结构中立的目标文件格式。
可移植性
与C/C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型大小以及有关运算都做了明确的说明。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。字符串是用标准的Unicode格式存储的。
解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程,所以,开发过程也变得更加快捷,更加具有探索性。
高性能
Java的即时编译器可以监控经常执行哪些代码并优化这些代码以提高速度。更为复杂的优化是消除函数调用(即“内嵌”)。即时编译器知道哪些类已经加载。如果基于当前加载的类集,且特定的函数不被覆盖的话就可以内嵌。必要时还可以撤销优化。
多线程
Java比C/C++更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。在Java中找出运行时类型信息十分简单。
第一章内容主要就这些,笔记中只记录了Java的特性,关于历史等介绍就略过了,没有什么技术价值。