摘要:1996年Java第一次发布就引起了人们的广大关注。本文简要地介绍一下Java语言的发展历史。

一、Java程序设计平台

Java是一种优秀的程序设计语言。一旦一种语言应用于某个领域,与现存代码的兼容性问题就摆在了人们的面前。这就导致Java在发展之初没有那么完美无瑕,但是,Java的发展是不断追求进步与完善的过程。在第一次发布时,Java的问世引起了业界的极大关注,举个真实的栗子,当时关注Java的人士不仅限于计算机出版界,还有诸如《纽约时报》《华盛顿邮报》《商业周刊》这样的主流媒体。

Java是个一完整的平台,有一个庞大的库,其中包含了很多的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾手机等服务的执行环境。

作为一名程序设计人员,很希望能有一种语言,它的语法易于理解、可操作性强,Java满足这些要求的。Java有着功能齐全的出色语言,和高质量的执行环境,还提供了庞大的库。这些正是它的魅力所在。

二、探索Java的神奇所在

1.简单性

Java剔除了C++中许多很少使用、难以理解、易混淆的特性。相当于,Java是C++语法的一个“纯净”版本。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。当然,Java并没有完全剥离掉与C++语法上的共同性。比如,switch语句的语法在Java中就没有改变。

另外,Java的简单性还体现在,Java的目标之一是支持开发能够在小型机器上独立运行软件。基本的解释器以及类支持大约仅为40KB;再加上基础标准类库和对线程的支持(基本上是一个自己包含的微内核)大约需要增加175KB。

在当时,这已经是了不起的飞跃了。而今,由于不断的扩展,库类已经相当庞大了。现在有一个独立的具有较小库类的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备。

2.面向对象

面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。

3.分布式

Java有一个丰富的例程序,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开访问网络上的对象,其操作性就像访问本地文件那么简单。

(补充两个名词解释:1.Sandboxie:即沙箱或沙盘,是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此y运行时所产生的变化可以随后删除它。其为独立的虚拟环境,可以用测试不受信任的应用程序或上网行为。2.Visual Basic:是由微软公司开发的结构化模版化的、面向对象的,包含开发环境的事件驱动为机制的可视化程序设计语言。)

4.健壮性

Java编译器能够检测出许多其他语言中仅在运行时才能够检测出来的问题。Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。

5.安全性

Java适用于网络/分布式环境。从一开始,Java就设计能够防范各种攻击:

1)运行时推栈溢出。

2)破坏自己的进程空间之外的内存。

3)未经授权读写文件。

最初,Java开发包(Java Development Kit,JDK)的第一版本问世不久,就被发现存在bug,也多次被黑客攻击。为修复bug,sun以及之后的Oracle公司度过了很艰难的时期。Java浏览器插件不再信任远程代码,除非代码有数字签名而且用户同意执行这段代码。

6.体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过程的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。

7.可移植性

与C和C++不同,Java规范中没有“依赖具体实现”的地方。其基本数据类型的大小以及有关运算都做了明确的说明。Java库能够很好的支持平台独立性。你可以处理文件、正侧表达式、XML、日期和时间、数据库、网络链接、线程等,而不用操心底层操作系统。

8.解释型

Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程,使得开发环境更加便捷。

9.高性能

Java更高性能的体现,字节码可以(在运行时刻)动态地翻译称对应运行这个应用的特定CPU的机器码。

10.多线程

多线程可以更好的交互相应和实时行动。

例如,在并发程序设计这块。Java在问世之初,当时,多核处理器还很神秘,而WEB编程才刚刚起步,处理器要花很长时间等待服务器响应,需要并发程序设计来确保用户界面不会被“冻住”。Java在这方面表现出色,在当时就能很好的处理此事。

11.动态性

Java比C或C++更具动态性。它能够适应不断发展的环境。库中可以自有的添加心方法和实例变量,而对客户端不会有影响。

三、Java applet与Internet

在网页中运行的Java程序称为applet。有使用applet,需要启动Java的Web浏览器执行字节码。在Adobe的Flash技术变得流行时,Java遭到了严重的安全问题,浏览器和Java浏览器插件变得限制越来越多。如今,要在浏览器中使用applet,是有一定的难度的。

四、Java发展历史

1.Java语言的前身:Oak(橡树)

2.Java语言的版本:

