Java教程

java面试题目

本文主要是介绍java面试题目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

面试题提纲

1、关键字,private protected public static final 组合着问

访问控制符

 同一个类中同一个包中不同包中的子类不同包非子类
private yes      
默认(包可访问) yes yes    
protected yes yes yes  
public yes yes yes yes

其他修饰符

 基本含义修饰类修饰成员修饰局部变量
static 静态的、非实例的、类的、 只能修饰内部类 yes  
final 最终的、不可改变的 yes yes yes
abstract 抽象的、不可实例化的 yes yes  

2、Object类里面有哪几种方法

九种方法

getClass():获取类对象
hashCode():获取hashCode的值
equals():比较对象的值和地址是否相等
notify():随机选择一个在该对象上调用wait方法的线程,解除其阻塞状态。该方法只能在同步方法或同步块内部调用。如果当前线程不是锁的持有者,该方法抛出一个IllegalMonitorStateException异常。
notifyall():解除所有那些在该对象上调用wait方法的线程的阻塞状态。该方法只能在同步方法或同步块内部调用。如果当前线程不是锁的持有者,该方法抛出一个IllegalMonitorStateException异常。
wait():导致线程进入等待状态,直到它被其他线程通过notify()或者notifyAll唤醒。该方法只能在同步方法中调用。如果当前线程不是锁的持有者,该方法抛出一个IllegalMonitorStateException异常。
 finalize():对象回收时调用

 

equals 和 hashCode方法,重写equals的原则()

其实当 equals 方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码

 

3、什么是向上转型

JAVA中的一种调用方式。向上转型是对A的对象的方法的扩充,即A的对象可访问B从A中继承来的和B复写A的方法。

Student extends Person
​
Person person = new Student()

向下转型是不安全的,容器出现错误,一种强转的过程

4、Exception和Error

Exception:出现的异常,java.lang.NullPointerException

Error: 出现错误

5、反射的用途

反射最重要的用途就是开发各种通用框架

6、HashMap实现原理(数组+链表),查找数据的时间复杂度

HashMap的实现原理--链表散列

1、底层有一个hash表,查询的速率快
​
2、HashMap集合是一个无序的集合。

LinkHashMap

LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
LinkHashMap集合是一个有序集合

7、List有哪些子类,各有什么区别

有序、带索引、可重复

1、Vector: 同步的

底层数据结构是数组,查询快,增删慢。
​
线程安全,效率低。

2、ArrayList

底层数据结构是数组,查询快,增删慢。
​
线程不安全,效率高。

3、LinkedList

底层数据结构是链表,查询慢,增删快。
​
线程不安全,效率高。

8、Java泛型机制,泛型机制的优点,以及类型变量

好处:

1、避免异常

2、把运行期异常,提升为编译期异常

3、集合中存储的元素类型统一了

4、从集合中取出的元素类型是泛型指定的类型,不需要进行大量的“向下转型”

弊端:

泛型是什么类型就是什么,只可以存储什么数据

导致集合中存储的元素缺乏多样性

 

 

 

 

这篇关于java面试题目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!