First release of Java: 1996
Java 的11个口号:
1. Simple
和C++相比,去除很多不常用、不好理解、易混淆的弊大于利的特性,如头文件、指针、结构、联合、操作符重载等;
...
2. Object oriented
和C++相似,区别是Java是单继承,其多继承特性由接口这个概念和metaclass model(这是啥?待查)来实现
3. Network-Savvy
但凡写过网络编程的都觉得用Java来写真是省事,至少我是这么觉得,就和本地文件读取一样
4. Robust
强健性,和C++类似,但是Java不用担心指针越界
5. Secure
6. Architecture Neutral
.java -----> .class(bytecode, 平台无关) ------> interpret(不同架构的机器上解释执行)
劣势:比直接从机器码执行慢,但是
即时编译(just in time complilation)改善了这一情况
7. Portable
比如,C/C++ 的int可能是16bit,也可能是32bit,这取决于不同编译器,但Java的int就是32bit。有固定的大小消除了很多问题比如字节序。
还比如,图形程序,早期的java 1.0因为使用host的用户接口,所以在WIN/UNIX/MAC上显示会有差异,但是有总比没有好。经过改进的java工具包已经完全重写,不在依靠host,可以再现实上实现多平台一致性。
8. Interpretd
早期的Java通过Incremental linking(增量链接)来解释执行,很慢;
现在的Java通过JIT compiler
9. High Performance
感谢JIT
10. Multithreaded
11. Dynamic
Java的理解误区:
1. Java很简单?
Java无比强大,写一个hello world确实很简单,但是...
2. Java会成为所有平台的通用编程语言?
这是所有人的美好愿望(也许除了微软)。一些涉及到硬件的程序比如文字处理、照片编辑等,已经用C\C++写好并且有多个平台的版本,显然用Java重写并不能带来什么性能上的优势。(所以一些Java写得游戏引擎在涉及到性能时还是会用C\C++写- -|)
3. Java干不过C#?
当然,在Windows下干活的话,C#还是蛮强势...但是C#离开Windows就不行了。
4. JavaScript是Java的mini版?
两者除了名字相似,语法相近,真没其他关系了。JavaScript是由伟大的Netscape发明,本叫LiveScript(就叫这个名多好)
Chapter 1 end.
上个图纪念下~