Java常见问题

1.请说明Java中方法重载的规则

1.方法名相同  2.参数列表中参数类型不相同 或者 参数个数不同  3.与返回值类型无关


2.请说明Java中方法重写的规则

!发生在父子类之间

1.方法名相同2.返回值类型相同3.参数列表相同

4.重写方法的访问权限不小于父类方法的访问权限



3.请说明Java中垃圾回收机制原理

java中的垃圾回收机制是自动的,不需要开发人员进行管理,垃圾回收机制值作用于堆,与栈无关,是java中一个优先级较低的后台线程。

产生垃圾的情况:

1.当对象的引用被赋值为null

2.一次性使用的匿名对象

3.对象超出声明周期


4.请详细描述"=="和equals方法的区别

1.1==比较基本数据类型变量时,比较的是变量的值是否相同

1.2比较引用数据类型对象时,比较的是地址是否相同

2.equals() 是Object中的方法,默认比较的是两个对象的地址是否相同

一般Object的子类会重写equals()方法,从而比较的是内容是否相等


5.在Java中,什么是类变量、局部变量、实例变量

1.类变量:也叫做静态变量, 用static修饰的成员变量 ,随着类被加载时创建,只要类存在静态变量就存在,类变量被该类的所有对象共享。

2.局部变量 :方法体中声明的变量,方法中的参数,或代码块中声明的变量(局部变量只在方法调用的过程中有效,方法结束局部变量就失效)

3.实例变量(全局变量):类中的属性就是实例变量,随着加载类的对象时被创建,每个该类的对象都可以使用,并且不会相互影响。


6.简述逻辑操作(&)与条件操作(&&)的区别。

& 是按位与,位运算符,不会产生短路问题

&& 是逻辑与,逻辑运算符,可能会产生短路问题

二者都可以处理逻辑表达式



7.请简述子类实例化的过程

子类继承父类之后,再通过构造器创建子类对象时,先调用其父类构造器,再调用子类构造器

需要注意子类和父类中的构造器参数要对应


8.请简述Java中的this关键字以及使用this关键字的情况

this关键字返回当前类的对象,表示对象的引用,一般使用在当前类的方法或构造器中。

使用有参构造器对属性进行初始化时,如果参数的名字与属性名相同的话,使用this进行区分


9.请说明Java中继承的含义和规则,简写类继承的语法

Java中子类继承父类之后,可以使用父类中所有非私有的属性和方法,但是父类不能使用子类的属性和方法

calss A extend B

继承的优点:有利于程序的扩展, 增强了代码的复用

继承的特性:单一性继承 ,一个子类只能有一个父类,但一个父类可以有多个子类



10.请说明Java中数组和集合的区别

1.数组的长度固定,既可以存放基本数据类型,也可以存放引用数据类型,但是数组中的数据类型要一致

2.集合长度不固定,只能放引用数据类型对象,且存放的引用数据类型可以不同。


11.请说明final关键字修饰的元素有哪些及特点

final修饰的类不可以被继承

final修饰的方法不可被重写

final修饰的变量不可以被重新赋值(数组和集合中的元素可以更改,但数组和集合的地址不可以更改)


12.请说明Set、List、Map三个接口,存储元素的特点

set集合(接口):集合中存放元素的特点是无序不重复

List集合(接口):集合中存放元素的特点是有序可重复

Map:存储元素以键值对的形式进行存储(key-value) ,其中key不可以重复,value可重复,允许使用null作为key-value的值


13.请说明ArrayList和LinkedList的区别

ArrayList和LinkedList都是List接口的实现类

ArrayList底层是由动态的Object[]数组实现的,使用ArraylList查询元素效率更高。

LinkedList底层是由链表实现的,使用LinkedList增加或删除元素效率更高。




你可能感兴趣的:(Java常见问题)