面向对象 程序设计语言基础 马骏 majun@nju.edu.cn
面向对象 程序设计语言基础 马骏 majun@nju.edu.cn
面向对象程序设计 Program Class 1 Class 2 source code Running Object 11 Object 21 Object 22 Program Object 12 Object 23 Object 13
面向对象程序设计
面向对象程序设计语言 ·支持面向对象程序设计思想的编程语言 simula 67,Smalltalk... .C++,JAVA,C#,Python... C+- C# Java python
面向对象程序设计语言 • 支持面向对象程序设计思想的编程语言 • simula 67,Smalltalk… • C++,JAVA,C#,Python…
编译执行VS解释执行 Source Code ·效率高 平台相关 Source Code Interpret Each Instruction Preprocessor Compiler Linker Line by Line 效率低 。 平台无关 Compiler Executable (Machine Machine Level Language Code Code)】 PASCAL,C/C++,C#... RUBY,MATLAB,JavaScript
编译执行VS解释执行 Machine Level Language Code Source Code Interpret Each Instruction Line by Line PASCAL,C/C++,C#... RUBY,MATLAB,JavaScript… • 效率高 • 平台相关 • 效率低 • 平台无关
两者的结合 Java Code (.java) Source Bytecode Runtime JAVAC m.py m.pyc PVM compiler Byte Code(.class) JVM JVM JVM 兼顾编译执行与解释执行的优点: 。 平台无关 Windows Linux Mac ·“高效率
两者的结合 兼顾编译执行与解释执行的优点: • 平台无关 • “高效率
Java的诞生和发展 ·前身 ·1991年,Sun公司的Green项目,Oak,James Gosling ·诞生 ·1994年,改名ava ·DK版本 ·1995-1997,JDK1.0-JDK1.1 ·1998年,JDK1.2AVA2) 2010年,Sun公司被0 raclel收购 。 ·Now,JDK10 ·三个平台(JDK1.3开始) ·J2ME(嵌入式平台) ·J2SE(标准平台) ·J2EE(企业级平台) Java
Java的诞生和发展 • 前身 • 1991年,Sun公司的Green项目,Oak,James Gosling • 诞生 • 1994年,改名Java • JDK版本 • 1995-1997,JDK1.0-JDK1.1 • 1998年,JDK1.2(JAVA2) • 2010年,Sun公司被Oracle收购 • Now,JDK 10 • 三个平台(JDK1.3开始) • J2ME(嵌入式平台) • J2SE(标准平台) • J2EE(企业级平台)
Java语言的特点及优势 ·简单性和完全面向对象 ·有选择的继承了C++的语法规则和面向对象的基本机制 ·放弃了C++中模糊、复杂、安全性差、不适应网络应用的特性以 及面向过程的设计方式,例如: ·结构,指针,#define语句,多重继承,全局变量和函数,GOTo语句,操 作符重载 ·平台无关性 ·Java虚拟机:JVM ·“Write once,run anywhere
Java语言的特点及优势 • 简单性和完全面向对象 • 有选择的继承了C++的语法规则和面向对象的基本机制 • 放弃了C++中模糊、复杂、安全性差、不适应网络应用的特性以 及面向过程的设计方式,例如: • 结构,指针,#define语句,多重继承,全局变量和函数,GOTO语句,操 作符重载 • 平台无关性 • Java虚拟机:JVM • “Write once,run anywhere
JVM、JRE、JDK Java JVM JRE JDK Java Virtual Machine Java Runtime Environment Java Development Kit Java虚拟机(java virtual Java运行时环境(Java JDKJava Develop Kit,Java machine,JVM) Runtime Environment,JRE) 开发工具包 一个应用程序,运行于实 际的物理计算机之上 ·运行、测试和传输应用 。 包括 程序的ava平台 java类库 定义了指令集、寄存器集、 。包括ava虚拟机、java java编译器 栈、垃圾收集堆、内存区 平台核心类和支持文件 java解释器 域等五个逻辑部分,提供 JRE 了跨平台能力的基础框架 不包含开发工具一编译 器、调试器和其它工具 java命令行工具 实现了统一的计算机,是 java程序运行的平台
JVM、JRE、 JDK Java虚拟机(java virtual machine , JVM) • 一个应用程序,运行于实 际的物理计算机之上 • 定义了指令集、寄存器集、 栈、垃圾收集堆、内存区 域等五个逻辑部分,提供 了跨平台能力的基础框架 • 实现了统一的计算机,是 java程序运行的平台 Java运行时环境(Java Runtime Environment,JRE) • 运行、测试和传输应用 程序的 Java 平台 • 包括 Java 虚拟机、Java 平台核心类和支持文件 • 不包含开发工具 — 编译 器、调试器和其它工具 JDK即Java Develop Kit,Java 开发工具包 • 包括: • java类库 • java编译器 • java解释器 • JRE • java命令行工具
JVM、JRE、JDK JDK:Java Development Kit ·JDK与JRE的简单的区别: JRE:Java Runtime Environment ·DK可以编译java源文件;jre只能执 行class字节码,不能编译java源文件 Library Development ·RE是AVA运行环境,只能运行被编 JVM:Java Virtual Machine Classes Tools 漾字精发有 调试、编译、运行的基本工具。例 如: ·javac.exe是包含在jdk中,jre中没有,只 是执行环境。 JDK JRE Development Tools 如果仅仅是为了运行Java程序,而不 JRE JVM+Library Classes 是从事Java开发,可以直接下载JRE
JVM、JRE、 JDK • JDK与JRE的简单的区别: • JDK可以编译java源文件;jre只能执 行class字节码,不能编译java源文件 • JRE是JAVA运行环境,只能运行被编 译好的字节码文件而已,它没有编 译工具;而JDK含有开发程序所需的 调试、编译、运行的基本工具。例 如: • javac.exe是包含在jdk中,jre中没有,只 是执行环境。 • 如果仅仅是为了运行Java程序,而不 是从事Java开发,可以直接下载JRE
JVM、JRE、JDK Java源程序 (".java) nem ava编译器 javac.exe 编译 Java Runtime Applet应用程序 Java Development Kit Environment (JDK) (JRE) 字节码文件 嵌入 超文本 (*.class) (◆html Java Compiler Application应用程序 下找 Java Byte Cod Java解释器 Web浏览器 java.exe 运行 运行 超文本中的字节码文件 由Windows中的ava虚拟机解释执行 Compiler(JIT) Java Virtual Machine (JVM) Windows操作系统 Windows操作系统 ava虚拟机 Hardware Platform
JVM、JRE、 JDK 超文本中的字节码文件 由Windows中的Java虚拟机解释执行 Applet应用程序 编译 Java源程序 (*.java) 字节码文件 (*.class) 运行 Windows操作系统 Java编译器 javac.exe Java解释器 java.exe 下载 Windows操作系统 运行 Java虚拟机 嵌入 Web浏览器 超文本 (*.html) Application应用程序