用自己的话回答面试内容(2020面试准备。自用更新)

1、JRE、JDK、JVM的关系
JRE
是Java的运行环境,包含了JVM、runtime class libraries和Java application launcher
JDK
包括了Java运行环境JRE、Java工具和Java基础类库。
JVM
java虚拟机,java文件编译成.class文件,在虚拟机上执行。是java能够跨平台使用的基础。

用自己的话回答面试内容(2020面试准备。自用更新)

2、八大数据类型

short(16)、int(32)、long(64)、boolean、byte(8)、char(2)、double(64)、float(32)

3、面向对象的四大特性和理解(面向对象的理解?设计类的方式?)。
多态
一个父类的引用根据创建不同的子类,产生出来不同的结果。
例如坦克大战中的不同种类的坦克敌人。
多态的前提条件: 必须有继承体系 必须有方法的重写 必须满足一种写法:父类引用指向子类的对象/向上转型
继承
通过关键字“extends” 继承
Java是单继承体系,就是只能有一个父类。
而可以有多层继承,即可以有爷爷类,祖宗类。
子类拥有父类的所有成员方法和成员属性。
例如坦克大战中不同的敌人继承于同一个父类 坦克 。
封装
作为一种规范,并且保证了数据的安全性。
一般为两个步骤 先将成员属性私有化,使得外界无法直接进行访问。
然后在对外提供get / set 的方法来进行获取值和修改。
抽象
1.抽象类无法被创建出来,无法被示例化,无法new出来 2.抽象类只能被继承 3.抽象类中可以有成员属性,可以有成员方法,可以有构造方法,还可以有抽象方法 4.普通正常子类必须重写抽象类中所有的抽象方法,并且还要向上追溯重写父级中所有的抽象方法
抽象可以将一些对象拥有同样的内容放在同一个类里面,然后对其进行继承。增加了代码的复用性。
同样的,在对子类进行修改时候,也会受到父类的一些限制,也算是起到了一定的保护作用,对维护有一定帮助。
4.重载和重写的理解?
重写
子类重写父类的方法
重载
同一个方法名,参数数量不同、参数类型不同、参数顺序不同。

访问权限的区别
用自己的话回答面试内容(2020面试准备。自用更新)

5.final,finally,finalize的区别和作用?
final
变量被final修饰表示只能被赋值一次,相当于一个常量。
方法被final修饰的话,表示无法被重写。
类被final修饰的话,表示无法被继承。
finally
在try - catch中所提供的代码块,在finally代码块中,无论是否出现异常,都会执行其中的内容。
finalize
Java中垃圾回收机制中的方法(待理解,不是很懂这个的说明)
6.运行时异常与一般异常有何异同?
运行时异常
运行时异常都是RuntimeException类及其子类异常,就是我们在开发中测试功能时程序终止,控制台出现的异常。

例如
NullPointerException(空指针异常)、
IndexOutOfBoundsException(下标越界异常)
ClassCastException(类转换异常)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
IO操作的BufferOverflowException异常

一般异常
checked exceptions 非运行时异常 (编译异常):是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等。
  通俗的话说就是在写代码时出现红线,需要try catch或者throws时出现的异常。
7.接口是否可以使用继承?