1.JDK和JRE区别
JDK:开发工具包,编写Java代码需要JDK
JRE:编译运行环境,编译运行Java代码需要JRE
2.跨平台原理
不同的操作系统还有不同的位数,需要不同的操作。Java开发了java虚拟机可以安装在不同的操作系统上,保证Java的编译及运行。在不同的操作系统上只需配置Java虚拟机即可编写Java。
3.Java的基本数据类型
基本数据类型8个:byte,short,int,long,char,boolean,float,double 引用数据类型:String
4.自动拆箱与自动装箱
把基本数据类型int转为可操作的类(包装类)Integer叫装箱
把可操作的类(包装类)Integer转为int叫拆箱
自动装箱就是直接定义可操作的类Integer
自动拆箱就是直接定义int
5.this与super有什么不同
this:指当前类的对象
super:当前类最近的父类
6.static关键字
(存在意义就是不创建对象和方法就能用 类名点方法)
static修饰类是静态类,static修饰的方法是静态方法。只加载一次,性能好。static静态块儿优先加载,一个类中可以有多个静态块儿。
静态方法只能加载静态资源,非静态方法可以加载静态和非静态
7.final的用法
final是最终的,被final修饰的类是不可改变类,无法被继承。final修饰的方法不能重载和重写。
(修饰属性不能被更改)
8.访问修饰符
4个
public:所有都可访问
protected:当前包 当前类 子类
default:当前包 当前类
private:当前类
9.final finally finalize的区别
final:被final修饰的类无法继承,修饰的方法无法被重载与重写
finally:在try catch中使用,finally中的代码无论如何都会执行
finalize:(Object的方法)在垃圾回收机制中,属于虚拟机,System.gc()会调用finalize方法
10.面向对象的特征
继承:extends关键字,可以使用父类的属性和方法,但是不能使用私有的,不可以多继承,可以多重继承。
多态:用同一个引用类型来使用不同类的操作(接口的实现就是多态)
封装:将类封装,外部不可访问,可以使用类名点方法(减少代码量)
11.什么是多态?Java如何体现?
多态就是同一个引用类型表达使用不同的类。使用多态就是不用确定类的方法,可以随着代码编写和执行来确定要使用的方法,不用调整代码。
(分为编译时多态和运行时多态,编译时多态主要是方法的重载,通过入参不同来确定具体方法。运行时多态是通过动态绑定来实现的。)
12.接口和抽象类
接口:interface修饰 被implements实现 需要重写所有接口的方法 (抽象类的集合),不可以被protected和private修饰。
抽象类:abstract修饰 可以被继承 需声明但无需实现所有的抽象方法(用来捕捉子类通用特性的),可以被所有访问修饰符修饰。
具体使用:大多使用接口,模型层多使用接口,需重写方法。使用抽象类大多情况是需要写子类自己的行为,还要有通用的行为。
13.普通类和抽象类的区别
普通类:可以被实例化
抽象类:无法被实例化,被abstract修饰
14.抽象类能使用final修饰吗
无法被final修饰,被fianl修饰的类无法被继承,而抽象类就是用来被继承的,二者冲突。
15.成员变量于局部变量的区别有哪些
成员变量:在方法外,随着对象的实例化而创建,对象消失则销毁。存储在堆内存中。
局部变量:在方法内,随着方法的使用被创建,方法不被调用或方法执行结束而释放。(存在栈内存中)