1、java简史
- SUN公司是一家什么样的公司?
美国SUN(Stanford University Network)公司
在中国大陆的正式中文名为“太阳计算机系统(中国)有限公司” 在台湾中文名为“升 阳电脑公司”。
- Java为什么被发明?
Green项目。
应用环境:像电视盒这样的消费类电子产品要求:
语言本身是中立的,也就是跨平台
- Java的发明人?
James Gosling
• 1991年,Sun公司的Green项目,Oak
• 1995年,推出Java测试版
• 1996年,JDK1.0
• 1997年,JDK1.1
• 1998年,JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为Java2
• 1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技术诞生
• 2004年,J2SE 5.0 (1.5.0) Tiger老虎.为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。
• 2006年,J2SE 6.0 (1.6.0) Mustang野马.此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
• 2009年4月20日甲骨文收购Sun公司,交易价格达74亿美元
• 2011年,JavaSE7.0
• 2014年 ,JavaSE8.0
• Sun公司的主要竞争对手是IBM,业务高度重合
• Sun抱有很多先进的技术,但在策略上一直奉行技术保护主义,在定价策略上能多高就多高,争取利润最大化。一味抓眼前利益,而失去了前瞻的视野。
• Sun是一家极具创新能力的公司, 但是没能利用Java构建一个强有力、可变现的生态系统,没打好Java这张牌。
• 2008年金融危机给sun公司致命的打击
• 2009年4月20日甲骨文以现金收购Sun微系统公司,交易价格达74亿美元
2、java的三大版本
• JavaSE Java的标准版本 (Java2 Standard Edition) 定位在客户端,主要用于桌面应用软件的编程
• JavaME (Java2 Micro Edition) 主要应用于嵌入式系统开发,如手机和PDA的编程
• JavaEE 企业版本(Java2 Enterprise Edition)定义在服务器端Java2的企业版,主要用于分布式网络程序的开发,如电子商务网站
• 2005 JavaOne大会召开,Sun公司公开Java SE6。此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
3、java的特点
• Java是跨平台的
• Java是简单的
• Java是安全的
• Java是完全面向对象的
• Java是健壮的
• Java是跨平台的
• Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
• Java是简单的
• 不再有#include 和#define 等预处理功能
• 不再有struct,union及typedef
• 不再有函数、
• 不再有指针、不再有多重继承
• 不再有goto
• 不再有操作符重载(Operatior Overloading)
• 不再有全局变量
• 不再有手动内存管理
• Java是安全的
• Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
• Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
• Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
• 而在运行环境提供了四级安全性保障机制:
• 字节码校验器 -类装载器 -运行时内存布局 -文件访问限制。
• Java是完全面向对象的
• Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
• 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!
• Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
• Java是健壮的
• Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
• 对指针的丢弃是Java的明智选择。
• Java的安全检查机制使得Java更具健壮性。
4、java的跨平台原理 和 C语言跨平台原理
• 总结1:Java运行过程
• Java程序的运行分为两步:先编译再解释执行
• 通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立的中间文件格式)
• 通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行
• 总结2:Java跨平台和C跨平台的区别
• Java:一次编译,到处运行 C:多次编译,到处运行
• 在互联网情况下,平台各异,Java的跨平台更具有优势
• Java可以跨所有平台吗:要看有没有提供并安装相应的虚拟机
• Java的运行速度没有C语言快
• Java需要将class文件解释成机器码再执行;C执行执行机器码
• 总结3:字节码文件bytecode
• .class文件 二进制文件
• 格式中立、平台无关的二进制文件
• 是编译的产物,是解释的原料
JDK、JRE、JVM的区别联系
JDK:
• Java Development Kit
• 针对Java开发员的产品
JRE:
• Java Runtime Environment
• 是运行Java程序所必须的环境集合
JVM
• Java Virtual Machine
• 解释运行Java字节码文件,跨平台的核心
• 联系:JDK 包含JRE,JRE包含JVM。