面试题分享(初中级)
这里就不说是那个公司,大厂之一,面的是初中级阶段Java岗位,有幸遇到一个百年不遇的温和型面试官,有多温和?问问题的方式是由浅入深,且层层递进,有暗示性的问,并且不会的问题会提示,解答,最后给你本次面试的评价并指出你的缺点,以及欠缺和需要补漏的地方,可以说是我遇到面试官里最舒服的一个,后来朋友拿到了offer,说他是高级工程师。
秋招马上开始,现在市场要求越来越高,本着差缺补漏的思想,分享下整体面试过程,有录音和面试题,需要的后台留言。
先说下面试风格,围绕面试题,由你的作答进行层层递进,希望大家都能遇到这样的面试官,拿不拿到的offer都是非常舒服的一次经历。
1.redis的过期时间是怎么设置的? 京东是永不过期的
几种数据类型?5种
String 二进制安全的 jpg或者序列化对象
Set 无序不可重复的集合
List 先进先出
Hash 储存对象
zset 有序集合
k score v 排行榜
zrange
持久化机制?
dubbo 2.56
2.synchronized的实现原理 锁的是对象
jvm 实现的
3.synchronized与ReentryLock的实现类区别
4.wait notify 为什么要搭配使用?
5.不搭配会发生什么object层次
单独调用会报异常
只有在调用线程拥有某个对象的独占锁时,才能够调用该对象的wait(),notify()和notifyAll()方法。这一点通常不会被程序员注意,因为程序验证通常是在对象的同步方法或同步代码块中调用它们的。如果尝试在未获取对象锁时调用这三个方法,
“java.lang.IllegalMonitorStateException:current thread not owner”。
底层把对象作为一个监视器
6.线程池参数?
7.并发包 线程池 线程交互
8.集合类
set的实现类 HashSet LinkedHashSet TreeSet
9.hashset 与hashmap
10.hashmap的构造方法 4种
11.负载因子的目的:空间换时间 减少碰撞
12.什么时候进行扩容?
13.负载因子的取值范围?
14.hashmap不是线程安全的?为什么?
15.concurrenthashmap 怎么实现的线程安全?
16.锁的粒度?
17.jvm 分区?
堆 new的部分
栈 引用地址
方法区
18.java是值传递 还是引用传递?
Integer i1=125
Integer i2=125
==是true 还是false?
在取值范围内 是true
19.递归的层次太深会发生什么?
20.单例模式的几种写法?双端检索DCL,枚举,匿名内部类
懒汉 对象用的时候再实例化
21.怎么保证线程安全?
volatile(指令重排)+synchronize
22.Threadlocal应用环境
隐式传参 保证线程隔离 线程封闭
23.底层实现?
24.隔离级别?可重复读 读未提交 读已提交 串行化
多个事务执行不会相互影响
效率低
间隙所和行锁加上了 解决了幻读问题
25.网络的七层传输
DNS:同源策略
26.如何生成分布式环境的uuid
分布式锁?
redis 递增
机器的唯一码 拿出几位存为机器id
zk 协同生成
27.乐观锁 悲观锁
应用场景
28.减库存更新失败怎么解决?
重试
乐观锁的性能低
29.Spring 配置单例 scope
30.单例和多例还能配别的吗?
request session
单例 多例
31.管理事务 AOP如何实现
@Aspectj 动态植入
32.动态代理和静态代理的区别?
动态代理底层实际就java 的反射机制。静态代理最具代表的性的是在简单工厂模式中体现
描述起来比较快,但是其中细节多,面试时长2小时+,比较愉快,气氛轻松,整体就非常正式,现在翻出来听一听,给自己加深下印象
如需面试题,录音,请留言
- 点赞
- 收藏
- 关注作者
评论(0)