贝海拾珠(1):Java中的point--Day3

1、关于JVM运行的细节

(1)、JVM(Java虚拟机)的运行原理是什么?

JVM通过移植接口在具体的平台和操作系统上实现

(2)、Java代码编译执行的过程

开发人员编写Java代码(生成.Java文件)--编译-->字节码文件(.class文件)---->装入内存---->虚拟机中运行

☆(3)、JVM的运行过程

以下面的一小段代码为例:

例:

 class HelloApp{

public static void main(String[]    args){

System.out.println("Hello");

}

}

虚拟机JVM通过调用指定类的方法main启动,传递给main一个字符串数组参数,使被指定的类被装载,同时链接该类所使用的其他类型并初始化它们;

(通过调用类HelloAPP中的main方法启动Java虚拟机,传递给main一个字符串数组参数,即包含“run”“virtual”“machine”的数组;

开始试图执行类HelloAPP的main方法,发现该类并未被装载虚拟机不包含当前该类的二进制表),于是虚拟机使用ClassLoader企图寻找这样的二进制表(若未找到则抛出异常)。在被装载后,main方法被调用之前,必须对HelloAPP与其他类型进行链接与初始化

(4)、链接

①、检验:查被装载的主类的符号以及语义
②、准备:创建类和接口的静态域,并且把这些域初始化为标准默认值
③、解析:检查主类对其他类或接口的符号引用

基本运行方式为:


2、为什么Java会具有平台无关性?

Java同一些在编译后直接转化为底层机器指令的编程语言不同,Java编译后转换为与底层机器无关的字节码(.class文件),JVM虚拟机运行时,会根据实际机器的不同,将中间生成的字节码转换为不同的CPU指令,从而进行解释。

3、面向对象的特征有哪些?

(1)、抽象

(2)、继承

(3)、封装

(4)、多态性

4、Java的数据类型有哪些?

Java的数据类型基本上分为两大类:基本数据类型引用数据类型。在此基础上,基本数据类型分为数值型字符型(char)以及布尔型(Boolean),数值型又有整数类型(byte、int、short、long)和浮点类型(float、double);引用数据类型分为(class)、接口(interface)以及数组

5、基本数据类型所对应的封装类

int-->Integer

boolean-->Boolean

char-->Character

byte-->Byte

short-->Short

long-->Long

float-->Float

double-->Double

6、Collocation与Collocations

·Collocation是集合类的上级接口,继承于他的接口主要有Set和List

·Collocations是针对集合类的一个帮助类

7、final、finally与finalize

final:用于声明属性、方法和类,属性不变,方法不可覆盖,类不可继承

finally:异常处理语句结构的一部分,表示总是执行

finalize:是Object类的一个方法,在垃圾收集器执行时会调用被回收对象的此方法,可覆盖此方法提供垃圾收集时的其他资源

8、接口与抽象类之间的相同点与不同点

相同点:

(1)、都不能被实例化

(2)、都能包含抽象方法

(3)、都是上层的抽象层

区别:

(1)、接口只能有抽象方法,抽象类既可以有抽象方法【注】也可以有非抽象方法

(2)、一个类只能继承一个父类(抽象或者非抽象),而一个类可以实现多个接口

【注】:

抽象方法:只有方法声明,而没有具体方法体的方法

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页