1 Star 0 Fork 4K

203x / JavaGuide

forked from 思维跳跃科技 / JavaGuide 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

准备面试的小伙伴可以考虑面试专版:《Java面试进阶指南》 ,欢迎加入我的星球获取更多实用干货。

如果 Github 访问速度比较慢或者图片无法刷新出来的话,可以转移到码云查看,或者在线阅读如果你要提交 issue 或者 pr 的话请到 Github 提交。

《JavaGuide面试突击版》PDF版本+3本PDF Java 学习手册,在公众号 JavaGuide 后台回复“面试突击”即可获取。

如要进群或者请教问题,请联系我 (备注来自Github。请直入问题,工作时间不回复)。

JavaGuide 的 Star数量虽然比较多,但是它的价值和含金量一定是不能和 Dubbo、Nacos这些优秀的国产开源项目比的。希望国内可以出更多优秀的开源项目!

另外,希望大家对面试不要抱有侥幸的心理,打铁还需自身硬! 我希望这个文档是为你学习 Java 指明方向,而不是用来应付面试用的。加油!奥利给!

开始阅读之前必看完结撒花!JavaGuide面试突击版来啦!

阅读 公众号 公众号 投稿 投稿

Sponsor

目录

Java

基础

基础知识系统总结:

  1. Java 基础知识
  2. Java 基础知识疑难点/易错点
  3. 【选看】J2EE 基础知识

重要知识点详解:

  1. 枚举 (很重要的一个数据结构,用好枚举真的没有那么简单!)
  2. Java 常见关键字总结:final、static、this、super!
  3. 什么是反射机制?反射机制的应用场景有哪些?
  4. 代理模式详解:静态代理+JDK/CGLIB 动态代理实战(动态代理和静态代理的区别?JDK动态代理 和 CGLIB 动态代理的区别?)

其他:

  1. JAD反编译
  2. 手把手教你定位常见Java性能问题

容器

  1. Java容器常见面试题/知识点总结
  2. 源码分析:ArrayList 源码LinkedList 源码HashMap(JDK1.8)源码ConcurrentHashMap源码

并发

多线程学习指南

面试题总结:

  1. Java 并发基础常见面试题总结
  2. Java 并发进阶常见面试题总结

面试常问知识点:

  1. 并发容器总结
  2. 线程池Java线程池学习总结拿来即用的线程池最佳实践
  3. 乐观锁与悲观锁
  4. 万字图文深度解析 ThreadLocal
  5. JUC 中的 Atomic 原子类总结
  6. AQS 原理以及 AQS 同步组件总结

JVM

  1. Java内存区域
  2. JVM垃圾回收
  3. JDK 监控和故障处理工具
  4. 类文件结构
  5. 类加载过程
  6. 类加载器
  7. 【待完成】最重要的 JVM 参数指南(翻译完善了一半)
  8. JVM 配置常用参数和常用 GC 调优策略
  9. 【加餐】大白话带你认识JVM

其他

  1. Linux IOLinux IO
  2. I/OBIO,NIO,AIO 总结
  3. Java 8Java 8 新特性总结Java 8 学习资源推荐Java8 forEach 指南
  4. Java9~Java14 : 一文带你看遍JDK9~14的重要新特性!
  5. Java编程规范:Java 编程规范以及优雅 Java 代码实践总结告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
  6. 设计模式 :设计模式系列文章

网络

  1. 计算机网络常见面试题
  2. 计算机网络基础知识总结

操作系统

最硬核的操作系统常见问题总结!

Linux

数据结构与算法

数据结构

算法

数据库

MySQL

总结:

  1. 【推荐】MySQL/数据库 知识点总结
  2. 阿里巴巴开发手册数据库部分的一些最佳实践
  3. 一千行MySQL学习笔记
  4. MySQL高性能优化规范建议

重要知识点:

  1. 数据库索引总结1数据库索引总结2
  2. 事务隔离级别(图文详解)
  3. 一条SQL语句在MySQL中如何执行的
  4. 关于数据库中如何存储时间的一点思考

Redis

系统设计

必知

  1. RestFul API 简明教程
  2. 因为命名被diss无数次。Guide简单聊聊编程最头疼的事情之一:命名

常用框架

Spring/SpringBoot

  1. Spring 常见问题总结
  2. SpringBoot 指南/常见面试题总结
  3. Spring/Spring常用注解总结!安排!
  4. Spring事务总结
  5. Spring IoC 和 AOP详解
  6. Spring中 Bean 的作用域与生命周期
  7. SpringMVC 工作原理详解
  8. Spring中都用到了那些设计模式?

MyBatis

Netty

  1. 剖析面试最常见问题之 Netty(上)
  2. 剖析面试最常见问题之 Netty(下)

认证授权

认证授权基础:搞清Authentication,Authorization以及Cookie、Session、Token、OAuth 2、SSO

JWT

SSO(单点登录)

SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:SSO 单点登录看这篇就够了!

分布式

分布式相关概念入门

分布式搜索引擎

提高搜索效率。常见于电商购物网站的商品搜索于分类。

比较常用的是 Elasticsearch 和 Solr。

代办。

RPC

让调用远程服务调用像调用本地方法那样简单。

消息队列

