进了鹅厂半年了,最近整理了一下Java面试题面试题希望对你们

鹅厂一面

1.synchronized原理,怎么保证可重入性,可见性,抛异常怎么办,和lock锁的区别,2个线程同时访问synchronized的静态方法,2个线程同时访问一个synchronized静态方法和非静态方法,分别怎么进行

2.volatile作用,原理,怎么保证可见性的,内存屏障

3.你了解那些锁,乐观锁和悲观锁,为什么读要加锁,乐观锁为什么适合读场景,写场景不行么,会有什么问题,cas原理

4.什么情况下产生死锁,怎么排查,怎么解决

5.一致性hash原理,解决什么问题,数据倾斜,为什么是2的32次方,20次方可以么

6.redis缓存穿透,布隆过滤器,怎么使用,有什么问题,怎么解决这个问题

7.redis分布式锁,过期时间怎么定的,如果一个业务执行时间比较长,锁过期了怎么办,怎么保证释放锁的一个原子性,你们redis是集群的么,讲讲redlock算法

8.mysql事务,acid,实现原理,脏读,脏写,隔离级别,实现原理,mvcc,幻读,间隙锁原理,什么情况下会使用间隙锁,锁失效怎么办,其他锁了解么,行锁,表锁

9.mysql索引左前缀原理,怎么优化,哪些字段适合建索引,索引有什么优缺点

10.线上遇到过慢查询么,怎么定位,优化的,explain,using filesort表示什么意思,产生原因,怎么解决

11.怎么理解幂等性,有遇到过实际场景么,怎么解决的,为什么用redis,redis过期了或者数据没了怎么办

鹅厂二面

1.hashmap原理,put和get,为什么是8转红黑树,红黑树节点添加过程,什么时候扩容,为什么是0.75,扩容步骤,为什么分高低位,1.7到1.8有什么优化,hash算法做了哪些优化,头插法有什么问题,为什么线程不安全

2.arraylist原理,为什么数组加transient,add和get时间复杂度,扩容原理,和linkedlist区别,原理,分别在什么场景下使用,为什么

3.了解哪些并发工具类

4.reentrantlock的实现原理,加锁和释放锁的一个过程,aqs,公平和非公平,可重入,可中断怎么实现的

5.concurrenthashmap原理,put,get,size,扩容,怎么保证线程安全的,1.7和1.8的区别,为什么用synchronized,分段锁有什么问题,hash算法做了哪些优化

6.threadlocal用过么,什么场景下使用的,原理,hash冲突怎么办,扩容实现,会有线程安全问题么,内存泄漏产生原因,怎么解决

7.垃圾收集算法,各有什么优缺点,gc roots有哪些,什么情况下会发生full gc

8.了解哪些设计模式,工厂,策略,装饰者,桥接模式讲讲,单例模式会有什么问题

9.对spring aop的理解,解决什么问题,实现原理,jdk动态代理,cglib区别,优缺点,怎么实现方法的调用的

10.mysql中有一个索引(a,b,c),有一条sql,where a = 1 and b > 1 and c =1;可以用到索引么,为什么没用到,B+树的结构,为什么不用红黑树,B树,一千万的数据大概多少次io

11.mysql聚簇索引,覆盖索引,底层结构,主键索引,没有主键怎么办,会自己生成主键为什么还要自定义主键,自动生成的主键有什么问题

12.redis线程模型,单线程有什么优缺点,为什么单线程能保证高性能,什么情况下会出现阻塞,怎么解决

13.kafka是怎么保证高可用性的,讲讲它的设计架构,为什么读写都在主分区,这样有什么优缺点

了解DDD么,不是很了解

你平时是怎么学习的

项目介绍

鹅厂三面

1.线程有哪些状态,等待状态怎么产生,死锁状态的变化过程,中止状态,interrupt()方法

2.你怎么理解线程安全,哪些场景会产生线程安全问题,有什么解决办法

3.mysql多事务执行会产生哪些问题,怎么解决这些问题

4.分库分表做过么,怎么做到不停机扩容,双写数据丢失怎么办,跨库事务怎么解决

5.你们用的redis集群么,扩容的过程,各个节点间怎么通信的

6.对象一定分配在堆上么,JIT,分层编译,逃逸分析

7.es的写入,查询过程,底层实现,为什么这么设计

8.es集群,脑裂问题,怎么产生的,如何解决

9.while(true)里面一直new thread().start()会有什么问题

10.socket了解么,tcp和udp的实现区别,不了解,用的不多

11.设计一个秒杀系统能承受千万级并发,如果redis也扛不住了怎么办

项目介绍

鹅厂四面

1.讲讲你最熟悉的技术,jvm,mysql,redis,具体哪方面

2.new Object[100]对象大小,它的一个对象引用大小,对象头结构

3.mysql主从复制,主从延时怎么解决

4.怎么保证redis和mysql的一致性,redis网络原因执行超时了会执行成功么,那不成功怎么保证数据一致性

5.redis持久化过程,aof持久化会出现阻塞么,一般什么情况下使用rdb,aof

6.线上有遇到大流量的情况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过原因么,你们当时怎么处理的

7.限流怎么做,如果让你设计一个限流系统,怎么实现

8.dubbo和spring cloud区别,具体区别,分别什么场景使用

9.给了几个场景解决分布式事务问题

项目介绍

你觉得你们的业务对公司有什么实际价值,体现在哪,有什么数据指标么

鹅厂五面hr面完后又来了一面,说是交叉面

1.怎么理解用户态,内核态,为什么要分级别,有几种转换的方式,怎么转换的,转换失败怎么办

2.怎么理解异常,它的作用是什么,你们工作中是怎么使用的

3.你们用redis么,用来做什么,什么场景使用的,遇到过什么问题,怎么解决的

4.jvm元空间内存结构,永久代有什么问题

5.你平时开发中怎么解决问题,假如现在线上有一个告警,你的解决思路,过程

6.你们为什么要用mq,遇到过什么问题么,怎么就解决的

干货储备(核心技能)

学Java,八股文真的很重要,推荐一款小程序,在家用电脑,路上刷小程序就是背,VX小程序搜索JavaDrive有面试题刷题,各种工具。还有大厂面试记录

你可能感兴趣的:(进了鹅厂半年了,最近整理了一下Java面试题面试题希望对你们)