Java的面试问题在大厂招聘时十分重要,是最快捷考验一个程序员专业与否的途径。下面顽石科教整理了一些大厂真实Java面试问题,一起学习下吧!
首先通常都会让你介绍自己的项目:会问比如项目整体架构共包含哪些服务?服务之间信息流是如何流转的?在项目中,有没有遇到什么难点?有没有排查过项目的线上问题? 你觉得你现在的设计有什么问题么?如果你负责的服务从100TPS变成1万TPS会有什么问题?怎么处理?如果你负责的这个功能之后需要频繁变更,你怎么设计?等等。
面试官此举主要是想考察你:这个项目是不是真的是你做的;是否对项目整体都有把控和关心;平日里是否有对项目进行总结性思考;是否有线上故障处理能力;是否有设计和架构思维等等。所以要多多准备自己的项目,扒一扒你自己负责的模块。
以下是BAT(中国三大互联网公司——百度公司(Baidu)、阿里巴巴集团(Alibaba)、腾讯公司(Tencent)首字母的缩写)的Java面试题。
阿里java面试题
你比较了解的机器学习的算法有哪些,说一下这些算法的过程和区别?
网络的体系结构分为哪五层,每层分别有哪些协议?
TCP和UDP的区别是什么,如果想发送即时消息应该用哪种协议?
对HTTP协议了解多少,HTTP和HTTPS有什么区别,HTTPS的安全性是怎么实现的?
如何判断SQL查询操作是不是慢sql,如何优化?
死锁是什么,处理死锁的方法有哪些?
hashmap的数据结构是什么,具体是怎么实现的,是不是线程安全的(不是),那么它的线程安全的替代有哪些?
流量在某一时刻暴涨,然后又猛跌如何应对?
redis 的持久化机制?
为什么Java类加载要用双亲委派?
腾讯Java面试题
什么是反射,反射作用是什么?
双检锁单例模式为什么那样设计?二次判空的原因,volatile关键字两个关键作用及其实现原理?
ReentrantLock与synchronized的区别,公平性非公平性是如何体现的?
你用过哪些设计模式?解决了什么问题?
redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的memcached 效率要高?在选择缓存时,什么时候选择 redis,什么时候选择 memcached?
除了ReetrantLock, 你还接触过JUC中的哪些并发工具?
百度Java面试题
给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。
把一个 bst 转化成一个双向链表。
kill 用法,某个进程杀不掉的原因。
http 的 get 和 post 方法。
介绍一下 hash,怎么解决冲突。
说下你平时看的一些技术博客,书籍。
给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测?