前言
近期根据网友分享大厂面试题目,今天我将网友面试的BAT等大厂JAVA岗面试题目整理出来,希望能够帮助大家!
阿里巴巴篇
1.题目:NFS 和 SMB 是最常见的两种 NAS(Network Attached Storage)协议,当把一个文件系统同时通过 NFS 和 SMB 协议共享给多个主机访问时,以下哪些说法是错误的:(多选)
A. 不可能有这样的操作,即把一个文件系统同时通过 NFS 和 SMB协议共享给多个主机访问。
B. 主机 a 的用户通过NFS 协议创建的文件或者目录,另一个主机 b的用户不能通过 SMB 协议将其删除。
C. 在同一个目录下,主机 a 通过 NFS 协议看到文件 file.txt,主机b 通过 SMB 协议也看到文件 file.txt,那么它们是同一个文件。
D. 主机 a 通过 NFS 协议,以及主机 b 通过 SMB 协议,都可以通过主机端的数据缓存,提升文件访问性能。
参考答案:A,B,C
2.ConcurrentHashMap原理,JDK1.8都有什么新特性
3.HBase底层数据存储的结构
4.java内存模型分为了几块区域?元空间里有些啥?
5.jdk hashmap 底层存储?红黑树的特点,为啥不用数组用红黑树?数据库用过吗?用的啥数据库,mysql用的啥引擎?为啥数据库底层用B+树不用红黑树?
6.JVM内存模型了解下,是否有过调优经验(大互联公司)
7.题目:MySQL 的数据如何恢复到任意时间点?
参考答案:恢复到任意时间点以定时的做全量备份,以及备份增量的 binlog 日志为前提。恢复到任意时间点首先将全量备份恢复之后,在此基础上回放增加的 binlog 直至指定的时间点。
8.NIO知道吗? nio底层调用了啥?啥是非阻塞IO?
9.string类的用法
10.题目:从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?
参考答案:key 太长会导致一个页当中能够存放的 key 的数目变少,间接导致索引树的页数目变多,索引层次增加,从而影响整体查询变更的效率。
11.对象存在java内存的那块区域里面
12.多线程,AtomicInteger底层用的啥?cas的原理,AtomicInteger用了Voliate么?voliate的原理,变量加Voliate被修改了其他线程能立刻知道么?
13.知道spring AOP是如何实现的么,动态代理和CGlib分别是如何实现的
14.了解Dubbo框架不,看过源码没,了解实现原理吗?
15.给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度
华为篇
1.java的反射机制了解吗?
2.Java的数据类型,线程,内存
3.rabbitMQ有哪些关键的组成部分?
4.STL中vector和map的区别,map底层如何删除一个元素
5.String,StringBuffer,聊了比较多的String相关的
6.对Spring的理解,说说里面用到的设计模式
7.多线程中生产者和消费者如何保证同步
8.浏览器输入一个地址,数据在网络中是怎么传输的,每一层加了什么?
9.你用的java哪个版本,java1.8有什么新特性?
10.你用过什么消息中间件?
11.说一下mysql中隔离性的4个隔离级别,如何保证可重复读,mvvc了解吗?它的原理是什么
12.写代码:判断一棵树是不是平衡二叉树
13.自旋锁和互斥量的区别
百度篇
1.concurrentHashmap是安全的吧,那你知道concurrentHashmap的size()怎么求吗
2.MySQL用的什么索引?
3.ReentrantLock如何实现非公平锁的?重点是如何实现“非公平”,和“公平锁”有什么区别?
4.Synchronized的底层原理,字节码层面如何实现加锁的?
5.编程题:给定一颗二叉树,实现一个方法让每个节点新增一个next,next指向当前节点右边的第一个兄弟节点。
6.场景题:有A、B、C三个方法,分别是循环输出A,输出B,输出C 10次,使用多线程实现按照“ABC”的顺序输出10次
7.反转链表按k,最长重复子串
8.用过Spring吧,说一说Spring中Bean的加载过程,BeanFactory和FactoryBean有什么区别?
9.内存泄漏是什么,怎么检测
10.什么是线程池
11.写一个list删除目标元素的函数,然后写个测试用例测试一下能不能通,为什么不能正向遍历
12.消费者生产者,写写伪代码
美团篇
1.mybatis怎么实现orm 说说自己理解 让你落地怎么去做
2.PU飙升,只有JAVA进程,如何解决
3.Redis和ZooKeeper如何实现分布式锁以及区别
4.String 和 Hash的使用场景
5.StringBuilder和StringBuffer的区别
6.ZooKeeper如何实现数据一致性
7.分布式锁的实现原理
8.简单讲一下你使用过的设计模式,然后让我写了一个线程安全的单例
9.实习做了什么,怎么做的,有什么收获
10.线程有几个状态,就绪和阻塞有什么不同,知道线程池的实现原理不,核心参数讲一下,讲一下线程池分配线程的方法,项目中用过几种加锁的方法,threadlocal的实现原理
11.一个算法题假设有N级台阶每次可以上1或者2 阶,有几种方法上N级台阶
字节跳动篇
1.hashmap,hashmap扩容是需要重新哈希吗?如果二次哈希后还是哈希冲突呢?
2.integer和int的自动装箱和拆箱以及为什么要用integer类
3.Java的线程都有哪几种状态
4.Java堆中有哪些GC算法
5.Java有哪些引用类型,分别是什么特点
6.JMM模型,内存可见性介绍下
7.JVM内存模型分为哪几个区域
8.static final修饰的一个int 进行修改后是否需要进行重新编译
9.synchronized和volatile区别
10.wait()和sleep()有什么区别
11.并发中的方法
12.抽象类和接口的区别,什么时候用抽象类什么时候用接口
13.二叉树镜像,时间复杂度,空间复杂度
14.反转链表按k,最长重复子串
15.介绍2个设计模式
16.算法题: 反转链表,删除排好序数组中重复元素,第一题秒了,第二题用两根指针卡了可能1分钟在左指针的移动上。
17.推荐系统,考虑过分布式系统嘛,QPS怎么测试出来
以上就是一线BAT互联网大厂JAVA岗经典面试题,小编把这些面试题目以及答案收集总结出来的一套BAT大厂面试资料专题包,在这里免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家,有需要的朋友帮忙关注+转发,然后后台私信【学习】即可免费领取~