Java程序概述


第一章 Java程序概述(1996年Java第一次发布)

1、Java特性

1.简单性

"简单"的另一个方面就是小,Java的目标之一就是支持开发能够在小型机器上独立运行的软件,也就是Java的ME版本。语法上剔除了C++比较难以理解,容易混淆的语法,以及复杂的指针。

2.面向对象

面向对象是一种程序设计技术重点在数据(即对象)和对象的接口上。书中举了个面向过程和面向对象的区别:它说一个“面向对象”的木匠始终关注的是所制造的椅子,其次是所使用的工具。一个“面向过程”的木匠首先考虑的是所用的工具。其实简单理解为就是 一个考虑的是数据对象,一个考虑的是方法。

3.分布式

Java丰富的例程库使得Java应用程序可以很方便的通过URL地址打开和访问网络上的对象。

4.健壮性

Java非常强调进行早期的问题检测,后期动态的(运行时)检测,Java与C/C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。

5.安全性

因为Java要适用于网络/分布式环境所以安全性颇受重视,早期的Java对于网络上进行通信的时候,把从网络来的代码放进一个沙箱环境执行,而不影响主系统的运行。后期通过数字签名和用户授权的安全方式执行代码。

6.体系结构中立

编译时生成一个文件,这个文件可以在任何具有Java环境里可以运行,不管是什么操作系统。

7.可移植性

在Java中,数值类型具有固定的字节数。二进制数据以固定的格式进行存储和传输。字符串则采用标准的Unicode格式存储。

8.解释型

Java解释器可以在任何移植了解释器的机器上直接执行Java代码。

9.高性能

字节码可以在运行时动态地转换成对应运行这个应用的特定CPU的机器码。例如,即时编译器可以监控哪些代码会频繁执行并对其优化以提高速度。

10.多线程

多线程可以带来更快的交互响应和实时行为。

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

11.动态性

Java能够适应不断发展的环境,库中可以自由的添加新方法和实例变量,而对客户端却没有如何影响。

 

2、Java applet与Internet

在网页中运行的Java程序称为applet,要使用applet只需要一个启动Java的Web浏览器。后来由于Java遭遇了严重的安全问题,浏览器和Java浏览器插件变得限制越来越多。如今,要在浏览器中使用applet,是有一定的难度的。

3、Java发展简史

    1. Java语言的前身:Oak

    2. 1991年~1995年:Java的研发开始阶段

    3. 1996年初:Java发布第一个版本。期间Java 1.1修复了1.0大部分的问题,但还有很大的局限性。

    4. 1998年:发布了Java 1.2版本称为Java SE。此时Java分为了三个版本。

      1. JavaSE(也称J2SE,Java 2 Platform Standard Edition,标准版) 此版本是其他两个版本的基础应用。
      2. JavaME(也称J2ME,Java 2 Platform Micro Edition,微型版) 此版本主要用于嵌入式设备。
      3. JavaEE(也称J2EE,Java 2 Platform Enterprise Edition,企业版) 此版本主要用于开发企业级大型服务器端的Java程序。
    5. 2004年:Java进行重大改革并更名为Java 5.0版本。添加许多重要的特性,比如foreach循环。

    6. 2006年末:发布了Java6版本。

    7. 2009年:sun公司被oracle收购,Java停止更新。

    8. 2011年:发布了Java7版本。

    9. 2014年:发布了Java8版本,这个版本也是发生了最大的变化。增加了“函数式”编程方式,以及流的使用。

       

      Java语言的演进
      版本 年份 新语言特性 类和接口数量
      1.0 1996 语言本身 211
      1.1 1997 内部类 477
      1.2 1998 strictfp修饰符 1524
      1.3 2000 1840
      1.4 2002 断言 2723
      5.0 2004 泛型类、”for each“循环、可变元参数、自动装箱、元数据、枚举、静态导入 3279
      6 2006 3793
      7 2011 基于字符串的选择语句、菱形运算符、二进制字面量、异常处理增强 4024
      8 2014 lambda表达式、包含默认方法接口、流和日期/时间库 4240
      9 2017 模块、其他的语言和类库增强 6005

       


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM