前言
网上找了很多的Java面试题及部分资料,选取了其中10篇来作为本次的分享。以下为整理出来的文章,给大家分享。
java面试题及答案 第一篇
一面
手写ArrayList
手写进制转换算法,求出一个数的二进制数 1 的个数
JAVA 基础,equals 和==
多线程方式、threadlocal,各种锁,synchronized 和 lock
设计模式、spring 类加载方式、实例保存在哪、aop ioc、反射机制6、类加载器,双亲委派模型,热部署
jvm 内存模型,内存结构、堆的分代算法、堆的分区、gc 算法、gc 过程
tcp ip,七层模型,rest 接口规范,get 和 post 区别,长度,安全9、tcp ip 的 arp 协议,两个同一网络的主机如何获得对方的 mac 地址10、负载均衡、高并发、高可用的架构
mysql 的引擎区别
redis 缓存,redis 的集群部署,热备份,主从备份,主从数据库,hash 映射找到知道指定节点
了解云计算么,了解云容器 docker 么,容器和虚拟机的区别
百度 java 程序员
二面
自我介绍,项目中负责哪些,做了哪些
项目中的数据库备份,主从数据库、集群
数据库的索引原理,b+树原理,trie 树引申,二叉查找树的原理
海量数据中查找一个单词,分布式计算 map reduce,或者用 hsah 映射筛选部分结果5、java 的抽象类和接口区别、java 的 hashmap,java 的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里
int 4 个字节,double 8 个字节
多线程中的wait 和sleep 区别,notify 的作用
设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法
写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费
tcp ip 的四次挥手,子网掩码的作用
了解 linux 么,说一下 linux 的内核锁?
有没有用过 sed,使用 shell 脚本写一个将文本中的字符替换掉的脚本,大概说了一下用 grep||替换
java面试题及答案 第二篇
一面
自我介绍
Java 中的多态
为什么要同时重写 hashcode 和 equals 4、Hashmap 的原理
Hashmap 如何变线程安全,每种方式的优缺点
垃圾回收机制
Jvm 的参数你知道的说一下
设计模式了解的说一下啊
手撕一个单例模式
算法题目
手撕算法:反转单链表
手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
手写 java 多线程
手写 java 的soeket 编程,服务端和客户端
手撕算法:爬楼梯,写出状态转移方程
智力题:时针分针什么时候重合
二面
自我介绍
项目介绍
服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免 DDOS 攻击请求打到少数机器
TCP 连接中的三次握手和四次挥手,四次挥手的最后一个ack 的作用是什么,为什么要
time wait,为什么是 2msl
数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决
Linux 查看 cpu 占用率高的进程
手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上
然后继续在这个问题上扩展
求出最短那条的路径
递归求出所有的路径
设计模式讲一下熟悉的
会不会滥用设计模式
多线程条件变量为什么要在while 体里
java面试题及答案 第三篇