@

java基础怎么学?

当时,作为懵懂的小白,大一学习了cc++,还有数据结构,后来才自学的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站(小破站牛逼)上找一些全集的视频来看,记得,边看边敲,基本记不住!!!建议,看完一节或者一章,凭借记忆把代码敲出来,一开始肯定很慢,但是长期来看,帮助很大,基本可以记住并掌握。

如果视频的话,推荐以下两个:

总结:视频不在于多,书籍也是,越想要全面,越不太可能,前期有一本书,一个视频就可以了,抓大放小,要不,很容易就放弃,真的是从入门到放弃。

多打,多练习,熟能生巧!代码量上去才能发生质变!

在这个过程中,主要学习的东西(每一个都可以分得很细,下面只是大概,想到再补充):

  • 基本数据类型
  • 常用关键字
  • 接口
  • 抽象类
  • 集合
  • 继承(子类和父类)
  • 反射
  • 序列化
  • 动态代理
  • 注解
  • 锁与多线程
  • 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有两本本比较好的书籍推荐:

前面讲解的有数据库以及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怎么学?的更多相关文章

      1. 我的java学习之路--Java注解专题

        学习网址:http://www.imooc.com/video/8861 1.引言 2.Java中的常见注解 JDK自带注解:<br>@Override @Deprecated @Supp ...

      2. 新篇章之我的java学习之路下

        昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

      3. JAVA学习之路与大家分享

        这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

      4. java学习之路之javaSE基础2

        java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

      5. java学习之路之javaSE基础1

        <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

      6. Java学习之路(转)

        Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

      7. Java 学习之路 -- day00

        Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

      8. (转)如何学习Java技术?谈Java学习之路

        51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

      9. Java学习之路:不走弯路,就是捷径

        1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

      随机推荐

      1. Github App version released icons

        # Github App version released icons http://shields.io/ Build Travis: https://img.shields.io/travis/U ...

      2. 使用 js 实现十大排序算法: 归并排序

        使用 js 实现十大排序算法: 归并排序 归并排序 refs js 十大排序算法 All In One https://www.cnblogs.com/xgqfrms/p/13947122.html ...

      3. JavaScript 如何使用 setTimeout 实现 setInterval

        JavaScript 如何使用 setTimeout 实现 setInterval website multi content page setIntervalSimulator "use ...

      4. input change only trigger once bug

        input change only trigger once bug clear first https://stackoverflow.com/a/11280934/5934465 upload E ...

      5. Masterboxan INC发布《2019年可持续发展报告》

        近日,Masterboxan INC万事达资产管理有限公司(公司编号:20151264097)发布<2019年可持续发展报告>,全面回顾了在过去一年Masterboxan INC开展的可持 ...

      6. BGV再度爆发,流通市值破500万美金!

        BGV似乎以超乎寻常的姿态,开启了爆发的模式.这两天,BGV一路上涨,日内最高涨至548.78美金,24小时成交额达到了98.07万美金,24小时成交量达到1844.93枚BGV,流通市值更是突破了5 ...

      7. 不能回滚的Redis事务还能用吗

        前言 事务是关系型数据库的特征之一,那么作为 Nosql 的代表 Redis 中有事务吗?如果有,那么 Redis 当中的事务又是否具备关系型数据库的 ACID 四大特性呢? Redis 有事务吗 这 ...

      8. HTML5中对于块级元素和行内元素的总结

        转自:https://www.cnblogs.com/iverson666/p/9169274.html块级元素:块级大多为结构性标记 <address>...</adderss&g ...

      9. Java线程池 ExecutorService了解一下

        本篇主要涉及到的是java.util.concurrent包中的ExecutorService.ExecutorService就是Java中对线程池的实现. 一.ExecutorService介绍 E ...

      10. IntelliJ Idea Error Address localhost 1099 is already in use.

            Reference: https://stackoverflow.com/questions/38986910/intellij-idea-address-localhost1099-is-a ...