@[toc]
java根底怎么学?
过后,作为糊涂的小白,大一学习了c
和c++
,还有数据结构,起初才自学的java
。有了c++
的根底,其实学java
的确感觉挺容易上手。如果没有c
或者c++
的根底,倡议开始须要先把java
的根底打好,根底是指什么?根底的语法,能用!至于源码,不倡议在刚刚开始学就看源码,相对劝退!!!
举荐几本能够入门的书籍:
Head First Java
- 简略易懂,能够教你如何像一个对象开发者一样去思考,图文并茂学习形式能让你疾速地在脑海中掌握住常识
疯狂Java讲义
- 很全面,很厚,笼罩了Java的根本语法结构、Java的面向对象特色、Java汇合框架体系、Java泛型、异样解决、Java GUI编程、JDBC数据库编程、Java正文、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。
Java核心技术·卷 I(原书第10版)
- 特地经典的书籍,内容比拟切实,然而没有疯狂Java讲义那么接地气,很简洁,上手难度也不是很大。
进阶书籍:
Java 编程思维第四版
- 圣经段位,相对的好书,然而不适宜刚刚入门的小白,如果你感觉想啃下来,也能够阐释,外面讲得货色,很具体,时常走漏出:Java语言为什么这样设计,如果想进阶,这相对是本好书。
Java网络编程(中文版 第三版)(O'Reilly Java系列)
- 这本书是我大学时一门选修课的课本,次要是解说Java外面的网络应用,能够考虑看看,然而优先级不是很高。
看视频还是看书?
后期老手相对会有的一个纳闷,看书还是看视频?看书感觉很干燥,保持不上来,看视频感觉很爽,然而看完如同不是很能记住。
集体感觉,后期看书会快点,然而的确很干燥,能够在b站(小破站牛逼)上找一些选集的视频来看,记得,边看边敲,根本记不住!!!倡议,看完一节或者一章,凭借记忆把代码敲进去,一开始必定很慢,然而长期来看,帮忙很大,根本能够记住并把握。
如果视频的话,举荐以下两个:
Java零基础教程
- 宋红康老师的视频,七百多集了,真的能够看很久,内容真的很全,讲的也很粗疏,不会很干燥,老师挺乏味的,无利益相干,我在b站看过老师的Jvm视频。
Java零基础教程视频(适宜Java 0根底,Java初学入门)
- 也是七八百集,挺具体
总结:视频不在于多,书籍也是,越想要全面,越不太可能,后期有一本书,一个视频就能够了,抓大放小,要不,很容易就放弃,真的是从入门到放弃。
多打,多练习,游刃有余!代码量下来能力产生量变!
在这个过程中,次要学习的货色(每一个都能够分得很细,上面只是大略,想到再补充):
- 根本数据类型
- 罕用关键字
- 接口
- 抽象类
- 汇合
- 继承(子类和父类)
- 反射
- 序列化
- 动静代理
- 注解
- 锁与多线程
- IO编程
- JDBC
- Java网路编程
学完根底学什么?
我过后学完Java的根底之后,JDBC学了,晓得怎么连贯数据库了,就想着搞网站,我想大部分人也是,学了货色,就想做个货色进去!!这个很失常的心态,一直地有反馈能力一直往前~
我过后搞作业搞了一段时间的前端以及jsp之类的,如果学习Java,能够把前端常识放在一个低一点优先级的级别,后期根本了解和会用就能够,不要遗记本人真正的指标。
我的前端是在w3School学习的,你们也能够去学习,过后还在慕课网学习了视频,不过这些都不重要,次要是会点html和css,js就能够。
学完前端的大抵常识,能够思考学Servlet和jsp,也有一部分人说其实不须要再学习这个货色,当初间接上框架,就能够。我想说的是,如果你的工夫很紧急,的确能够这么做。如果你的工夫比拟富余,在大学,能够考虑一下把这一块也学一下,因为当前你不会再回来学了,而所谓的框架,也是建设在这下面的。
有时候,走慢一点,是为了走得更远。
举荐JavaWeb的书籍两本:
深入分析Java Web技术底细(修订版)
- 这本书次要围绕Java Web 相干技术从三方面全面、深刻地进行了论述。首先介绍前端常识,即在JavaWeb 开发中波及的一些基本知识,包含Web 申请过程、HTTP、DNS 技术和CDN 技术。其次深刻介绍了Java 技术,包含I/O 技术、中文编码问题、Javac 编译原理、class 文件构造解析、ClassLoader 工作机制及JVM 的内存治理等。
Tomcat与Java Web开发技术详解
- 这本书次要是解说了JavaWeb和tomcat相干的知识点,算是为了之后学习JavaWeb做筹备。
再举荐一个博客地址,次要是JavaWeb的笔记,讲得挺好的:JavaWeb
学完这些能够学习框架了,框架外面用得最多的是反射,动静代理!!!肯定要相熟。
过后我学习的框架不是支流的,是Jfinal
,可能大家不怎么听过,那个框架比较简单,然而当初不倡议大家去学习,能够理解。
接下来大家须要学习的是SSM(Spring+SpringMVC+Mybatis),为啥学习Spring,不是SpringBoot,因为SpringBoot是建设在Spring的根底上的,学了Spring,SpringBoot很快上手。
倡议学习的话,能够先学Mybatis,后面有JDBC的根底,能够很快上手。举荐本人的博客:Mybatis学习笔记
如果学习视频的话,我倡议去b站搜寻一下,例如:SSM框架合集
对于SSM的学习视频很多,大家各自判断本人适宜什么类型,有一本书籍:Java EE互联网轻量级框架整合开发 : SSM框架(Spring MVC+Spring+MyBatis)和Redis实现,是对SSM的整合以及解说,还不错,能够考虑一下。
在这个过程中,你也理解了如何解决日志,异样等等。
Spring的学习中,次要把握AOP和IOC的原理以及利用,学习的过程,首先是须要会用,而后再去挖源码,要是间接上来看源码,又是一次劝退。
学习完Spring之后,能够上手SpringBoot,这个网上也有很多教程,举荐这个网站:
how2j
本人上b站依照播放量查找也是能够的,重要的是口头,不是资源!!!
Spring有两本本比拟好的书籍举荐:
- Spring实战(第4版):实战的常识
- Spring源码深度解析:次要是深挖源码,其实也能够b站上找一些优质的课程
后面解说的有数据库以及redis相干的,如果关系型数据库,倡议在网上搜寻教程学习即可,譬如:菜鸟教程
对于入门书籍:Mysql必知必会
如果是深刻书籍,举荐:MySQL技术底细 : InnoDB存储引擎(第2版)
redis的学习,根本的数据类型,操作,这些学习间接网上菜鸟教程也有:redis教程
如果须要学习如何应用?举荐这本书:Redis 深度历险:外围原理与利用实际
理解了应用之后,再去做redis的源码剖析?牛人能够间接下载redis的源码,第一版只有几万行代码,当然,须要c语言或者c++根底。书籍:Redis5设计与源码剖析
几个罕用框架学完学什么?
其实这个时候,你曾经能够进去开发的阶段了,前面的路须要本人摸索了。
MQ
也就是音讯队列,挑一个比拟罕用的大型的进行学习就能够了,不要贪图多,比方Kafka或者RabbitMQ,零碎做异步解耦合的时候常常遇到。
先学会如何应用,而后学习外面的原理,架构。
JVM的常识跑不掉
JVM怎么学?
必定的举荐周志明老师的 深刻了解Java虚拟机,这本书举荐多看几遍。
除此之外,b站宋红康老师的视频也强烈推荐:JVM全套教程
搞定这两个之后,再找一些JDK11的新特定的书籍,来看看,根本问题不大了。
微服务等等
后面学习的,必定是单体的利用,也就是一台服务器,一个利用。当用户量达到肯定数量,须要做利用拆分,得学习的常识有:分库分表,RPC框架,微服务,注册核心,监控等等。
一开始举荐看两本书,理解分布式的一些常识,晓得架构大抵的演变过程,为什么要这样做,以前怎么样,怎么样变动的。
- 大型网站技术架构 : 外围原理与案例剖析
- 大型网站零碎与Java中间件开发实际
后面两本书看着挺爽的,拓展知识面,然而不回特地深刻,算是一个概述以及全面理解。要想两本书吃透,不可能的!!!一口怎么吃成一个瘦子呢?是吧。
而后再看看大型分布式的架构相干常识:
大型分布式网站架构设计与实际 : 一线工作经验总结,囊括大型分布式网站所需技术的全貌、架构设计的核
而后就是挨个知识点各个击破(上面常识局部相干的例子):
- RCP原理
- Netty
- DUBBO
- Zookeeper
其余
数据结构和算法
如果你是科班的,数据结构和算法根本把握,那上面这一部分仅供参考:
算法(第四版)
- 俗称红书,最举荐的Java程序员学习的算法书籍,入门很敌对,视频貌似b站也能够找到。
数据结构与算法剖析
- 国外数据结构与算法剖析方面的经典教材,应用卓越的Java编程语言作为实现工具探讨了数据结构(组织大量数据的办法)和算法剖析(对算法运行工夫的预计)。本书把算法剖析与有效率的Java程序的开发有机地联合起来,深入分析每种算法,内容全面、周密严格,并粗疏解说精心构造程序的办法。
Java罕用算法手册(第3版)
- 比较简单的算法数据,挺有意思,难度不大,挺薄。
算法导论
- 相对劝退书籍,审慎!很多数学公式推导,以及伪代码,倡议作为程序员路线上相伴的书籍????????????(反正我是没有看完,太变态了)
如果刷题的话,举荐先刷剑指Offer,而后LeetCode每日/每周(工夫本人定)一题,举荐一下本人的刷题笔记仓库:codeSolution
【作者简介】:
秦怀,公众号【秦怀杂货店】作者,自己就任于国内某出名在线游览公司,技术之路不在一时,山高水长,纵使迟缓,驰而不息。集体写作方向:Java源码解析,JDBC,Mybatis,Spring,redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜爱题目党,不喜爱花里胡哨,大多写系列文章,不能保障我写的都完全正确,然而我保障所写的均通过实际或者查找材料。脱漏或者谬误之处,还望斧正。
素日工夫贵重,只能应用早晨以及周末工夫学习写作,关注我,咱们一起成长吧~
2020年我写了什么?
开源编程笔记