金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机

写在前面:

面临着一年一度金九银十的黄金跳槽季,不光是很多在职人员跃跃欲试,也有很多毕业大学生积极地加入到应聘行列。作为技术出身的我们,找工作的前提就是技术是否能过关。而对于java程序员来说,至少是两关的面试,这首个关卡就是笔试,如何通过面试官的重重考验,在众多人群中脱颖而出,拿到自己理想的offer呢?今天我总结了一些关于java的面试题,希望能帮助到正在求职的你!

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第1张图片

 

首先是算法,说到算法很多人就想到了字节跳动,曾经被字节面试官在算法题上支配的噩梦,其实不只是字节跳动这一公司重视算法,在越来越多的互联网大公司也开始对算法的重视程度提升,算法将会在以后的面试与应用区域上作为主流出现

算法

  • 在一次遍历中,怎样发现单个链表的中间元素?
  • 怎样验证给定的链表是环形的? 怎样发现这个环的起始节点?
  • 怎样找出单个链表的长度?
  • 怎样使用栈计算两个链表的和?
  • 在一个给定的从1到100的整型数组中,如何快速找到缺失的数字?
  • 在一个未排序的整型数组中,如何找到最大和最小的数字?
  • 在一个整型数组中,如何找到一个所有成对的数字,满足它们的和等于一个给定的数字?
  • 如何从一个数组中删除重复元素?
  • 不使用递归如何按照前序遍历给定二叉树?
  • 不使用递归情况下如何使用中序遍历输出给定二叉树所有节点?
  • 如何在给定二叉树中计算叶节点数目?
  • 合并排序算法是如何实现的?
  • 在不使用第三个变量的前提下如何交换两个数?
  • 如何设计一个自动售货机?
  • 题目(盛大无线面试题):在一个字符串数组中有红、黄、蓝三种颜色的球,且个数不相等、顺序不一致,请为该数组排序,使得排序后
  • 题目:取一个整数a从右端开始的4~7位。
  • 题目:输入3个数a,b,c,按大小顺序输出。
  • 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
  • 字符串排序。
  • 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
  • 新浪面试题:编写一个方法,计算一个字符串中,第一个不重复的字符在当前字符串中的索引。
  • 题目:求一个3*3矩阵对角线元素之和
  • 题目:判断101-200之间有多少个素数,并输出所有素数
  • 题目:将一个正整数分解质因数。例如:输入 90 ,打印出 90=2*3*3*5

算法学习路线图

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第2张图片

 

算法+答案

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第3张图片

 

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第4张图片

 

由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以关注+转发后台私信我【666】免费获取

多线程是每个程序员面试时经常会面对的问题,对多线程概念的掌握和理解水平,也会被用来衡量一个人的编程实力的重要参考指标。不论是实际工作需要还是为了应付面试,掌握多线程都是程序员职业生涯中一个必须经过的环节。其实当你把“多线程”和你的“职业生涯”联系在一起考虑的时候,就会觉得“多线程”是多么的渺小,对,没有跨越不过的山。不过就算它很渺小,但也有可能改变你的人生轨迹。那么我们就一起来看看多线程的题目吧。

多线程

  • 多线程和单线程的区别和联系?
  • 如何知道代码段被哪个线程调用?
  • 线程活动状态?
  • 如何优雅的设置睡眠时间?
  • 多线程一定快吗?
  • Java虚拟机退出时Daemon线程中的finally块一定会执行?
  • 什么是synchronized?
  • synchronized包括哪两个jvm重要的指令?
  • synchronized关键字用法?
  • synchronized锁的是什么?
  • 线程池有了解吗?
  • Java如何实现原子操作
  • CAS循环时间长占用资源大问题
  • Lock接口提供 synchronized不具备的主要特性
  • 什么是阻塞队列?
  • 阻塞队列常用的应用场景?
  • Java中原子操作更新基本类型,Atomic包提供了哪几个类?
  • 为什么使用线程池
  • 什么是同步?什么又是异步?
  • 10 个线程和 2 个线程的同步代码,哪个更容易写?
  • 线程和进程的区别
  • 什么是阻塞(Blocking)和非阻塞(Non-Blocking)?
  • 什么是死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)?
  • 多线程产生死锁的 4 个必要条件?
  • 如何指定多个线程的执行顺序?
  • Java 中线程有几种状态?