-JavaSE:(java2 Stardard Edition)标准版,定位客户端,主要用于桌面程序的开发

-JavaME:(java2 Micro Edition)微型版,主要用于嵌入式系统开发。(现在,不怎么用了!)

-JavaEE:(Java2 Enterprise Edition)企业版,定位在服务端,主要用于分布式系统,一些大型的电子商务系统的开发。

2017-05-27 14:11:27

Java程序设计概述的更多相关文章

  1. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

    第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库  如果想要有奇特的绘 ...

  2. 基础知识(1)- Java程序设计概述

    1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语  1.2.1 简单性  1.2.2 面向对象  1.2.3 网络技能  1.2.4 健壮性  1.2.5 安全性  1.2.6 体系 ...

  3. 第一章 Java程序设计概述

    1.1 Java程序设计平台 Java是一门设计优秀的语言,更是一个完整的平台.Java平台包括了一个庞大可重用的类库以及提供了安全性,跨系统,自动垃圾收集等优秀特性的执行环境. 这也使其成为自发布以 ...

  4. java核心技术学习笔记之一程序设计概述

    Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...

  5. Notes 20180506 : Java程序设计语言概述

    2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...

  6. Java程序设计环境概述

    本文主要Java程序设计环境的要点,以及相关注意事项. 一.安装Java开发包 Oracle公司为Linux.Mac OS X.Solaris和Windows提供了Java开发工具包(JDK)的最新. ...

  7. 《Java程序设计》 课程教学

    <Java程序设计> 课程教学 给学生 考核方式 100分构成 翻转课堂考核12次(5*12 = 60):每次考试20-30道题目,考试成绩规格化成5分(比如总分20分就除以4) 注意:不 ...

  8. 2016-2017-2 《Java程序设计》教学进程

    2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  9. 2015-2016-2 《Java程序设计》教学进程

    2015-2016-2 <Java程序设计>教学进程 目录 考核方式 寒假准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

随机推荐

  1. 巧用 Jersey RESTful WebService框架解决文件上传乱码

    一.当我们使用jersey框架封装的restful进行文件上传时,会出现中文乱码,试用了过滤器设置编码都不管用.仔细想了很久解决办法,就用一个servelt来代替这个上传的restful接口实现上传的 ...

  2. python:a+=b 和a=a+b? 基础数据类型也不能乱用

    python:a+=b 不等于a=a+b? a+=b 调用的是__iadd__方法,但是a+b调用的是__add__方法.对于自定义的对象,我们通过覆盖两个方法来实现+=和+操作,但是基础数据类型呢? ...

  3. [ 9.28 ]CF每日一题系列—— 940A规律构造

    Description: 输入a,b,x,给你a个0,b个1,你要给出一个组合,让这个组合里存在x位,使得这x为和其x+1位不相等 Solution: 因为肯定有一个正确的答案,所以钻了一下空子,贪心 ...

  4. 47_并发编程-线程python实现

    一.Threading模块   1.线程的创建 - 方式一 from threading import Thread import time def sayhi(name): time.sleep(2 ...

  5. python 使用unittest进行单元测试

    import unittest import HTMLTestRunner """ Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面 ...

  6. JDK 安装目录中 native2ascii.exe 命令详解

    native2ascii 简介 native2ascii 是 sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码 ...

  7. 使用 PLSQL 连接 Oracle9i 数据库

    昨天用了Navicate连接Oracle数据库,不停的掉线,然后死机,只能重启Navicate,没办法,还是用回plsql吧,重装了一遍(之前重装系统后,电脑自带的公司原有的软件没啦) 先安装了Ora ...

  8. xtrabackup备份mysql-2 增量备份

    ---恢复内容开始--- 增量备份 ---恢复内容结束---] 增量备份恢复 1,重演日志 2,恢复数据

  9. postgres Date/Time 学习笔记

    一.Date/Time Types 参考文档:https://www.postgresql.org/docs/9.2/static/datatype-datetime.html Types 别名 ti ...

  10. python中不同文件中函数和类的调用

    最近在学习Python的时候,遇到了一个不同文件中类无法调用的问题,搜了很多,发现很多人针对 这个问题都说的相当含糊,让我费了好大劲才把这个东东搞明白.记录一下,权且温习. 调用分两种,一种是同种文件 ...