Java简介

Java的两种核心机制

Java虚拟机(Java Virtual Machine)

实现Java的跨平台,每个操作系统上都有对应的解释器。源程序通过编译器变成字节码,然后通过JVM执行。JVM可以理解成一个以字节码为机器指令的CPU。JVM机制屏蔽了底层运行平台的差别,实现了“一个编译,随处运行”。

垃圾收集机制(Garbage Collection)

因为这个机制的存在,程序员不再需要关心内存回收的问题。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。

程序执行过程

Load到内存区

找到main方法开始执行

执行过程中的内存管理

存在硬盘中的程序代码通过编译(Javac)成字节码,之后运行(Java)。运行开始后代码被下载到内存区,从main方法开始执行。内存代码存放在code segment,静态变量和字符串常量存放在data segment,局部变量存放在stack,new出来的东西存放在heap中。

Java变量的分类

局部变量:方法或语句块内部定义变量

成员变量:方法外部、类的内部定义的变量

Java方法

【修饰符1 修饰符2 ...】返回值类型 方法名(形式参数列表){

Java语句;... ...

}

形式参数:在方法被调用时用于接收外界输入的数据。

实参:调用方法时实际传给方法的数据。

返回值:方法在执行过程完毕后返回给调用它的环境的数据。

返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。

对象和类的概念

对象用计算机语言对问题域中的失误的描述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具有的静态属性和动态属性。

类是用于描述同一类的对象的一个抽象的概念,类中定义了这一类对象所具有的静态和动态属性。

类可以看成一类对象的模板,对象可以看成类的一个具体实例。

类(对象)之间的关系

关联关系

举个例子:一个学院有教授和研究生,教授和研究生分别是一个类。“教授”这个类中有一个方法“教课”,“研究生”这个类中有一个对象“研究生A”,对“研究生A”使用“教课”这个方法就是关联关系。

继承关系

如果可以用“XX是一种XX”这么一个语句来表述的话,基本就是继承关系了。这个是“一般和特殊”的关系。比如:游泳运动员是运动员。

聚合关系(整体和部分)

举个例子:球队、队长、队员。队长和队员组成了球队。(聚集) 另一个例子:person、limb、head、body.limb、head、body组成了person(组合)

实现关系

多态