恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了

前言

作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万,而自己却囊中羞涩。于是你也想看看新机会,找个新平台,好好发展。

但是面试的时候,当那个笑眯眯的面试官问出那些你再熟悉不过的 Java 问题时,你只是感觉似曾相识,却怎么也回答不到点上。比如 HashMap 的工作原理,再或者 volatile 的使用场景。

这个时候,你可能会怀疑自己的能力,也痛恨为什么当初自己没有好好复习。


该新版文档在Github上上传一个星期已经收获30K+star的Java核心面试神技(这参数,质量多高就不用我多说了吧)非常全面,包涵Java基础、Java集合、JavaWeb、Java异常、OOP、IO与NIO、反射、注解、多线程、JVM、MySQL、MongoDB、Spring全家桶、计算机网络、分布式架构、Redis、Linux、git、前端、算法与数据结构、MyBatis、RocketMQ、Netty、Dubbo、Zookeeper、分布式缓存、数据结构等等内容非常丰富,已经帮很多人拿下互联网一线公司的offer。下面我来跟大家一起分享一下。

  • JavaOOP
  • 什么是B/S架构?什么是C/S架构
  • Java都有哪些开发平台?
  • 什么是JDK?什么是JRE?
  • Java语言有哪些特点
  • 面向对象和面向过程的区别
  • 什么是数据结构?
  • Java的数据结构有哪些?
  • 什么是OOP?
  • 类与对象的关系?
  • Java中有几种数据类型


由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)帮忙点赞+私信(核心)获取哦

Java集合/泛型

  • ArrayList和linkedList的区别
  • HashMap和HashTable的区别
  • Collection包结构,与Collections的区别
  • 泛型常用特点 (待补充)
  • 说说List,Set,Map三者的区别
  • Array与ArrayList有什么不一样?
  • Map有什么特点
  • 集合内存放于 Java.util 包中, 主要有几 种接口
  • 什么是list接口
  • 说说ArrayList(数组)

Java异常

  • Java中异常分为哪两种?
  • 异常的处理机制有几种?
  • 如何自定义一个异常
  • try catch fifinally,try里有return,finally还执行么?
  • Excption与Error包结构
  • Thow与thorws区别
  • Error与Exception区别?
  • error和exception有什么区别


Java中的IO与NIO

  • Java 中 IO 流?
  • Java IO与 NIO的区别
  • 常用io类有哪些
  • 字节流与字符流的区别
  • 阻塞 IO 模型
  • 非阻塞 IO 模型
  • 多路复用 IO 模型
  • 信号驱动 IO 模型
  • 异步 IO 模型
  • JAVA NIO


Java反射

  • 除了使用new创建对象之外,还可以用什么方法创建对象?
  • Java反射创建对象效率高还是通过new创建对象的效率高?
  • java反射的作用
  • 哪里会用到反射机制?
  • 反射的实现方式:
  • 实现Java反射的类:
  • 反射机制的优缺点:
  • Java 反射 API
  • 反射使用步骤(获取 Class 对象、调用对象方法)
  • 获取 Class 对象有几种方法
  • 利用反射动态创建对象实例


Java序列化

  • 什么是java序列化,如何实现java序列化?
  • 保存(持久化)对象及其状态到内存或者磁盘
  • 序列化对象以字节数组保持-静态成员不保存
  • 序列化用户远程对象传输
  • Serializable 实现序列化
  • writeObject 和 readObject 自定义序列化策略
  • 序列化 ID
  • 序列化并不保存静态变量
  • Transient 关键字阻止该变量被序列化到文件中
  • 序列化(深 clone 一中实现)


多线程&并发

JAVA 并发知识库

  • Java中实现多线程有几种方法
  • 继承 Thread 类
  • 实现 Runnable 接口。
  • ExecutorService、 Callable、 Future 有返回值线程
  • 基于线程池的方式
  • 4 种线程池
  • 如何停止一个正在运行的线程
  • notify()和notifyAll()有什么区别?
  • sleep()和wait() 有什么区别?
  • volatile 是什么?可以保证有序性吗?


