What is Java

1. 基础知识

1.1 Java 语言有哪些特点?

  1. 简单易学;

  2. 面向对象(封装,继承,多态);

  3. 平台无关性( Java 虚拟机(JVM)实现平台无关性);

  4. 支持多线程;

  5. 安全稳定;

1.2 Java相对于C++的区别

  1. 无直接指针操作

  2. 自动内存管理(Java 有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存。)

  3. 数据类型长度固定(跨平台的基本要求)

  4. 不用头文件

  5. 不包含结构和联合(直接使用类)

  6. 不支持宏

  7. 不用多重继承(Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承)

  8. 无 GOTO 语句

1.3 Java的3种核心机制

  • Java 虚拟机(Java Virtual Machine)
  • 代码安全性检测(Code Security)
  • 垃圾回收机制(Garbage collection)

1.3.1 JVM

Java程序的运行与编译:
image

  • 定义:在一台计算机上由软件或硬件模拟的计算机
  • JVM读取并处理经过编译的字节码class文件
  • JVM规范定义了:image

1.3.2 Java运行环境 JRE

JRE = JVM + API(Lib)
API:一系列的库

JRE运行程序时的三项主要功能:
image

1.3.3 Java 自动垃圾回收技术

在 C/C++ 中由程序员负责回收无用内存

Java自动垃圾回收
image


2. 面向对象

2.1 对象(object)

一个对象通常可由对象名、属性值、操作3部分组成
对象具有两方面的含义:

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

  • 每个对象都有自己的属性值,表示该对象的状态
  • 对象中的属性只能通过该对象所提供的操作来存取或修改。
  • 操作规定了对象的行为,表示对象所能提供的服务。

2.2 类(class)

类是具有共同属性和相同操作的对象的集合
一个类中的每个对象都是这个类的一个实例

对象 p:

Person p = new Person()

类 Person:

class Person{
	int age;
	String name;
	void sayHello(){
	···
	}
}

类与对象的关系

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

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


2.3 面向对象的三大特征

♦ 封装
♦ 继承
♦ 多态

2.3.1 封装

目的是为了使对象的使用者和生产者分离,使对象的定义和现实分开。

  • 使程序更模块化:将属性和行为封装在类中,程序定义很多类。
  • 信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。
class Person{
	private int age;//封装年龄
	public int getAge(){//用户只能通过公开的接口访问
		return age;
		}
	public void setAge(int a){
		age=a;
		}
	String name;
	void sayHello(){
	···
	}
}



点击 查看其他封装示例
public class Student {
    private int id;//id属性私有化
    private String name;//name属性私有化

    //获取id的方法
    public int getId() {
        return id;
    }

    //设置id的方法
    public void setId(int id) {
        this.id = id;
    }

    //获取name的方法
    public String getName() {
        return name;
    }

    //设置name的方法
    public void setName(String name) {
        this.name = name;
    }
}


2.3.2 继承

子类可以继承其父类(或祖先类)的所有属性和操作,同时子类中还可以定义自己特有的属性和操作

父类:

class Person{
	int age;
	String name;
	void sayHello(){…}
}

子类:

class Student extends Person{
	String school;
	double score;
	void meetTeacher(){…}
}

继承的好处:

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

2.3.3 多态

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

2.3.4 补充

类之间只有三种关系

  1. 公有单继承
  2. 子对象
  3. 私有单继承




附:博客园MarkDown技巧

  1. 设置字体颜色,大小
<font color = #999AAA size = 1>设置字体颜色</font>
[TOC](文章目录)
  1. 居中
<div align = center>居中</div>

永远喜欢你!
posted @ 2021-10-06 19:59  Rechoes  阅读(51)  评论(0)    收藏  举报