1.面向对象的特征有哪些?详细描述各自的特点。 继承 特点:代码重用,扩展性 多态 特点:重用,扩展性,方便灵活 封装 特点:重用,利用分工,隐藏细节 抽象 特点:让设计更合理,规范子类
2.Java程序的执行过程是怎样的? java源文件被编译器编译成字节码文件,然后字节码文件通过类加载器加载所需要的类,随后字节码校验器对加载的字节码进行校验, 再然后解释器一条条把校验后的代码翻译成机器码。在各个操作系统上面运行。
3.什么是静态初始化块? 静态初始化块在类加载的时候执行,通过static{}定义
4.写出main方法的完整定义?static可以写在public前面吗?
public static void main(String[] args){
} static能定义到public前面 static不能跟void交换
5.JDK与JRE分别是什么? JRE是java运行环境,如果只是运行java程序只需要安装JRE JDK包含了JRE,还包含了一些开发人员需要的类等。
6. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch语句只能支持byte、short、int、char等基本数据类型 在JDK1.7之后才能支持String类型
7.Java的数据类型有哪些? 基本数据类型:byte short int long float double char boolean 引用数据类型:类、接口、数组等..
8.Java引用数据类型有哪些? 引用数据类型:类、接口、数组等..
9.类变量与成员变量的区别? 类变量就是静态变量用static修饰,类变量可以认为是全局变量,不需要类实例化就可以访问。 成员变量相当于一个类的属性。
10.访问修饰符有哪几种?它们之间的区别是什么? 本类 同包子类 同包非子类 不同包子类 不同包非子类
public √ √ √ √ √
protected √ √ √ √ X
默认级别 √ √ √ X X
private √ X X X X
11.int与Integer的区别? int是基本数据类型 Integer是int的包装类,是一个类
12.对对象进行比较怎么做?为什么不用“==”? equals 虽然==和equals都是比内存地址 ==是运算符,只能比内存地址 equals是方法,可以重写,可以改变原有的比较行为
13.this、super的用法与区别? this.xx this() super.xx super() this是调用本类的属性或方法 super是调用父类的属性或方法
14.Java中产生对象的方式有哪些? 使用new操作符,这是最普遍的一种 如:Student stu=new Student(); 1.new 2.反射 3.反序列化 4.克隆
15.什么是多态?多态的实现包括哪些方面? 多态:相同行为、不同体现。 多态分为:静态多态(重载),动态多态:动态绑定和重写。
16.抽象类和接口的区别? 抽象类用abstract声明 接口用interface声明
17.如果父类中某些方法不包含逻辑,需要由子类来重写,应该使用什么关键字来声明此父类? abstract 抽象
18.构造方法的作用? 实例化一个对象时初始化对象的成员变量。产生一个对象
19.构造方法能不能被重写、重载、继承,其修饰符能不能声明为private? 构造方法能被重载。不能被继承和重写。 能被private修饰
20.在构造方法中使用super()是调用了什么方法? 父类构造方法
21. 数组有没有length()这个方法? String有没有length()这个方法? 数组没有length()方法 有length属性 有。String是一个char型的数组