JVM

  • java中会存在内存泄漏吗,请简单描述。
  • 64 位 JVM 中,int 的长度是多数?
  • Serial 与 Parallel GC 之间的不同之处?
  • 32 位和 64 位的 JVM,int 类型变量的长度是多数?
  • Java 中 WeakReference 与 SoftReference 的区别?
  • JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用
  • 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?
  • 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?
  • JRE、JDK、JVM 及 JIT 之间有什么不同?
  • 解释 Java 堆空间及 GC?


Mysql

  • 数据库存储引擎
  • InnoDB(B+树)
  • TokuDB( Fractal Tree-节点带数据)
  • Memory
  • 数据库引擎有哪些
  • InnoDB与MyISAM的区别
  • 索引
  • 常见索引原则有
  • 数据库的三范式是什么
  • 第一范式(1st NF - 列都是不可再分)


Redis

  • 什么是 Redis?
  • Redis 与其他 key-value 存储有什么不同?
  • Redis 的数据类型?
  • 使用 Redis 有哪些好处?
  • Redis 相比 Memcached 有哪些优势?
  • Memcache 与 Redis 的区别都有哪些?
  • Redis 是单进程单线程的?
  • 一个字符串类型的智能存储最大容量是多少?
  • Redis持久化机制
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题


Memcached

  • Memcached 是什么,有什么作用?
  • memcached 服务在企业集群架构中有哪些应用场景?
  • Memcached 服务分布式集群如何实现?
  • Memcached 服务特点及工作原理是什么?
  • 简述 Memcached 内存管理机制原理?
  • memcached 是怎么工作的?
  • memcached 最大的优势是什么?
  • memcached 和 MySQL 的 query
  • memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
  • memcached 的 cache 机制是怎样的?
  • memcached 如何实现冗余机制?


MongoDB

  • mongodb是什么?

  • mongodb有哪些特点?

  • 你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用

  • NoSQL数据库?说一说NoSQL数据库的几个优点?

  • NoSQL数据库有哪些类型?

  • MySQL与MongoDB之间最基本的差别是什么?

  • 你怎么比较MongoDB、CouchDB及CouchBase?

  • MongoDB成为最好NoSQL数据库的原因是什么?

  • journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

  • 分析器在MongoDB中的作用是什么?

  • 名字空间(namespace)是什么?


Spring

  • 不同版本的 Spring Framework 有哪些主要功能?
  • 什么是 Spring Framework?
  • 列举 Spring Framework 的优点。
  • Spring Framework 有哪些不同的功能?
  • Spring Framework 中有多少个模块,它们分别是什么?
  • 什么是 Spring 配置文件?
  • Spring 应用程序有哪些不同组件?
  • 使用 Spring 有哪些方式?
  • 什么是 Spring IOC 容器?
  • 什么是依赖注入?


Spring Boot

  • 什么是 Spring Boot?
  • 为什么要用SpringBoot
  • Spring Boot 有哪些优点?
  • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
  • 运行Spring Boot有哪几种方式
  • 如何理解 Spring Boot 中的 Starters?
  • 如何在Spring Boot启动的时候运行一些特定的代码?
  • Spring Boot 需要独立的容器运行吗?
  • Spring Boot中的监视器是什么?
  • 如何使用Spring Boot实现异常处理?


Spring Cloud

  • 什么是 Spring Cloud?
  • 使用 Spring Cloud 有什么优势?
  • 服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 负载平衡的意义什么?
  • 什么是 Hystrix?它如何实现容错?
  • 什么是 Hystrix 断路器?我们需要它吗?
  • 什么是 Netflix Feign?它的优点是什么?
  • 什么是 Spring Cloud Bus?我们需要它吗?
  • 什么是微服务
  • 什么是服务熔断?什么是服务降级


