Java语言与面向程序设计
It has been 0 days since the last update of this post. Some contents may be outdated. Please pay attention to screening.
Java语言与面向程序设计
Java发展历程
Internet发展这的两次飞跃
- www 万维网
- Java 将网页转为动态
Java的出现
1990 SUN公司开发,改进C++
1994年 Oak语言
Java三大平台
- Java SE 标准版(J2SE 桌面应用)
- Java EE 企业版(J2EE 网页应用)
- Java ME 微型版(J2ME 手机应用)
Java语言的特点
- 简单易学
- 面向对象
- 平台无关性
- 安全稳定
- 支持多线程
- 具有丰富的库
Java是C++–
- 无直接指针操作
- 自动内存管理
- 数据类型长度固定
- 不用头文件
- 不包含结构和联合
- 不支持宏
- 不用多用继承
- 无类外全局变量
- 无GOTO
Java运行机制
Java三种核心机制
- Java虚拟机(JVM)
- 代码安全性测试( Code Security)
- 垃圾收集机制(Garbage Collection)
JVM
JVM读取并处理经编译过的字节码class文件。
JVM规范定义了:
- 指令集
- 寄存器集
- 类文件结构
- 堆栈
- 垃圾收集堆
- 内存区域
Java运行环境(The Java Runtime Environment)
JRE = JVM + API(Lib)由虚拟机装载程序并调用相应指令执行
JRE运行程序时的三项主要功能:
- 加载代码:由class loader完成;
- 校验代码:由bytecode verifier完成;
- 执行代码: 由runtime interpreter完成。
Java自动垃圾回收技术
在C/C++语言中,程序员负责回收无用内存。
GC:
系统级线程跟踪存储空间的分配情况
在JVM的空闲时,检查并释放那些可被释放的存储器空间
程序员无需也无法精确控制和干预该回收过过程。
JDK
JDK = JRE + TOOLS
JRE = JVM + API
面向对象的程序设计
对象
- 现实世界中:客观世界中的一个实体
- 计算机世界中:一个可标识的存储区域
类
具有共同属性和行为的对象集合
- 属性:变量(字段field)
- 行为:函数(方法method)
类与对象的关系
类是对象的抽象(模板)
对象是类的实例
类和对象有时都统称“对象”,为了明确起见,后者成为“对象实例”
1 | //类 |
面向对象的三大特征
封装性
模块化:将属性和行为封装在类中,程序定义很多类,
信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类
1
2
3
4
5
6
7
8
9
10
11class Person{
private int age;
public int getAge(){
return age;
}
public void setAgw(int a){
age =a'
}
String name;
void sayHello(){...}
}
继承性
父类和子类之间共享数据和方法
1 | //父类 |
继承的好处:
- 更好地进行抽象与分类
- 增强代码的重用率
- 提高可维护性
多态性
- 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
- 实现的细节则有接受对象自行决定
1 | foo(Person p){p.sayHello();} |
要点
- 认为客观世界由各种对象组成
- 程序的分析和设计都围绕着
- 有哪些对象类
- 每个类有哪些属性、哪些方法
- 类之间的关系(继承、关联等)
- 对象之间发送消息(调用方法)
Comments
Comment plugin failed to load
Loading comment plugin