ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java自学经验分享

2021-08-01 16:00:44  阅读:175  来源: 互联网

标签:github Java 推荐 基础知识 jvm 自学 分享 书籍


本人211非科班,大学学的物理,大三开始自学JAVA,并成功拿到了几个中大厂的offer。在这里分享一下自己整理的Java学习路线,供初学者参考。

先上一下Java学习路线图:

Java学习路线

内容还是挺多的,这些技术都学完之后,基本找工作不成问题了,基础好点的同学拿个16k以上的offer也是有可能的!

Java

刚开始入门看的马士兵老师的JAVA基础视频,后面发现看视频效率较低,于是抛弃看视频学习的方式,转向看书(每个人学习方式不一样,个人觉得看视频学习,不好做笔记,而且经常看了就忘,所以后期自学基本以看书为主)。

推荐书籍:

  • 《head first java》
  • 《JAVA核心技术卷》

head first系列的书籍讲解比较有趣,比较好理解。《JAVA核心技术卷》难度相对适中,内容也比较全面,部分章节(如Swing)可以跳过。

推荐博客:

主要以看书为主,博客为辅。只看博客的话,不够全面。

给初学者的建议就是:多敲代码!多敲代码!多敲代码!

学习编程就是看书加实践,要多动手,不然看过的知识点很快就会忘,而且多实践也会遇到很多坑,丰富经验。 可以到github上找一些项目练练手,通过做项目巩固知识,而且每实现一个功能之后,会有满满的成就感,也会激励你不断去学习。

Java基础知识主要有:

  • 类与对象
  • 面向对象特性
  • 抽象类和接口
  • 数据类型、重写重载、封装继承多态
  • 容器类Map/List/Set等
  • IO操作:InputStream , OutputStream, Reader/Writer, 文件读取,各种流读取等
  • 异常处理
  • 反射机制
  • 泛型

基础知识的总结可以参考我的另一篇文章:

2021最新Java知识总结

数据库

数据库也是必学的一块内容,主要是Mysql数据库。书籍推荐:

  • 《mysql必知必会》
  • 《高性能mysql》

《mysql必知必会》主要是Mysql的基础语法,很好理解。后面有了基础再看《高性能mysql》,这本书主要讲解索引、SQL优化、高级特性等,很多Mysql相关面试题出自《高性能Mysql》这本书,值得一看。

Mysql基础知识:

  • 增删改查
  • 事务特性、隔离级别
  • 索引原理、优化
  • b+树
  • 最左匹配原则
  • 存储引擎
  • MVCC
  • 执行计划
  • 分库分表
  • 日志,bin log/undo log/redo log
  • ...

框架

主流框架主要有:

  • spring:面向切面、依赖注入,推荐书籍《Spring实战》,通过demo的方式带你一步步搭建Spring应用
  • springboot:习惯优于配置、自动配置。目前很多公司内部都是使用Spring Boot。书籍推荐《Spring Boot实战》
  • springmvc:基于MVC架构模式的轻量级Web框架
  • Mybatis:orm框架,推荐书籍《深入浅出Mybatis》
  • springcloud:现在面试基本都会问到微服务相关的内容,最好了解下微服务相关的知识。服务注册与发现、负载均衡、服务降级、API网关等。推荐书籍《spring cloud微服务实战》

中间件

  • redis:缓存热点数据、分布式锁。推荐书籍《redis实战》和《redis设计与实现》
  • rabbitMQ:异步解耦,流量削峰。我是通过博客学习的,没有推荐的书籍
  • kafaka:一种分布式的,基于发布/订阅的消息系统

JVM

jvm也是面试经常会问的内容。Java开发者不用自己进行内存管理、垃圾回收,jvm帮我们做了,但是还是有必要了解下jvm的工作原理,这样在出现oom等问题的时候,才有思路去排查和解决问题。书籍推荐周老师的《深入理解Java虚拟机》。

jvm的基础知识:

  • jvm内存结构(程序计数器、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存)
  • 类加载过程
  • 双亲委派
  • 垃圾回收算法
  • 垃圾回收器
  • 调优工具(jsp/jstack/jstat/jmap,了解即可)

并发

并发编程的相关内容可以看看《JAVA并发编程实战》这本书,主要内容有:

  • 线程池原理
  • 线程间通信方式
  • 锁(synchronized、ReentrantLock)
  • 并发工具类(CountDownLatch/CyclicBarrier/Semaphore)
  • 原子类
  • AQS

计算机基础知识

平时抽空学习计算机基础知识,巩固基础。

数据结构和算法

推荐书籍《数据结构与算法分析 java语言描述》,用Java语言描述各种数据结构和算法,对于Java开发者来说,更容易理解,主要学习以下内容:

  • 基本数据结构(数组、链表、栈、队列等)
  • 树(二叉树、avl树、b树、红黑树等)
  • 堆结构
  • 排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等及时间空间复杂度)
  • 动态规划、回溯、贪心算法(多刷刷leetcode)

计算机网络

推荐《计算机网络自顶向下方法》:

  • 网络分层结构
  • TCP/IP
  • 三次握手四次挥手
  • 滑动窗口、拥塞控制
  • HTTP/HTTPS
  • 网络安全问题(CSRF、XSS、SQL注入等)

操作系统

学起来比较头大,可以到b站找找视频看,推荐清华大学的公开课。书籍推荐《深入理解计算机系统》,大部头,经典书籍,值得多读几遍。

linux

推荐书籍《鸟哥的linux私房菜》。

上面提到的书籍,我已经整理了电子版,放到github和gitee上了,在这里分享有需要的人,希望可以帮助到曾经像我一样的新手,节省找资料的时间(花了一个多月的时间整理的,希望对大家有帮助,欢迎star)。

仓库持续更新中~

电子书籍

小伙伴们有需要的自取:

github仓库:https://github.com/Tyson0314/java-books

如果github访问不了,可以访问gitee仓库。

gitee仓库:https://gitee.com/tysondai/java-books

码字不易,小伙伴们觉得有帮助的话,点个赞呗 你的赞就是我创作的动力!

标签:github,Java,推荐,基础知识,jvm,自学,分享,书籍
来源: https://www.cnblogs.com/tyson03/p/15086844.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有