Skip to content

Janche/JavaDeveloperBrain

 
 

Repository files navigation

JavaDeveloperBrain

GitHub forks GitHub stars Java进阶

Java工程师必备:包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE、RabbitMQ、RocketMQ、Pulsar、Kafka、Zookeeper、Linux、设计模式、智力题、项目架构、分布式相关、算法、面试题


Features

  • 将目录里的xMind文件转为md文件 👨‍💻
  • 将一些难以文字描述的东东画图
  • 添加新知识点
  • 添加新模块:收集面试题和解答他们

内容概览

Java-基础部分
  • 基本类型
  • 包装类型
  • 关键字
  • object
  • string
  • 数组
  • 继承
  • 反射
  • 异常
  • 泛型
  • 容器
  • Java-IO
  • Java长期支持版本新特性
Java-JVM
  • 运行时数据区
  • 垃圾回收
  • 内存分配与回收
  • 类加载机制
  • jvm调优
Java-多线程
  • 线程
  • volatile
  • 锁机制
  • 线程池
  • CAS
  • AQS
  • ThreadLocal
计算机网络
数据库
  • MySQL
  • MongoDB
  • HBASE
  • Elasticsearch
消息队列
  • 为什么使用消息队列
  • 常见的消息队列
    • Redis
    • RabbitMQ
    • RocketMQ
    • Kafka
    • Zookeeper
    • pulsar
  • 常见面试题
Redis
  • 特点
  • Redis为什么这么快
  • 常见使用场景
  • 数据类型
  • 内存回收策略
  • 持久化方式
  • Redis中的事务
  • 常问故障场景
  • 集群
Spring
  • Spring
  • SpringMVC
  • SpringBoot
Springcloud
  • SpringCloud
    • eureka
    • ribbon
    • feign
    • hystrix
    • zuul
    • SpringCloudConfig
  • SpringCloudAlibaba
Linux
  • 文件和目录的操作
  • 查看文件
  • 管理用户
  • 进程管理
  • 打包和压缩文件
  • grep+正则表达式
  • Vi编辑器
  • 权限管理
  • 网络管理
  • cpu 100%怎么排查
Mybatis
  • 什么是mybatis
  • JDBC执行六步走
  • mybatis执行8步
  • MyBatis整体架构
  • mybatis缓存
Netty
  • I0模型
  • 重要的组件
  • netty的使用示例
  • TCP粘包/拆包问题
  • 解编码技术
  • 高性能的原因
分布式相关
  • 分布式锁
  • 分布式事务
  • CAP理论
  • BASE
  • 一致性算法
容器技术
  • docker
数据结构和算法
  • 排序
  • 树相关
  • BFS
  • DFS
  • 回溯算法
  • 二分法
  • 贪心算法
  • 动态规划
  • 分治思想
设计模式
  • 简单工厂模式
  • 工厂模式
  • 抽象工厂模式
  • 单例模式
  • 建造者模式
  • 原型模式
  • 适配器模式
  • 装饰器模式
  • 代理模式
  • 外观模式
  • 桥接模式
  • 组合模式
  • 享元模式
  • 策略模式
  • 模板方法模式
  • 观察者模式
  • 迭代子模式
  • 责任链模式
  • 备忘录模式
  • 状态模式
  • 访问者模式
  • 中介者模式
  • 解释器模式
职业规划和学习习惯
  • 项目中遇到的问题
  • 职业规划
  • 平时规则
场景设计
  • 有A、B两个大文件,每个文件几十G,而内存只有4G,其中A文件存放学号+姓名,而B文件存放学号+分数,要求生成文件C,存放姓名和分数。怎么实现?
  • 秒杀系统怎么设计
  • 唯一ID设计
  • 产品上线出问题怎么定位错误
  • 大量并发查询用户商品信息,MySQL压力大查询慢,保证速度怎么优化方案
  • 海量日志数据,提取出某日访问百度次数最多的那个IP。给定a、b两个文件,各存放50亿个url,每个url各 占64字节,内存限制是4G,让你找出a、b文件共同的url?
  • 一般内存不足而需要分析的数据又很大的问题都可以使用分治的思想,将数据hash(x)%1000分为小文件再分别加载小文件到内存中处理即可
智力题
  • 100只试管里有-只是有毒的,现在有10个小白鼠,如何最快速地判断出那只试管有毒
  • 共1000瓶药水,其中I瓶有毒药。已知小白鼠喝毒药一天内死若想在一天内找到毒药,最少需要几只小白鼠?
  • 只有两个无刻度的水桶,-个可以装6L水,-一个可以装5L水,如何在桶里装入3L的水
  • 25匹马,5个赛道, 每次只能同时有5匹马跑,最少比赛几次选出前三名?家里有两个孩子,一个是女孩,另一个也是女孩的概率是多少?
  • 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
  • 共12个一样的小球,其中只有一个重量与其它不一一样(未知轻重),给你一个天平,找出那个不同重量的球?
  • 有10瓶药,每瓶有10粒药,其中有一瓶是变质的。好药每颗重1克,变质的药每颗比好药重0.1克。问怎样用天秤称一次找出变质的那瓶药?
  • 你有两个罐子,50个红色弹球,50个蓝色弹球,如何将这100个球放入到两个罐子,随机选出一个罐子取出的球为红球的概率最大?
  • 抢30是双人游戏,游戏规则是:第一个人喊"1"或"2",第二个人要接着往下喊一个或两个数,然后再轮到第一个人。 两人轮流进行下去。最后喊30的人获胜。问喊数字的最佳策略。
  • 某人进行10次打靶,每次打靶可能的得分为0到10分,10次打靶共得90分的可能性有多少种
项目架构

免责声明

某些知识点、观点、图片是从各种优秀博主、作者、大佬们的文章里或文献里提取的,我只是搬运工,如果觉得有侵犯到您的权益,请联系我,我将根据您的要求修改(添加您的出处链接、删除、修改....),谢谢大佬!

彩蛋

[md code]

About

Java工程师必备

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors