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增加或删除元素效率更高。
网友评论