消息队列在分布式系统中主要是为了解耦和削峰。相关阅读: 消息队列总结

RabbitMQ:

  1. RabbitMQ 入门

RocketMQ:

  1. RocketMQ 入门
  2. RocketMQ的几个简单问题与答案

Kafka:

  1. Kafka 入门+SpringBoot整合Kafka系列
  2. Kafka 常见面试题总结
  3. 【加餐】Kafka入门看这一篇就够了

API 网关

网关主要用于请求转发、安全认证、协议转换、容灾。

  1. 为什么要网关?你知道有哪些常见的网关系统?
  2. 如何设计一个亿级网关(API Gateway)?

分布式id

  1. 为什么要分布式 id ?分布式 id 生成方案有哪些?

分布式限流

  1. 限流算法有哪些?

分布式接口幂等性

ZooKeeper

前两篇文章可能有内容重合部分,推荐都看一遍。

  1. 【入门】ZooKeeper 相关概念总结 01
  2. 【进阶】ZooKeeper 相关概念总结 02
  3. 【实战】ZooKeeper 实战

其他

  • 接口幂等性(代办):分布式系统必须要考虑接口的幂等性。

数据库扩展

读写分离、分库分表。

代办.....

大型网站架构

性能测试

高并发

待办......

高可用

高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的 。相关阅读: 如何设计一个高可用系统?要考虑哪些地方?

微服务

Spring Cloud

必会工具

Git

Docker

  1. Docker 基本概念解读
  2. 一文搞懂 Docker 镜像的常用操作!

其他

面试指南

这部分很多内容比如大厂面经、真实面经分析被移除,详见完结撒花!JavaGuide面试突击版来啦!

  1. 【备战面试1】程序员的简历就该这样写
  2. 【备战面试2】初出茅庐的程序员该如何准备面试?
  3. 【备战面试3】7个大部分程序员在面试前很关心的问题
  4. 【备战面试4】Github上开源的Java面试/学习相关的仓库推荐
  5. 【备战面试5】如果面试官问你“你有什么问题问我吗?”时,你该如何回答
  6. 【备战面试6】应届生面试最爱问的几道 Java 基础问题
  7. 【备战面试6】美团面试常见问题总结(附详解答案)

Java学习常见问题汇总

  1. Java学习路线和方法推荐
  2. Java培训四个月能学会吗?
  3. 新手学习Java,有哪些Java相关的博客,专栏,和技术学习网站推荐?
  4. Java 还是大数据,你需要了解这些东西!

资源

Java程序员必备书单

  1. 「基础篇」Guide的Java后端书架来啦!都是Java程序员必看的书籍?

实战项目推荐

Github


待办

  • Netty 总结
  • 数据结构总结重构(---正在进行中---)

说明

开源项目在于大家的参与,这才使得它的价值得到提升。感谢🙏有你!

JavaGuide介绍

开源 JavaGuide 初始想法源于自己的个人那一段比较迷茫的学习经历。主要目的是为了通过这个开源平台来帮助一些在学习 Java 或者面试过程中遇到问题的小伙伴。

  • 对于 Java 初学者来说: 本文档倾向于给你提供一个比较详细的学习路径,让你对于Java整体的知识体系有一个初步认识。另外,本文的一些文章 也是你学习和复习 Java 知识不错的实践;
  • 对于非 Java 初学者来说: 本文档更适合回顾知识,准备面试,搞清面试应该把重心放在那些问题上。要搞清楚这个道理:提前知道那些面试常见,不是为了背下来应付面试,而是为了让你可以更有针对的学习重点。

Markdown 格式参考:Github Markdown格式,表情素材来自:EMOJI CHEAT SHEET

利用 docsify 生成文档部署在 Github pages: docsify 官网介绍 ,另见《Guide哥手把手教你搭建一个文档类型的网站!免费且高速!》

Logo下的小图标是使用Shields.IO 生成的。

关于转载

如果你需要转载本仓库的一些文章到自己的博客的话,记得注明原文地址就可以了。

如何对该开源文档进行贡献

  1. 笔记内容大多是手敲,所以难免会有笔误,你可以帮我找错别字。
  2. 很多知识点我可能没有涉及到,所以你可以对其他知识点进行补充。
  3. 现有的知识点难免存在不完善或者错误,所以你可以对已有知识点进行修改/补充。

如果要提 issue/question 的话,强烈推荐阅读 《提问的智慧》《如何向开源社区提问题》《如何有效地报告 Bug》《如何向开源项目提交无法解答的问题》

联系我

个人微信

Contributor

下面是笔主收集的一些对本仓库提过有价值的pr或者issue的朋友,人数较多,如果你也对本仓库提过不错的pr或者issue的话,你可以加我的微信与我联系。下面的排名不分先后!

"

公众号

如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。

《Java面试突击》: 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本公众号后台回复 "Java面试突击" 即可免费领取!

Java工程师必备学习资源: 一些Java工程师常用学习资源公众号后台回复关键字 “1” 即可免费无套路获取。

我的公众号

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/wwy_005/JavaGuide.git
git@gitee.com:wwy_005/JavaGuide.git
wwy_005
JavaGuide
JavaGuide
master

搜索帮助

14c37bed 8189591 565d56ea 8189591