大家好,我是朋哥。
最近耗费了一周时间整理了一套Java学习路线,
对于初次接触 Java 的朋友,想必一定很迷茫,想知道如何掌握好 Java 这门技术,如何运用Java进行项目开发,以及给自己带来高的收益!
曾经的我,也一度迷茫,虽然学了很多,但是技术积累的比较散,在面试的时候,一碰到面试官提一些自己没听说过的问题,瞬间就傻逼了,而且时常不够自信,但是自从认识了一些大牛之后,我才发现自己欠缺的是系统性的知识,以及对自己未来的定位。从那时候起,渐渐的开始思考 Java 为什么至今依然这么火,怎么学好 Java 这门技术,以及自己未来的方向。
在这里,可以将Java开发涉及到的技术栈知识学习分为以下几个部分:
一,Java 核心技术篇
这个阶段就是Java入门阶段,也是核心阶段,掌握 Java 这门编程语言的基本语法,和基本特征,核心api和编码规范,安全规范等,为后面的修行之路打好基础。一定要注意是基础,基础一定要牢固。
1,基础知识 又包括如下知识点:
2,容器知识
容器主要是数据集合类,主要包括以下几个,也是Java开发最常用的数据结构:
ArrayList、LinkedList、HashMap、LinkedHashMap、HashTable、HashSet,Vector,CopyOnWriteArrayList,ConcurrentHashMap,WeakHashMap等,如果过需要分析原理的小伙伴可以去java.util
包下进行查找,开发中使用很广。
3,IO知识
实现文件或者网络的输入/输出操作,主要包括如下内容:
- File类的作用
- File类中常用方法的使用介绍
- 使用File类操作文件和文件夹
- 相对路径和绝对路径的介绍
- IO流的概念和工作原理
- IO流的分类
- 文件流的使用
- 转换流的使用
- 缓冲流的使用
- 对象流的使用
- 内存流的使用
- 使用不同的流实现文件内容的拷贝
4,多线程知识
主要包含线程和进程的基本概念、使用、以及并发编程等内容,多线程中有一个重点是线程池,用来管理线程,多线程可以说是 Java 高性能的核心基石,对大用户量高并发有很好的处理优势,必须要掌握好多线程的知识点。
简单归类主要包括如下几点
5,JVM虚拟机
说到虚拟机,很多大厂尤其会面试这方面的知识点,很多工作几年的开发者都没有实质的接触到,核心知识点主要是GC调优,详细可以分为如下几点:
二、设计模式
设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
从模式上,可以将其分为四大类:创建型模式、结构型模式、行为型模式,J2EE 设计模式 ,合计各个类别总共有 23 种!
三、Java 开源框架
Java 程序员从事 JavaWeb 的相关开发当然离不开 Spring 的系列框架。
就目前来说 没有 一个项目 不包含Spring 。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。这个两个概念对于初学者来说,学习曲线有点陡峭。
有关Spring的核心框架:
开源框架的出现,对整个IT行业来说,尤其是程序员,真的绝对是一种福利!
比如新手上手难、项目开发周期长、编码风格不统一等问题,Spring、SpringMVC、Mybtais、Hibernate等框架的出现,极大的改善了web应用程序后端开发的难度,缩短了开发周期,对于后端开发者而言,真的是一种解放!
四、数据库篇
学习一门编程语言,数据库操作是必不可少的,不学会数据库,这门编程语言你也只能算是懂得一点点皮毛而已,对吧?要想学好数据库,首先要学习一下 SQL,推荐《SQL 必知必会》,然后是 MySQL,推荐《高性能 MySQL》。再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,推荐《Redis 深度历险:核心原理与应用实战》。
还有 MongoDB,非关系型数据库,推荐《MongoDB权威指南》。
根据使用用途,数据库可分为关系型数据库、非关系型数据库。
- 关系型数据库:主要就是我们做业务时经常会接触到的一种数据库,在设计时主要需要遵循三范式要求,以设计符合实际需要的表结构关系。
- 非关系型数据库:主要是面向那些不能用结构化关系表达的数据,通过
k-v
来实现存储。
这里强烈推荐几本书:
- SQL基础教程(入门级);
- 高性能MySQL(进阶级);
- Redis入门指南(第2版)
- Redis设计与实现
- Redis实战
五、前端技术篇
真正在实际开发过程中,对于后端开发者而言,不可能只做 Java 的开发,也要兼顾前端的开发,有一些公司连前端开发都没有,前端任务全部都由后端人员来兼顾完成。
另外现在前后端分离开发也都是一个人来完成了,vue、react、angluar等前端框架,都需要学习。
开发人员必须掌握 Html、JavaScript技术,原因就不多说了。
这里推荐几个网站如下:
1、Bootstrap
Bootstrap无疑是最流行的CSS框架,它是最早的Web前端框架,由Twitter开发。Bootstrap还提供了许多实例来帮助你入门。
2、PatternFly
PatternFly是Red Hat的开源CSS框架,和Bootstrap不同的是,Bootstrap是为那些想要创建漂亮网站的人而设计的,而PatternFly主要专注于企业应用程序开发人员,提供诸如条形图、图表、导航之类的组件,实际上Red Hat就是使用它创建了OpenShift。
3、Material Components for the web
Material Components for the web(MDC Web),是谷歌专为Web设计的全新前端框架。MDC Web可帮助开发人员执行Material Design,组件由谷歌的核心工程师团队和UX设计人员开发。这些组件可以建立可靠的开发工作流程,以构建美观且功能强大的Web项目。
4、Pure
Bootstrap,Patternfly和MDC Web是功能非常强大的CSS框架,但它们可能非常繁琐和复杂。如果你想要一个轻量级的CSS框架,可以尝试Pure.css,它本身更接近于CSS编程,但又可以帮助你构建一个不错的网页。Pure是具有最小占用空间的轻量级CSS框架,它由Yahoo开发,根据BSD许可是开源的。
5、Foundation
Foundation声称是世界上最先进的响应式前端框架。它提供了用于构建专业网站的高级功能和教程。许多公司,组织都使用该框架,并且该框架具有大量可用的文档。
6、Bulma
Bulma是一个基于Flexbox的开源框架,可根据MIT许可证开源。Bulma是一个非常轻量级的框架,因为它只需要一个CSS文件。Bulma拥有简洁明了的文档,可轻松选择你想要的主题。它还具有许多Web组件,你可以在设计中使用它们。
7、Skeleton
如果说还有什么框架比Pure更加轻量级,那一定是Skeleton。Skeleton库只有大约400行,并且该框架仅提供一些基本的CSS框架组件。尽管如此,Skeleton还是提供了详细的文档来帮助你快速上手。
8、Materialize
Materialize 是一个基于 Material Design风格的一个现代化的响应式前端框架,解决了最繁重的工作,结合你的自定义组件,为你提供默认的样式。Materialize的文档页面非常全面,并且很容易遵循。其组件页面包括按钮,卡片,导航等。
9、Bootflat
Bootflat是从Twitter的Bootstrap派生的开源CSS框架。与Bootstrap相比,Bootflat更简单,并且更加轻量级。Bootflat的文档似乎几乎受到了IKEA的启发,大部分都是图像,没有太多的文字。
10,w3school(网站)
在 W3School,你可以找到你所需要的所有的网站建设教程。
从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET。
六、中间件篇
问:什么情况下需要使用中间件呢?
答:如果面对一个请求量很大、对响应要求很高的系统,就需要中间件的支持。
问:中间件包括那些呢?
答:最常用的有:分布式缓存:redis、memcached,分布式消息队列:activemq 、rabbitmq、rocketmq、kafka,分布式搜索引擎:elasticsearch,分布式任务调度:quartz,分布式API网关:zuul,分布式熔断器:Hystrix 等等。
七、服务器篇
服务器 重点主要是软件安装部署、服务器使用原理,容器化技术等,最为Java程序员不会部署服务器绝对不是好技术员。