一. Java的由来
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
二. Java的定义
Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
Java的开发环境有不同的版本,如sun公司的Java Developers Kit,简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。
三. Java的特点
1. 平台无关性
平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。
2. 安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。
3. 面向对象
Java 吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object类, Object类功能强大,经常会使用到它及其它派生的子类。
4. 分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
5. 键壮性
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。
四. Java与C/C++语言
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
Java去掉了以下几个C和C++功能:
指针运算
结构
Typedefs
#define
需要释放内存
这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。
面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。
五. Java与Internet
我们知道,早先的www仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。
Java并不是为Internet而设计的,它也可以用来编写独立的应用程序。Java程序需要编译。实际上有两种 Java 程序:一种Java 应用程序是一个完整的程序。一种Java小应用程序是运行于Web浏览器中的一个程序。
当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题。
电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。

Java语言的出现背景、主要特点、发展历程以及Java技术的应用相关推荐

  1. JAVA 虚拟机深入研究(二)——JVM虚拟机发展以及一些Java的新东西

    内容目录: JAVA 虚拟机深入研究(一)--关于Java的一些历史 JAVA 虚拟机深入研究(二)--JVM虚拟机发展以及一些Java的新东西 这是第二篇,我们来说说有关虚拟机的发展. 一说到虚拟机 ...

  2. java语言程序设计你_清华大学出版社-图书详情-《Java语言程序设计》

    前言 Java语言是一种典型的面向对象的.跨平台的.支持分布式和多线程的优秀编程语言,具有极强的扩展性.自其诞生以来,迅速被业界认可并广泛应用于Web应用程序的开发中.在此形势下,国内高校在计算机及相 ...

  3. 浅谈java发展历程以及java特点

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Java简述: java的发展历程: java的特点: Java的错误观点纠正: 总结: Java简述: java是面向对象 ...

  4. java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?

    这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...

  5. 四川大学java语言程序设计_四川大学2014年计算机(软件)学院Java语言设计期末考试B卷程序.doc...

    四川大学期末考试试题(闭卷) (2014-2015学年第2学期) 课程号: 课程名称: Java语言程序设计(B 卷)任课教师: 适用专业年级: 学号: 姓名: 考试须知 四川大学学生参加由学校组织或 ...

  6. bmp转换tiff c++代码_如何用Java语言将图像转换为PDF?Spire.PDF for Java轻松搞定

    对于开发人员,在日常工作中经常也会处理许多文档格式,将图像转换为PDF也是常有的事.那么,在Java语言开发中,如何将图像转换为PDF呢? Spire.PDF for Java支持将多种图像格式(例如 ...

  7. java语言说法不正确的是_下列有关Java语言描述不正确的是()。 - 问答库

    问题: [单选] 下列有关Java语言描述不正确的是(). A . Java语言开发的程序与平台无关,即:用Java语言开发的程序可以在不同的操作系统下运行 B . Java采用完全面向对象的程序设计 ...

  8. 会java语言可以学seo吗_学习seo和java哪个更有前途?

    在网络搜索中我们发现这样一个问题,有人对于seo和java产生了更多的疑惑,任何一门技术,如果精通,都能为自己创造财富,创造价值,从这个角度来讲,seo也好,java也罢,没有哪个更好这一说法,只有哪 ...

  9. java语言程序设计视频_[VIP视频]【A0152】Java语言程序设计进阶高级进阶视频教程 网易云课堂 百度网盘 云盘...

    Java语言程序设计进阶-云课堂' S0 c5 z4 C* S: n: K/ D ├─第1周 类和对象 9 i5 N/ j$ I9 d9 z9 t# [# U: D│      1.1 用类制造对象. ...

最新文章

  1. nginx配置解决vue单页面打包文件大,首次加载慢的问题
  2. VMware虚拟机打开后不兼容
  3. python global和nonlocal_3.关于作用域知识的额外补充global和nonlocal关键字
  4. Java黑皮书课后题第5章:**5.28(显示每月第一天是周几)编写程序,提示用户输入年份和代表概念第一天是周几的数字,然后在控制台显示该年各个月份的第一天是周几
  5. QML工作笔记-NumberAnimation、RotationAnimation、Timer综合使用
  6. sql server中数据约束相关的查询
  7. active mq topic消费后删除_【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍
  8. WebView优化提升H5加载速度方案
  9. VC2005工程常用设置系统环境变量设置
  10. 产品经理日常工作之流程图
  11. 一天一个产品分析之美拍_米米米米粒口红_新浪博客
  12. 雪中悍刀行热门数据读取
  13. IDEA中看代码时返回上一步快捷键(Mac)
  14. 真正的爱情是日久生情
  15. chrome transition闪烁BUG 阿星小栈
  16. android设备连接win10,win10手机连接Android设备、iphone 操作方法
  17. Android studio三周学习总结
  18. 一台linux同时安装两个mysql库,使用不同端口
  19. 使用74LS161设计任意进制计数器
  20. 自动化恶意软件分析系统Cuckoo安装、配置详解

热门文章

  1. C++ 内存泄露和检测
  2. 基于hibernate的泛型Dao层设计
  3. 基于Matlab的汽车主动悬架控制器设计与仿真
  4. VLOOKUP函数制作多表查询(学生信息表/员工工资表)
  5. android MPChart图标使用详解
  6. 七大管理工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则!
  7. WGS84以及各种坐标系
  8. 关于Xylon这个名字
  9. mac下 内存分析工具mat安装,使用mat分析:内存溢出、内存泄漏,结合jstat、jmap等命令的使用
  10. 一键免费下载全网在线视频素材,自己动手丰衣足食