若是对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,做为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是本身接触的开发语言是如此的强大,忧虑的是万一哪一天Java市场占有率再也不,那咱们何去何从呢(Oracle收购Sun后这种忧虑日深,Oracle起诉谷歌,更是对于开源的Java开源的一种忧虑)?不过这都是小程序员的我来讲是杞人忧天了,在Java没落以前咱们应该先将Java搞清楚才对,而后由此深刻了解计算机的世界,对于Java程序设计语言,咱们主要经过几方面来学习:语言的历史,语言的基本构成,面向对象,字符串与数字,常见的工具类,集合,IO,多线程等。html
今天的学习主要是介绍Java程序设计语言的概述,内容讲解Java是怎么产生的,有哪些优势。下面开始今天的学习;java
Java是一门面向对象编程语言,是源于C++语言,它不只吸取了C++语言的各类优势,还摒弃了C++里难以理解的多继承、指针等概念,所以Java语言具备功能强大和简单易用两个特征。Java语言做为静态面向对象编程语言的表明,极好地实现了面向对象理论,容许程序员以优雅的思惟方式进行复杂的编程 。程序员
Java具备简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特色。Java能够编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。正则表达式
Java是一种高级的面向对象的程序设计语言。使用Java语言编写的程序是跨平台的,从PC机到手持电脑都有Java开发的程序和游戏,Java程序能够在任何计算机、操做系统和支持Java的硬件设备上运行。数据库
20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就当即引发了自动控制领域人员的注意,由于使用它能够大幅度提高消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其余几个工程师一块儿组成的工做小组在加利福尼亚州门洛帕克市沙丘路的一个小工做室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。编程
因为C++所具备的优点,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来讲,C++程序过于复杂和庞大。另外因为消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用须要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台(这其实也是Java跨平台设计的由来)。对于新语言的设计,Sun公司研发人员并无开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。(OaK就是Java语言的前身),这个名字源于James Gosling 办公室窗外的一颗橡树(OaK)。小程序
Java是于1995年由Sun公司推出的一种极富创造力的面向对象的程序设计语言,它是由有Java之父之称的Sun研究院院士詹姆斯.戈士林博士亲手设计而成的,并完成了Java技术的原始编译器和虚拟机。Java的最初名字是OAK,在1995年被重命名为Java,正式发布。设计模式
Java是一种经过解释方式来执行的语言,其语法规则和C++相似。同时,Java也是一种跨平台的程序设计语言。用Java语言编写的程序,能够运行在任何平台和设备上,如跨越IBM我的电脑、MAC苹果计算机、各类微处理器硬件平台,以及Windows、UNIX、OS/二、MAC OS 等系统平台,真正实现“一次编写,处处运行”。Java很是适于企业网络和Internet环境,而且已成为Internet中最具影响力、最受欢迎的编程语言之一。浏览器
与目前经常使用的C++相比,Java语言简洁的多,并且提升了可靠性,除去了最大的程序错误根源,此外他还有较高的安全性,能够说它是有史以来最为卓越的编程语言。安全
Java语言编写的程序既是编译型的,又是解释型的。程序代码通过编译以后转换为一种称为Java字节码的中间语言,Java虚拟机(JVM)将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM优化过的机器码形式保存,虚拟机将字节码解释为机器码,而后在计算机上面运行。Java语言程序代码的编译和运行过程如图1.1所示。
图1.1 Java程序的编译和运行过程
借助Java,程序开发人员能够自由地使用现有的硬件和软件系统平台。这是由于Java是独立于平台的,它还能够应用于计算机以外的领域,Java程序能够在便携式计算机、电视、电话、手机和其余的大量电子设备上运行。Java的用途不胜枚举,他拥有无可比拟的能力,其节省的时间和费用也十分可观。Java的应用领域主要有如下方面:
Java无处不在,它已经拥有几百万个用户,其发展速度要快于在它以前的任何一种计算机语言。Java可以给企业和最终用户带来数不尽的好处。Oracle公司董事长和首席执行官Larru Ellison说过:“Java正在进入企业、家庭、和学校。它正在像Internet自己同样成为广泛存在的技术。”
若是仔细观察,就会发现Java就在咱们身边,如咱们常用的Java开发工具Eclipse、NetBeans、JBuilder等,另外还有RSSOwl、Limewire、Azureus、CyberDuck、OpenOffice等优秀软件都是使用Java编写的。此外,各手机厂商都为本身的产品提供了Java技术的支持,各类手机上的Java程序和游戏已经数不胜数。
自从Sun公司推出Java以来,就力图使之无所不能。Java发展至今,按应用范围分为三个版本,即Java SE、Java EE、Java ME,也就是Java ONE(Open Net Environment)体系。本节将分别介绍这3个Java版本。
Java SE是Java的标准版,主要用于桌面应用程序的开发,同时也是Java的基础,它包含Java语言基础、JDBC(Java数据库链接性操做)、I/O(输入输出)、网络通讯、多线程等技术。Java SE的结构如图1.2所示。
图1.2 Java SE的结构
Java EE是Java的企业版,主要用于开发企业级分布式的网络程序,如电子商务网站和ERP(企业资源规划)系统,其核心为EJB(企业Java组件模型)。Java EE的结构如图1.3所示。
图1.3 Java EE的结构
Java ME主要应用于嵌入式系统开发,如掌上电脑、手机等移动通讯电子设备,如今大部分手机厂商所生产的手机都支持Java技术。Java ME的结构图如图1.4所示。
图 1.4 Java ME的结构
如何学好Java语言,是全部初学者须要共同面对的问题,其实每种语言的学习方法都大同小异,初学者须要注意的主要有如下几点:
API的全称是 Application Programming Interface,即应用程序编程接口。Java API文档是Java程序开发不可缺乏的编程词典,并记录了Java语言中海量的API,主要包括类的继承结构、成员变量和成员方法、构造方法、静态成员的详细说明和描述信息。能够在Java网站http://java.sun.com中找到最新版本的JDK文档(即API文档),Java API文档的页面效果如图1.5所示。
图1.5 Java API文档页面
Java 由四方面组成:
●Java编程语言,即语法。
●Java文件格式,即各类文件夹、文件的后缀。
●Java虚拟机(JVM),即处理*.class文件的解释器。
●Java应用程序接口(Java API)。
Java语言的做者们编写了具备普遍影响的Java白皮书,里面详尽地介绍了他们的设计目标以及实现成果,还用简短的篇幅介绍了Java语言的特性。下面将对这些特性进行扼要的介绍。
Java语言的语法简单明了,容易掌握,而且是纯面向对象的语言。Java语言的简单性主要体如今如下几个方面:
面向对象是Java语言的基础,也是Java语言的重要特性,它自己就是一种纯面向对象的程序设计语言。Java提倡万物皆对象,语法中不能在类外面定义单独的数据和函数,也就是说,Java语言最外部的数据类型是对象,全部的元素都要经过类和对象来访问。
面向对象也能够对比与面向过程来理解:面向对象是相对于面向过程而言的,面向过程着重于功能的实现过程,而面向对象则是将相同功能的实现封装进一个对象,而后经过调用这个对象来侧重于功能,着重于可以实现功能的对象。
Java的分布性包括操做分布(服务分布式)和数据分布(数据分布式),其中操做分布是指在多个不一样的主机上布置相关操做,而数据分布是将数据分别存放在多个不一样的主机上,这些主机是网络中的不一样成员。Java能够凭借URL(统一资源定位符)对象访问网络对象,访问方式与访问本地系统相同。
Java程序具备与体系结构无关的特性,能够方便的移植到网络上的不一样计算机中。同时,Java的类库中也实现了针对不一样平台的接口,使这些类库能够移植。举例来讲C++的数据类型中int类型并非固定的长度大小,而是根据环境或编译器指定的,而在Java中数据长度是固定的,这就使得Java在移植时不用考虑数据是否会存在溢出的状况,再好比,在针对本地方法调用时Java作了很好的处理,使得无论在Windows或Unix中都可以很好的运行。
运行Java程序须要解释器。任何移植了Java解释器的计算机或其余设备均可以用Java字节码进行解释执行。字节码独立于平台,它自己携带了许多编译时的信息,使得链接过程更加简单,开发过程更加迅速,更具探索性。
Java语言删除了相似C语言中的指针和内存释放等语法,有效的避免了非法操做内存。Java程序代码要通过代码校验、指针校验等不少测试步骤才可以运行,因此未通过容许的Java程序不可能出现损害系统平台的行为,并且使用Java能够编写防病毒和防修改的系统。
Java程序的设计目标之一,是编写多方面的、可靠的应用程序,Java将检查程序在编译和运行时的错误,并消除错误。类型检查能帮助用户检查出不少在开发早期出现的错误。集成开发工具(如Eclipse、NetBeans)的出现也使编译和运行Java程序更加容易。
多线程机制可以使应用程序在同一时间并行执行多项任务,并且相应的同步机制能够保证不一样线程可以正确地共享数据。使用多线程,能够带来更好的交互能力和实时行为。Java提供了很好的多线程机制。
Java编译后的字节码是在解释器中运行的,因此它的速度较多数交互式【交互的意思就是你和程序对话.例如你点击一个按钮,而后程序弹出一个窗口"您真的要退出吗?"这样你就能够选择了.这个就叫交互.目前大部分的程序都是交互程序。】应用程序提升了不少。另外,字节码能够在程序运行时被翻译成特定平台的机器指令,从而进一步提升运行速度。
Java在不少方面比C和C++更能适应发展的环境,能够动态调整库中方法和增长变量,而客户端却不须要任何更改。在Java中进行动态调整是很是简单和直接的。
Java编写的程序通过编译生成字节码。这个字节码不只能够很容易地在任何机器上执行,并且还能够动态地翻译成本地机器代码。这是Java体系结构中立的体现,但这仍是依赖于JVM实现的。
得益于Java的跨平台和丰富的工具包支持,Java在现在的互联网时代已经成为一门重要的开发语言了;虽然如今计算机技术日益进步,可是选择Java仍不失为明智自居。
每次谈到Java的跨平台,都有意犹未尽的意思,这也是为何这章,我花了很大的篇幅在Java的历史上面的缘由,为此,咱们单独做为一个问题,在另外一篇文章中进行了探讨,想要了解的能够参见深究Java跨平台。