Java学习之路 -- Java怎么学?
@
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框架,微服务,注册中心,监控等等。
一开始推荐看两本书,了解分布式的一些知识,知道架构大致的演变过程,为什么要这样做,以前怎么样,怎么样变化的。
前面两本书看着挺爽的,拓展知识面,但是不回特别深入,算是一个概述以及全面了解。要想两本书吃透,不可能的!!!一口怎么吃成一个胖子呢?是吧。
然后再看看大型分布式的架构相关知识:
大型分布式网站架构设计与实践 : 一线工作经验总结,囊括大型分布式网站所需技术的全貌、架构设计的核
然后就是挨个知识点各个击破(下面知识部分相关的例子):
- RCP原理
- Netty
- DUBBO
- Zookeeper
其他
数据结构和算法
如果你是科班的,数据结构和算法基本掌握,那下面这一部分仅供参考:
- 算法(第四版)
- 俗称红书,最推荐的Java程序员学习的算法书籍,入门很友好,视频貌似b站也可以找到。
- 数据结构与算法分析
- 国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。本书把算法分析与有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。
- Java常用算法手册(第3版)
- 比较简单的算法数据,挺有意思,难度不大,挺薄。
- 算法导论
- 绝对劝退书籍,谨慎!很多数学公式推导,以及伪代码,建议作为程序员道路上相伴的书籍
Java学习之路 -- Java怎么学?的更多相关文章
- 我的java学习之路--Java注解专题
学习网址:http://www.imooc.com/video/8861 1.引言 2.Java中的常见注解 JDK自带注解:<br>@Override @Deprecated @Supp ...
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- Java学习之路(转)
Java学习之路(书籍推荐) 一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...
- Java 学习之路 -- day00
Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- Java学习之路:不走弯路,就是捷径
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...
随机推荐
- flex 布局占位符
flex 布局占位符 空 span bug .popover-custom-class .system-guide-container .buttons-box { display: flex; fl ...
- how to read the 10th line of a text using shell script
how to read the 10th line of a text using shell script shell script / bash script question https://l ...
- illustrating javascript prototype & prototype chain
illustrating javascript prototype & prototype chain 图解 js 原型和原型链 proto & prototype func; // ...
- css3 units & 1 turn
css3 units & 1 turn One full circle is 1turn, 180deg === 0.5turn degrees, gradians, radians, tur ...
- Flutter & QRCode App
Flutter & QRCode App https://github.com/xgqfrms/qrcode-reader-app how to open android emulator o ...
- 倒计时2天!2021 NGK新加坡区块链峰会与你不见不散!
1月31日14时,NGK将于新加坡召开"2021 NGK新加坡区块链峰会",并将在全球开启同步直播. 据了解,本次峰会将汇聚全球二十多位顶尖区块链专家学者,与NGK灵石技术团队 ...
- PAUL ADAMS ARCHITECT:费城东北区的房地产市场逆势而行
根据Zillow.com的房产数据,大费城地区前三季度成交房产的平均价格为27.2万美元,较去年同期增长了13.4%,为10年同期最高.即使如此,27.2万的均价与纽约相比依然相距甚远,其中尤其是费城 ...
- 方案设计:基于IDEA插件开发和字节码插桩技术,实现研发交付质量自动分析
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 如何保证代码质量? 业务提需求,产品定方案,研发做实现,测试验流程.四种角色的相互配 ...
- CentOS7集群环境Elastic配置
CentOS7集群环境Elastic配置 (首先去官网下载elasticsearch的source code并解压到/usr/soft目录下) (以下默认root账户) 1.更改配置文件 文件路径:/ ...
- 面试系列二:精选大数据面试真题JVM专项-附答案详细解析
公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...
- 我的java学习之路--Java注解专题
- 绝对劝退书籍,谨慎!很多数学公式推导,以及伪代码,建议作为程序员道路上相伴的书籍