为未来找java 工作的小伙伴送上一点干货

https://github.com/TransientWang/KnowledgeBase

我是今年毕业的应届生,这个仓库里面的东西是我总结的知识库。

里面的内容:

  1. java 源码分析

    几乎覆盖了所有常用的类,集合、多线程、并发包等。对源码尽我所能的进行了分析。

    也对线程池,AQS的基础CLH 锁,提供了简易的实现,帮助理解。

  1. jvm

    将深入理解 jvm 的内容与oracle 官网的内容进行了总结,将其分为了几部分。便于查看。

  2. Spring

    对spring core、mvc 等模块的源码进行分析。

    例如 spring 的启动运行过程、AutoWired 的原理,MVC 模块的原理。xml 的解析还夹杂着spring 基础设施的分析。

    如果你只是从网上了解过一些博客,没有自己看过源码。建议你下定决心自己debug 源码,并且将我的分析作为参照。收获肯定非常巨大。

  3. 计算机网络、操作系统

    对比较常考的概念进行总结,比如握手挥手拥塞控制、HTTPS、状态码等等。

    操作系统涉及的概念总结较少。进程线程区别等等

  1. 数据库

对数据库的常用概念进行了总结,内容来自《高性能MYQL》、MYSQL 官网、还有网上的博文。

  1. Redis

只总结了一些简单的概念 持久化、过期、等概念,但没有对例如各数据结构的底层实现进行总结。(

想要了解推荐一本书《Redis 设计与实现》)

其他还有零散的例如红黑树的简介。

由于懒没有写目录,如果你使用 Chrome 插件 Octotree ,那就不是问题。

非常欢迎本仓库的内容进行补充。

PS:对即将面临找工作或者对技术感兴趣的同学有几点建议。
  1. 对于学生来说,像操作系统、计算机网络这种可能其实很重要,可以证明你的基础。还有你的学习能力。

  2. 个人认为了解设计模式也很重要,它可以让你更容易理解像Spring 、mybatis 等框架的源码。但是最好的学习方式就是通过阅读源码理解设计模式。

    例如:Java 里面的线程池其实就是***模式 + 阻塞队列,如果你理解这两样。完全可以自己写出一个简易的线程池。那几个参数的意义与拒绝策略什么的也轻而易举的就可以理解。又或者是Spring 中最为常见的策略模式、模板模式等。Mybatis 里面的组合模式等等。

  3. 去官方网站进行了解是学习技术的好习惯。

  4. 还有,如果你想给面试官留下深刻的印象,最好的方式就是通过实践增加自己的经验,而不是从网上博客中获取一些浅薄的知识。就像数据库你只知道四个隔离界别而不能写出一条像样的SQL、Redis 只知道几个数据类型但是没实践过的话,那还有什么意义呢?而且在面试中只要面试官稍微往深一问就完全暴露了。

  5. 最后,不要认为学了 Java 这辈子只能作为一名Java 程序员了,语言并不重要。你可以学习一两门其他的语言,比如python 、go。不用非要深入学习各种原理,你一定会有一个全新的认知。

#面经##春招##秋招##实习##Java##笔记#
全部评论
感谢楼主
点赞 回复 分享
发布于 2019-05-15 23:03
感谢楼主
点赞 回复 分享
发布于 2019-05-16 09:33
谢谢分享
点赞 回复 分享
发布于 2019-05-16 11:07
更大的目的是希望大家都乐于分享自己的智慧,完善这个仓库。欢迎提request。
点赞 回复 分享
发布于 2019-05-16 16:07

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
28
213
分享
牛客网
牛客企业服务