多线程学习路线图

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第5张图片

 

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第6张图片

 

多线程+答案

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第7张图片

 

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第8张图片

 

MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证。也是互联网最常用的数据库之一,下面我们来看看面试题吧

MySQL调优

  • 使用过消息队列吗?在什么场景使用的?用来解决什么问题?
  • 使用队列时如何保证可靠性?
  • 数据库事务有哪些特性?事务的隔离级别有哪几种?
  • 数据库事务有哪些特性?事务的隔离级别有哪几种?
  • 关于B+树的叶子节点,可以存放哪些东西?
  • 在建立索引的时候,你一般考虑哪些因素?
  • 如何判断创建的索引是否使用到,或者说如何分析Sql语句?
  • 能不能详细介绍下MySql是如何控制隔离级别的?
  • 据库的索引有哪几种?为什么要用B+树来做索引?组合索引和几个单个的索引有什么区别?
  • MySQL B+Tree索引和Hash索引的区别?
  • .数据库的读写分离、主从复制,主从复制分析的 7 个问题?
  • 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
  • 数据库的大表查询优化了解吗?MVCC机制了解不?MVCC机制有什么问题?怎么去解决这个问题?mysql慢语句调优做过吗?说说你是怎么做的?

MySQL调优学习路线图

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第9张图片

 

MySQL调优+答案

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第10张图片

 

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第11张图片

 

Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用到。Redis相关的问题可以说是面试必问的,下面我从个人当面试官的经验,总结几个必须要掌握的知识点。

Redis

  • 为什么要用 Redis /为什么要用缓存?
  • 为什么要用 Redis 而不用 map/guava 做缓存?
  • Redis 的持久化机制是什么?各自的优缺点?
  • Redis持久化数据和缓存怎么做扩容?
  • 我们知道通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
  • MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
  • Redis支持的数据类型?
  • 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
  • Redis常用命令
  • Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比
  • 为什么Redis 单线程却能支撑高并发?
  • 说说Redis的内存淘汰策略
  • Redis最适合的场景
  • Redis支持的Java客户端都有哪些?官方推荐用哪个?
  • 说说Redis哈希槽的概念?
  • Redis集群会有写操作丢失吗?为什么?

Redis学习路线图

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第12张图片

 

Redis+答案

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第13张图片

 

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,也是互联网大厂面试必问项目之一

Java虚拟机(JVM)

  • java中会存在内存泄漏吗,请简单描述。
  • 解释 Java 堆空间及 GC?
  • 你能保证 GC 执行吗?
  • 怎么获取 Java 程序使用的内存?堆使用的百分比?
  • GC 是什么?为什么要有 GC?
  • Parallel Scavenge 收集器(多线程复制算法、高效)
  • JVM 类加载机制
  • 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
  • 描述一下JVM加载class文件的原理机制?
  • Minor GC与Full GC分别在什么时候发生?
  • 你知道哪些JVM性能调优
  • 队列和栈是什么?有什么区别?
  • 常用的 JVM 调优的参数都有哪些?
  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  • 说一下 JVM 的主要组成部分及其作用?
  • 详细介绍一下 CMS 垃圾回收器?
  • 描述一下JVM加载class文件的原理机制?

JVM学习路线图

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第14张图片

 

JVM+答案

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第15张图片

 

金九银十备战BAT秋招:算法+多线程+MySQL调优+redis+JVM虚拟机_第16张图片

 

由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以关注+转发后台私信我【666】免费获取

还是要继续学习,做做项目,学习的路从来都没有尽头,如果真的进了阿里、字节、腾讯等这一类大厂,这一年真的要狠狠的拼拼,不能进去垫底。

永远不要放弃,任何东西都值得珍惜。

面试总结:

  ①培养个人思维能力很重要!

  ②考虑问题要全面,要从多个角度看待问题,那么你将看的更远,走的更好!

  ③不要杞人忧天,重要的还是自己,坚持自己,努力才是我们这些小菜需要的!

  ④最后,也是最重要的一点是加强自己的技术能力!

你可能感兴趣的:(java)