总结了一份BAT(阿里、百度等)资深Java相关的面试题合集给到大家。
文末有相关的2020最新BAT资深java面试题答案~用于参考
下面就来说说面试时面试官所提问的技术性问题,每个人的面试时面试官所问到的问题都是会有所不同的。
本文档小编已经整理好了,适合面试前的突击,有需要的读者朋友可以关注一下小编。
题目答案获取方式:
Java 基础知识
- 重载和重写的区别
- String 和 StringBuffffer、StringBuilder 的区别是什么?String 为什么是不可变的?
- 自动装箱与拆箱
- == 与 equals
- 关于 fifinal 关键字的一些总结
- Object类的常见方法总结
- Java 中的异常处理
- 获取用键盘输入常用的的两种方法
- 接口和抽象类的区别是什么
Java 集合框架
- Arraylist 与 LinkedList 异同
- ArrayList 与 Vector 区别
- HashMap的底层实现
- HashMap 和 Hashtable 的区别
- HashMap 和 Hashtable 的区别
- HashMap 的长度为什么是2的幂次方
- HashMap 多线程操作导致死循环问题
- HashSet 和 HashMap 区别
- ConcurrentHashMap 和 Hashtable 的区别
- ConcurrentHashMap线程安全的具体实现方式/底层具体实现
- 集合框架底层数据结构总结
Java多线程
一 面试中关于 synchronized 关键字的 5 连击
- 说一说自己对于 synchronized 关键字的了解
- 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
- 讲一下 synchronized 关键字的底层原理
- 说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优
- 化吗
- 谈谈 synchronized和ReenTrantLock 的区别
二 面试中关于线程池的 5连击
- 说说 synchronized 关键字和 volatile 关键字的区别
- 为什么要用线程池?
- 实现Runnable接口和Callable接口的区别
- 执行execute()方法和submit()方法的区别是什么呢?
- 如何创建线程池
三 面试中关于 Atomic 原子类的 4 连击
- 介绍一下Atomic 原子类
- JUC 包中的原子类是哪4类?
- 讲讲 AtomicInteger 的使用
- 能不能给我简单介绍一下 AtomicInteger 类的原理
AQS
- AQS 介绍
- AQS 原理分析
- AQS 原理概览
- AQS 对资源的共享方式
- AQS底层使用了模板方法模式
计算机网络常见面试点总结
- TCP、UDP 协议的区别
- 在浏览器中输入url地址 ->> 显示主页的过程
- 各种协议与HTTP协议之间的关系
- HTTP长连接、短连接
- TCP 三次握手和四次挥手(面试常客)
Linux
- 简单介绍一下 Linux 文件系统?
- 一些常见的 Linux 命令了解吗?
- TCP、UDP 协议的区别
- Linux 中主要有哪几种内核锁?
- 怎样申请大块内核内存?
- 通过伙伴系统申请内核内存的函数有哪些?
- Linux 软中断和工作队列的作用是什么?
MySQL
- 说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解
- 数据库索引了解吗?
- 为什么索引能提高查询速度?
- 先从 MySQL 的基本存储结构说起
- Mysql如何为表字段添加索引???
- Mysql 的技术特点是什么?
- 对于大表的常见优化手段说一下
- 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下
- 与 Oracle 相比,Mysql 有什么优势?
Redis
- 为什么要用 redis /为什么要用缓存
- 为什么要用 redis 而不用 map/guava 做缓存?
- redis 和 memcached 的区别
- redis 常见数据结构以及使用场景分析
- redis 设置过期时间
- redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
- redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
- 缓存雪崩和缓存穿透问题解决方案
- 如何保证缓存与数据库双写时的数据一致性?
- 如何解决 Redis 的并发竞争 Key 问题
Spring
- Spring Bean 的作用域
- Spring 事务中的隔离级别
- Spring 事务中的事务传播行为
- 使用 Spring 框架能带来哪些好处?
- 什么是控制反转(IOC)?什么是依赖注入?
- IOC 容器对 Bean 的生命周期:
- 简述 AOP 和 IOC 概念 AOP:
- Spring 框架中都用到了哪些设计模式?
- 请举例说明如何在 Spring 中注入一个 Java Collection?
消息队列
- 说一下什么是消息队列
- 为什么要用消息队列
- 使用消息队列带来的一些问题
- 常见的消息队列对比
- activemq 如果数据提交不成功怎么办(消息丢失)
- 如何解决消息重复问题
- 向不存在的 exchange 发 publish 消息会发生什么?向不存在的queue 执行 consume 动作会发生什么?
- 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange具有 durable 属性,同时 message 具有 persistent 属性才行?
Dubbo
- 说下什么是 Dubbo?
- 什么是 RPC?RPC原理是什么
- 为什么要用 Dubbo?
- 什么是分布式
- 为什么要分布式?
- 解释一下Dubbo 工作原理
- 先来解释一下什么是负载均衡
- zookeeper宕机与dubbo直连的情况
- 再来看看 Dubbo 提供的负载均衡策略
数据结构
- 什么是队列
- 队列的种类
- Java 集合框架中的队列 Queue
- 什么是 Set
- HashSet 和 TreeSet 底层数据结构
- 什么是List的常见实现类
- 列的字符串类型可以是什么?
- 说说B+树和B树的区别,优缺点等?
写在最后
最后,再强调几点:
- 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目
- 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
- 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
- 建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。
另外,我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试:
- 自我介绍。(你可千万这样介绍:“我叫某某,性别,来自哪里,学校是那个,自己爱干什么”,记住:多说点简历上没有的,多说点自己哪里比别人强!)
- 自己面试中可能涉及哪些知识点、那些知识点是重点。
- 面试中哪些问题会被经常问到、面试中自己改如何回答。(强烈不推荐背题,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!)
- 自己的简历该如何写。
大家要明确的很重要的几点是:
- 写在简历上的东西一定要慎重,这可能是面试官大量提问的地方;
- 大部分应届生找工作的硬伤是没有工作经验或实习经历;
- 将自己的项目经历完美的展示出来非常重要。
一 简历该如何写
俗话说的好:“工欲善其事,必先利其器”。准备一份好的简历对于能不能找到一份好工作起到了至关重要的作用。