RabbitMQ

  • 什么是 rabbitmq
  • 为什么要使用 rabbitmq
  • 使用 rabbitmq 的场景
  • 如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
  • 如何避免消息重复投递或重复消费?
  • 消息基于什么传输?
  • 消息如何分发?
  • 消息怎么路由?
  • 如何确保消息不丢失?
  • 使用 RabbitMQ 有什么好处?


Dubbo

  • 为什么要用 Dubbo?
  • Dubbo 的整体架构设计有哪些分层?
  • 默认使用的是什么通信框架,还有别的选择吗?
  • 服务调用是阻塞的吗?
  • 一般使用什么注册中心?还有别的选择吗?
  • 默认使用什么序列化框架,你知道的还有哪些?
  • 服务提供者能实现失效提出是什么原理?
  • 服务上线怎么不影响旧版本?
  • 如何解决服务调用链过长的问题?
  • 说说核心的配置有哪些?


MyBatis

  • 什么是 Mybatis?
  • Mybaits 的优点
  • MyBatis 框架的缺点
  • MyBatis 框架适用场合
  • MyBatis 与 Hibernate 有哪些不同?

{}和${}的区别是什么?

  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

  • 模糊查询 like 语句该怎么写?

  • 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什

  • 么?Dao 接口里的方法,参数不同时,方法能重载吗?

  • 如何获取自动生成的(主)键值?


ZooKeeper

  • 什么是Zookeeper?
  • Zookeeper 如何保证了分布式一致性特性?
  • ZooKeeper 提供了什么?
  • Zookeeper 文件系统
  • ZAB 协议?
  • 四种类型的数据节点 Znode
  • Zookeeper Watcher 机制 -- 数据变更通知
  • 客户端注册 Watcher 实现
  • 服务端处理 Watcher 实现
  • 客户端回调 Watcher


数据结构

  • 栈(stack)
  • 队列(queue)
  • 链表(Link)
  • 散列表(Hash Table)
  • 排序二叉树
  • 前缀树
  • 红黑树
  • B-TREE
  • 位图


Elasticsearch

  • elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
  • elasticsearch 的倒排索引是什么
  • elasticsearch 索引数据多了怎么办,如何调优,部署
  • elasticsearch 是如何实现 master 选举的
  • 详细描述一下 Elasticsearch 索引文档的过程
  • 详细描述一下 Elasticsearch 搜索的过程?
  • Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
  • lucence 内部结构是什么?
  • Elasticsearch 是如何实现 Master 选举的?
  • Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?


Kafka

  • Kafka 是什么
  • partition 的数据文件(offset, MessageSize, data)
  • 数据文件分段 segment(顺序读写、分段命令、二分查找)
  • 负载均衡(partition 会均衡分布到不同 broker 上)
  • 批量发送
  • 压缩(GZIP 或 Snappy)
  • 消费者设计
  • Consumer Group
  • 如何获取 topic 主题的列表
  • 生产者和消费者的命令行是什么?


微服务

微服务架构有哪些优势?
微服务有哪些特点?
设计微服务的最佳时间是什么?
微服务架构如何运作?
微服务架构的优缺点是什么?
单片,SOA 和微服务架构有什么区别?
在使用微服务架构时,您面临哪些挑战?
SOA 和微服务架构之间的主要区别是什么?
微服务有什么特点?


Linux

绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
怎么查看当前进程?怎么执行退出?怎么查看当前路径?
怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当
Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
查看文件有哪些命令
列举几个常用的Linux命令
你平时是怎么查看日志的?
建立软链接(快捷方式),以及硬链接的命令
目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
查看文件内容有哪些命令可以使用?


面试,难还是不难?最终结果好还是不好?取决于面试者的底蕴(气场+技能)、心态和认知以及沟通技巧。而一些主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴)更是需要你在面试时展现出自己的能力,从而获得面试官的欣赏和肯定。

而程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大家更好的应对面试官的问题以及面试中的突发情况。






=

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 夜莺2517阅读 127,709评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,876评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,520评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,583评论 2 9