Java语言与面向程序设计
Elora Rinta!
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)

image-20231003222433439

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

image-20231003223555114

JDK = JRE + TOOLS

JRE = JVM + API

面向对象的程序设计

对象

  • 现实世界中:客观世界中的一个实体
  • 计算机世界中:一个可标识的存储区域

具有共同属性和行为的对象集合

  • 属性:变量(字段field)
  • 行为:函数(方法method)

类与对象的关系

  • 类是对象的抽象(模板)

  • 对象是类的实例

    类和对象有时都统称“对象”,为了明确起见,后者成为“对象实例”

1
2
3
4
5
6
7
8
//类
class Person{
int age;
String name;
void sayHello(){...}
}
//对象
Person p =new Person()

面向对象的三大特征

封装性

  • 模块化:将属性和行为封装在类中,程序定义很多类,

  • 信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Person{
    private int age;
    public int getAge(){
    return age;
    }
    public void setAgw(int a){
    age =a'
    }
    String name;
    void sayHello(){...}
    }

继承性

父类和子类之间共享数据和方法

1
2
3
4
5
6
7
8
9
10
11
12
//父类
class Person{
int age;
String name;
void sayHello(){...}
}
//子类
class Student extends Person{
String school;
double score;
void meetTeacher(){...}
}

继承的好处

  • 更好地进行抽象与分类
  • 增强代码的重用率
  • 提高可维护性

多态性

  • 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
  • 实现的细节则有接受对象自行决定
1
2
3
foo(Person p){p.sayHello();}
foo(new Student());//调用学生的打招呼函数
foo(new Teacher());//调用老师的打招呼函数

要点

  • 认为客观世界由各种对象组成
  • 程序的分析和设计都围绕着
    • 有哪些对象类
    • 每个类有哪些属性、哪些方法
    • 类之间的关系(继承、关联等)
    • 对象之间发送消息(调用方法)
 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
This site is deployed on
Total words 75.1k Unique Visitor Page View