ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java面试题目

2021-09-25 09:03:38  阅读:123  来源: 互联网

标签:调用 java hashCode 面试 线程 集合 题目 yes 方法


面试题提纲

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,hashCode,面试,线程,集合,题目,yes,方法
来源: https://www.cnblogs.com/luoshouping/p/15333344.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有