面试问题总结

面试问题:

1.两个对象如何进行比较,需要实现什么方法?
equals和== 区别
object类中equals默认方法和==相同,比较的都是地址值,只有当我们重写了equals方法,通常重写后比较的是内容。

hashCode的作用及与equals的关系
hashCode的作用是用来获取hash码的,也称作散列码,实际返回值为int型数值,用于确认对象在哈希表中位置。hashcode只有在创建某个类的散列表的时候有用,根据hashcode确定对象在散列表中位置。
java中常见的散列表类有hashmap,hashset hashtable。
两个对象equals相等时,hashcode不一定相等。

注意: hashset存储数据时,判断重复是根据equals相等并且hashcode相等,则为同一个对象,否则两个对象属性相同,都会被存储。

引申出几个经常在面试中问到的问题:
1、两个对象,如果a.equals(b)==true,那么a和b是否相等?
相等,但地址不一定相等。
2、两个对象,如果hashcode一样,那么两个对象是否相等?
不一定相等,换句话说hashcode相等,对应的键值对可能不同,也就是hash冲突。判断两个对象是否相等,需要判断equals是否为true。

2.Synchronized修饰静态方法和普通方法的区别?
修饰静态方法的锁为class锁,当前类锁。
修饰普通方法的为this锁,对象锁。

3.单例模式 饿汉式懒汉式优缺点?
饿汉式

4.动态代理及静态代理分别怎样实现?
5.volatile关键字用法?
6.线程如何实现安全?
7.HashMap插入重复Key值问题
8.concurrent并发包
9.线程池有几种、都有哪些参数?
9.Mysql索引底层数据结构与算法?
10.mysql引擎?
11.mysql与oracle区别?
12.Spring 的切面编程AOP如何实现 注入切面程序
13.jdk 1.8特性
14.maven布控
15.事务隔离级别
16.前后端跨域如何解决
17.冒泡 二分排序思想
18.怎样保证redis数据与数据库一致?
19.mybatis底层如何实现?
20.RabbitMQ的六种工作模式?
21.java锁分哪几种?
22.maven生命周期
23.ThreadLocal

还没有整理完全,后期有时间更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值