java原来是sun公司一个叫做“green project”的项目编写Star7的一个编程语言,初始的名字教oak,而非java。当时(1990年12月)由Patrick Naughton,Mike Sheridan与James Gosling来主持,sun认为下一波的计算机应用趋势将集中在消费性数字产品,1992年,“green project”展示了star7手持设备,而oak在绿色项目中目的是编写Star7上程序的编程语言,oak名字的由来是James Gosling的窗外有一颗橡树,顺手就起了这样一个名字,后来发现oak已经被注册了,于是工程师们在一边喝咖啡一边讨论问题的时候,灵机一动,起名为java(即咖啡豆的意思)
时至今日,java主要发展出三个领域的应用平台,java 2 platform,standard Edition(java se)、java 2 platform,Enterprise Edition(jave ee)与java 2 platform ,Micro Edition(java me)。图1-0三个应用平台的结构图。
图1-0 三个应用平台结构图
java se为各应用平台的基础,图1-1是javase的组成结构图,在网上找了很久,之后这个还是勉强可以用的,大家先凑合吧,不影响理解。
图1-1 javase组成结构图
javase可以分为四个主要部分,jvm,jre,jdk和java语言。
为了能运行java,必须要有java虚拟机(java virtual machine,jvm),jvm包括在jre(java runtime environment),所以为了能运行java程序,就必须先安装jre。
如果要开发java程序,就需要安装jdk(java development kits),jdk包含了jre以及开发时需要的一些工具(javaw,javac……)。
java只是javase的一部分,除了语言之外,java最重要的是它的API(application interface)类库,提供各种各样的功能,比如字符串的输入输入,网络组件,图像化组件接口等等,当你开始开发程序时,可以采用这些API作为基础来开发,事实上,等你掌握了java的基本语法知识后,你会发现都是在学习如何使用javase提供的API来开发程序
1996年的javaone大会上,javaone公布了新的java体系架构,这些架构根据不同级别的应用开发区分了不同的版本,分为J2SE,J2EE,J2ME三个版本
javaee以javase为基础,定义了一些的服务,API,协议等等,适用与开发分布式,多层式,以组件为基础,以web为基础的应用基础,整个jaaee的体系似乎非常庞大的,不论如何,要掌握javaee,先必须掌握好javase,这个是前提
javame是java平台中版本最小的一个,主要是用于小型数字设备上开发及部署应用程序的平台,像消费类的电子产品和嵌入式设备,这也是java最初始时的目标
javase,jre,jdk,哇,真是搞得人很晕哪,那就先分辨下,javase是javase的一个版本,jre是java程序的运行环境,jdk是java的开发工具
javase-----java standard Edition
jre----------java runtime Edition
jdk----------java development kits
说java,当然不能直说能干些什么了,还应该搞清它的特性,它为什么能干这些或者干的比较好吧
简单的
面向对象是java这门语言的定位,这个不用多说,题外说一句,面向对象是一种分析问题的方式,并非一种工具或者其它什么的,面向对象的好处之一,就是设计出可重用的组件,或者可以直接使用别人的java组件,并是开发出来的代码可维护性强,更具弹性
网络的,java本身就是网络的产物,java有对网络非常多的组件,事实上,java应用最多的还是在网上服务上
解释的,先明确个事儿,程序如果要在一个操作平台上运行,首先必须编译为计算可可以识别的机器语言,每个平台都不相同,最显而易见的就是windows平台和linux平台,这两个平台之间的软件是无法通用的
java为解决这个问题,提出了jvm的概念,即通过jvm把各个平台系统屏蔽起来,使其对java程序而言变得不可见,java在编译时,首先编译为以系统平台无关的字节码(bytecode),jvm便是java字节码文件的虚拟操作系统,java字节码就是jvm的可执行文件,在运行是,bytecode通过实时编译器jit(just in time compile ),将字节码解释为原是平台所接受的机器语言,通过jvm似的java程序在不同的平台上都可以运行,图1-2是java程序的编译和运行过程
图1-2 java程序的编译和运行过程
健壮的,主要体现在去除了c和c++当中功能强大但不容易掌握的部分,比如指针
安全的,主要体现在java的垃圾回收机制,以及exception异常捕获处理,synchronized同步处理等,都加强了java的安全性
可移植性,由于java是建立在jvm上,所以java的基本数据类型的长度都是固定的,所以让java跨平台,相当easy
高性能,由于java程序的运行需要经历二次编译,所以性能一直让人怀疑,java也一直在改进,比如提出的hotspot技术
简单的,java出去了c和c++当中复杂或者不安全的部分,并简化了开发人员常用的特性,使得便于使用,去除了运算符重载,多重继承,指针
java的学习
多看别人写的程序,了解别人是如何使用java来解决问题的,针对同样的问题进行练习,从实例中看看自己是否真正了解到了如何采用java解决问题
个人啰嗦一句
学西新的东西的时候,最好找一个“好玩”的目的,带动自己的兴趣,掌握一门语言是一件很容易的事,毕竟对于语言,还只是软件开发当中非常非常基础的一个东东,嗯,我是这么认为的