一、Java发展史
前言 Java语言历史
Sun MicroSystems公司创造并发展的语言。
Java之父:James Gosling(詹姆斯·戈士林)
1、Java语言与面向对象的程序设计---面向对象的程序设计思想
计算机程序设计:把现实生活中遇到的问题抽象后利用计算机语言转化到机器能够理解的层次,并最终利用机器来寻求问题的解。
- 对问题进行抽象
- 用计算机语言表述,利用机器求解
2、程序设计语言发展的历程
机器语言:由计算机硬件系统可以识别的二进制指令组成的语言。
汇编语言:用一组助记符表示二进制指令的语言。例如,ADD,SUB,MUL,DIV等。
两者共同点:
面向机器的程序设计语言:为特定的硬件系统专门设计的。
特点:运行速度和效率都很高,但是可读性和可移植性很差。
结构化高级语言:以接近人类自然语言的符号来表示指令的语言。面向过程的高级语言,如Fortran、Pascal、C
面向过程的程序设计:其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。
数据结构、算法是面向过程问题求解的核心组成。
不足:不能把一个包含了多个相互关联的过程的复杂系统表述清楚。
面向对象的语言:面向对象程序设计语言:将客观事物抽象成类,同类对象的属性与行为封装在一起。例如,Simula I、Smalltalk、Lisp、Clascal、
Object Pascal、C++、Java
面向对象的思想
将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类。
例:构建一个汽车类,需要提取所有汽车对象的共有的状态和行为。将状态用变量表示,行为用方法表示。
class Car { int color_number; int door_number; int speed; …… void brake( ) { … } void speedUp( ) {…}; void slowDown( ) { … } ; …… }
面向过程与面向对象的区别
面向过程的程序设计:以具体的解题过程为研究和实现的主体。
面向对象的程序设计:以需解决的问题中所涉及到的各种对象为主要矛盾。
面向对象技术给软件发展带来的益处
- 可重用性
- 可靠性
面向对象语言的基本特征
- 抽象和封装
- 继承性
- 多态性
3、Java语言的特点
面向对象
安全性
- -Java不支持指针
- -Java的内部安全措施
平台无关性
- -编译后的字节码对应于Java虚拟机,因此可在不同平台上运行——一处编写,各处运行。
多线程
- -Java是第一个在语言级提供内置多线程支持的高级语言
动态内存分配与管理
- -Java对内存自动进行管理并进行垃圾回收
4、Java与C++的区别
- Java中没有#include 和#define等预处理功能,用import语句来包含其它类和包;
- Java中没有struct,union及typedef;
- Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单重继承;
- Java中禁用goto,但goto还是保留的关键字;
- Java中没有操作符重载;
- Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;
- ...
5、Java类库
- 组成Java程序的最小单位是类,类封装了数据与处理数据的方法。
- 对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集合就是Java类库。
- Java类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供的。
6、Java 5和Java 6的新特色
Java 5
- 增强for循环;泛型;自动装箱拆箱;枚举类型;可变长参数;静态import;注解
Java 6
- 脚本执行功能;更强的网络服务支持;Java DB;新增桌面API;处理注解;更强的监控和管理;支持对编译器的访问;对XML安全性的支持
7、Java程序概述
补充概念:Java语言、JDK、JRE、JVM
- Java语言:编写Java应用程序时所用的一种程序语言,是一种完全面向对象的编程语言,语法与C语言类似。
- JDK:Java Development Kit(Java开发工具包),该包包含了一般开发程序所需的编译器、常用的Java类库、Java运行时环境(JRE,它包含Java虚拟机)以及一些Java命令行工具等。一般包含编辑Java应用程序与applet的类库。
- J2SDK:Java 2 Software Development Kit,Java 2标准开发工具包(包含编译Servlet的类库)。
- JRE:Java Runtime Environment,Java运行时环境。JDK总是包含JRE,但是JRE是一个可以被独立安装和使用的独立产品。Java程序要有JRE才能运行,正如Win32应用程序需要操作系统支持运行。JRE提供了Java的运行环境,主要用于执行Java程序,面向Java程序的使用者。
- JVM:Java Virtual Machine,Java虚拟机。它是虚构
- 出来的计算机,是在实际的计算机上通过软件仿真模拟各种计算机来实现,它屏蔽了与具体操作系统平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。不同平台下有不同的JVM。JVM是JRE的一部分。
J2SE的组成— 以J2SE 5.0来说明
8、Java平台的划分
Sun公司将Java技术按照具体的应用领域把Java平台划分为三个版本:
- Java SE(Java Platform Standard Edition,标准版;前身为J2SE):主要用于工作站、PC机的桌面应用领域的开发
- Java EE(Java Platform Enterprise Edition,企业版;前身为J2EE):主要用于企业应用开发
- Java ME(Java Platform Micro Edition,微版本;前身为J2ME): 主要用于移动设备、嵌入式电子设备的开发
注:从JDK5.0开始,J2SE改名为Java SE(简称依然是JDK),J2EE改为Java EE,J2ME改为Java ME