建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

如何系统的学习JAVA?(js怎么学)

GG网络技术分享 2025-03-18 16:11 0


java的整体生态和积累实在是太大了。95年至今20多年的积累,几乎涉及到计算机软硬件的方方面面。我暂且就认为,提主所说的精通,是指jdk本身和一些必要的数据结构以及常用框架和面向对象的基本思想吧。

从11年初至今,一直在学习java相关的知识。其中也走了不少弯路。按自己的积累,给出提主一个自认为合理且有一定深度的学习路线。大致分下面几个阶段吧。


1.首先应尽可能的打牢基础的数据结构和简单的算法基础。

可以去快速的学习一些简单的小型系统,来满足软件学习的兴趣和初期成就感。但,一定要回过头,仔细的巩固数据结构基础和简单算法。类似于这种书就可以。

2.熟练使用Java类库和java第三方工具框架。

学习使用java的语法,尝试理解Java语法设计的逻辑。熟练掌握jdk类库本身,以及各种第三方类库工具包和第三方框架的简单使用。这里学习的同时,推荐看看《设计模式》,《代码整洁之道》,《spring源码解读》,《Spring揭秘》等这一类的书集。


3.理解学习jdk类库本身的应用源码实现和主流第三方框架的源码和架构设计。

比如jdk本身的数据结构二叉树,红黑树,treemap,以及异步包的unsafe,同步阻塞队列,call-future等等包源码,以及线程基础类的实现,各个类库设计的结构和设计模式。吃透第三方框架的设计思想,理解学习第三方框架的核心源码。

当然,这里面可能会涉及到其他的事务,分布式协议等,这里不再展开。这个过程并非一朝一夕,可能需要大量的时间和技术感悟。当然,《设计模式》,《代码整洁之道》,《spring源码解读与设计详析》,《Spring揭秘》等等这一大类书,在这个过程可以理解大差不差了。


4.理解jdk,jre即jvm原理和实现。

这里我推荐看下葛老师的《实战java虚拟机》,里面讲解比较偏实操。容易上手理解。

首先,可以从jdk自带的工具学习来入手。

比如:jstat,jmap,jstack,jps,jdb.......甚至还有直接可以窥视运行期间实际内存数据的HSDB。当然,作为学习初步,我们只需要理解常用的几个命令,并知道其代表的意义即可。毕竟,第三方监控工具,包括jdk本身也提供了3个可视化的监控。


其次,理解jvm的运行加载原理,搞懂class文件结构。

这个过程我们可以借助之前会用的监控工具,理解jvm加载的基本原理。可以参考官方各个版本的jvm标准,学习看懂class文件。在此基础上可以使用如classpy等工具,方便我们直接阅读class文件。也可以试试支持class字节码级别的单步调试工具。甚至,可以尝试用用jvm汇编编码工具。


接下来,理解jvm的垃圾回收机制发展历史和各个主流垃圾回收器的工作原理。

这个过程其实非常复杂。垃圾回收器有各种串行,并行,新声代/swap和老年代,以及回收警戒线,full触发条件,各种个样的基本参数和不怎么用的超参数,以及G1的H区,ZGC等等。。。还好的是,GC并不属于jvm官方规范的一部分。


然后,动手做一些jvm的实践和实战,

比如,jvm常见的故障排查和故障总结,性能调优,热加载,class字节码的动态操作,asm等。


最后,可以尝试实现自己的jvm。(当然这个步骤,对很多同学来说不是必须了)

这里我推荐几本书,也是彻底搞懂jvm规范的学习路径。最好自己实现垃圾回收器。

周老师的《深入理解Java虚拟机》。

接下来是《深入嵌入式java虚拟机》和配套源码。这个cldc的jvm源码只有1M多。目前在oracle的官网上,仍然可以下载。是一个设计非常精简的jvm实现。

接下来,可以去阅读《自己动手写java 虚拟机》。这本书的jvm实现是采用go语言编写。当然其中也有很多设计并不是非常合理。但基本都遵循了jvm规范。

这个时候就可以去看看github上各种jvm的开源实现了。有go,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个不同的jvm实现。

当然,这些实现都只是基本原理。

后面推荐你去看《实战hotspot》豹子书,关注高级语言虚拟机的圈子。

当然,垃圾回收的书籍比较少,这里还是推荐给你垃圾回收的经典书《The Garbage Collection Cookbook》。实际上对新的垃圾回收算法有兴趣,可以去知乎搜索相关的论文和GC算法开源实现的demo。


5.当然,我的建议只是针对Java本身。

真正要达到完全学好java生态,软件工程,计算机网络,大数据基础知识,mahuot,sparklib,分布式搜索架构,各种消息中间件,缓存中间件,数据库,DNS/CDN。。。。。这些都是做互联网应用,避无可避的。

只能建议,通用知识熟练,钻研方向精通,相关生态了解。


由于提问是针对java本身。我就不再展开说其他具体方向了。描述的是大的技术方向,并没有其他答主那样,具体去讨论语法糖这种级别。希望对提主有所帮助。

有任何问题,欢迎关注回复,与我讨论。谢谢。

#####

想要高效的学习java技术知识,小编这里给大家几点总结的经验,希望能够帮助更多的人!

1、学习没有方向,这样的情况一般情况是你对于这个行业还不够了解,不知道java学习哪些方面是重点,学习出来可以从事哪方面的工作。对于这样的情况建议你可以先去招聘网站进行了解一下有关java工作岗位的技术需求,然后在进行学习就会有一个比较明确的目标方向了。作为一个零基础的新手,必然要知道你找工作需要达到什么标准,给大家分享一张以 企业岗位需求为导向 Java工程师技能点图,这就是你学习的目标。,



2、对于巩固知识,这个其实更加简单,第一就是你要边学边练习,编程技术的学习最重要的就是要多练习,自己一定要把学习的知识动手去进行实操练习。光是能够学懂是不行的,还必须要能够付诸实践才行;

第二,就是要和其他志同道合的小伙伴多进行交流,互相学习,这样也是一个可以有效巩固知识的方法;

第三,需要找一些阶段性的项目案例进行实操练习,相比其他方法项目实操练习可以综合考察锻炼你学习到的知识,能够更加有效提升学习效率巩固技术知识。

如果你有程序逻辑的基础(基本语法、变量定义,条件判断,循环),学过C/C++。那这部分可以跳过。当然你可以去网络找一些简单的语法题测试一下自己。

  若第一次学习编程语言,就要先打下基本功了。

  1、数据类型

  2、变量定义、操作符

  3、条件语句

  4、循环语句

  5、方法(方法参数,返回值)

Java的基础

  主要包括:

  1、面向对象:继承、封装、多态

  2、方法重载、重写

  3、接口、抽象类

  3、Java类的学习

  学习数据库

  掌握SQLServer , MySQL, 了解 Oracle。 基本SQL语句,复杂的联合查询,了解不同数据库SQL语言的差别。四、页面表现技术

主要为HTML,CSS和JavaScript,这些不展开叙述了。

  学习JavaWeb一些知识

  1、WEB容器(Tomcat , Weblogic ,JBOSS)

  2、JSP/Servlet

最后,有个提醒,在学习java前,一定要测试下你自己到底适不适合学习Java!如果本身不适合却因为觉得钱途好就盲目进场,下场一定很痛苦,避免的方法就是自学一段时间看自己能否学得进去,或者去Java实验班这个专业的测试班去看看自己到底适不适合学习。

#####

如何系统的学习Java,这个还是要先了解Java的一个内容体系结构,需要学习那些东西,当然我们学习的最终目的基本都是能够为了实现就业,所以在学习之前也要去了解一下企业对于Java的技术需求都有那些方面的内容。

然后,我们就可以结合企业需求去找一些相关的课程进行系统的学习,或者感觉自己还是无法找到一个系统的Java学习路径,那么就可以考虑一下去Java培训机构进行系统的学习,一般正规的靠谱的Java培训机构都会根据行业发展和企业的需求去设计一套比较系统的Java课程。

但是,在选择Java培训机构的时候我们还是需要更加的谨慎一些,现在的培训机构不是所有的都有自己的Java研发团队,所有Java培训课程也不是都是比较系统化的教学。这个时候就需要我们通过自己对于Java行业的了解去进行有效的判断选择。

Java系统化学习相关内容介绍:

第一阶段:Java基础

01Java编程语言概述

02Java基础语法

03Java数组

04面向对象编程

05高级类特性

06Java API

07异常处理

08集合与泛型

09Java IO流

10Java 多线程

11Java Reflection(Java反射)

12网络编程

13Java8 新特性

14Java9/Java10/Java11新特性

15经典项目

第二阶段:数据库关键技术

01Mysql 基础

02SQL语言

03JDBC

04DBUtils

第三阶段:Web开发与实战应用

01HTML5与CSS3

02JavaScript

03jQuery

04AJAX&JSON

05XML

06bootstrap

07Web服务器基础

08Servlet

09JSP

10JSTL

11EL

12Cookie&Session

13Filter&Listener

14国际化

15文件上传下载

第四阶段:经典&流行框架

01Spring5.0

02SpringMVC

03MyBatis

04Struts2

05Hibernate

06JPA

07SpringData

08Maven

09SVN

10Shiro

11Activiti5

12WebService

13Linux

14Redis

15Git&Git Hub

16MySQL高级

17JVM原理

18Quartz

19Nginx

20JUC 线程高级

第五阶段:Java高级&流行技术

01Dubbo

02SpringBoot

03SpringCloud

04Docker

05NIO

06FastDFS

07Elasticsearch

08Thymeleaf

09MyCat

10ActiveMQ

11ECharts

12分布式事务

13单点登录

14Zookeeper

第六阶段:企业接轨项目以在线教育项目为例

01Vue

02ES6

03Mybatis Plus

04课程中心微服务搭建

05课程中心微服务功能实现

06 前后端分离技术

07 后台管理系统前端页面的搭建

08课程中心前端功能实现

09阿里云OSS

10云存储微服务

11POI操作Excel

12课程基本信息管理

13阿里云VOD

14SpringCloud服务发现

15社交登录-微信登录

16SpringCloud配置中心

17SpringCloud Hystrix

18其他

第七阶段:大数据技术

01大数据技术概论

02Hadoop概述与安装

03HDFS伪分布式文件

04YARN

05MapReduce详解

06Hadoop-HA高可用

07HDFS完全分布式

08Hive入门

09Hive深入

10Hive高级

2020Java学习路线图:


#####

学透彻,基础打牢,多使用多练习,关注前沿知识,把握语言发展方向。不妨关注下我

#####

本人10年开发培训经验,期间经历了Java Web,Android,H5,大数据,PHP等多个不同的方向的开发,也做过软件培训公司的金牌讲师,很有兴趣回答你这个问题。

Java发展到现在,经历了25年的技术沉淀,在行业内已经积累了大量的技术资料,学习路线其实也很明确了。

Java基础学习路线:

从第一天Java介绍,环境搭建学起;

然后就是数据类型,条件分支,循环,方法,数组,集合,面向对象,字符串,线程,IO流,网络操作等;

数据库部分:

MySQL等SQL规范,JDBC操作等;

前端部分:

html,css,js,jquery,ajax,json等,后端程序员也得掌握前端内容哈;

web部分:

servlet,jsp,过滤器,监听器,拦截器,ssm,ssh,springboot框架等;

分布式部分:

dubbo,zookeekper,springcloud,各种mq,集群,分布式事务,锁等;

工具及架构部分:

maven,git,jenkins,docker,linux服务器,redis,mq,es,分库分表,调优技巧;

然后如果你要走安卓方向,那么还要学习Android的开发技术,Activity,Service,BroadCast,Layout,View等等.

下面是我给你列举的一些Java学习方向,仅做参考吧。

我从事互联网开发10年,主要的研究方向集中在Java web微服务架构领域,Android移动端研发,HTML5前端方向,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信你一定会有所收获。

#####

java开发技术在不断的迭代更新,企业对java开发程序员的技术要求也在逐渐的提高,因此在开发技术不断发展的时代,小伙伴需要学习更为系统的java开发技术知识。对于零基础小伙伴学习java开发技术来说,并非容易,选择一个比较靠谱的学习方式势在必行。

java开发是一项面向对象的高级编程语言,零基础小伙伴想要更好的学习java开发技术,选择一家比较靠谱的java培训机构来系统的学习还是比较合适的。小伙伴在学习过程中更要找到适合自己的学习方法:

1.课前先预习。小伙伴在java培训机构学习的过程中,要切记在上课之前要先预习本章节的课程内容,同时做好标记,哪些不会,哪些很好理解,这样对小伙伴学习java开发技术知识来说有很大的帮助。

2. 课上专心听讲,遇到不懂的问题,随手记下来,不要纠结问题。一旦上课纠结某个问题,后面上课的内容就会错过,继续听课,课后找合适的时间立马问同学或java培训老师。

3. 课后有不懂的问题及时与java培训机构老师或同学沟通。不要觉得不好意思。

4.课后要认真的做当天的作业,边做作业边消化当天讲的知识点的内容和语法。做完后再好好的整理和回顾和总结当天的内容。

5. 做作业时如果没思路,先想下当天所学的内容,再想下所学内容的应用场景。再看题目分析符合那个场景。如果找到符合该场景的就可以套语法用,再分析使用的逻辑。如果想了半天还是没思路,可以找老师或同学问,问的过程中要思考为什么不会做,有哪些地方没想明白,别人为什么会想到这个,这个怎么做,下次遇到类似的问题就可以按这个思路去尝试做。

6. 平时多敲代码只要你能每天学习做到以上几点,你的逻辑思维,学习能力,编程能力很快就能上来,也就能学习Java了。

小伙伴在学习java开发技术知识的过程中,不要眼高手低,不要放过任何一个小的练习项目,端正自身学习心态,多敲代码,养成一个良好的学习习惯对小伙伴的学习来说还是很重要的。

java开发技术学习教程及学习路线

http://www.atguigu.com/download.shtml

H5全栈前端开发技术学习教程及学习路线

http://www.atguigu.com/html5_video.shtml

大数据开发技术学习教程及学习路线

http://www.atguigu.com/bigdata_video.shtml

#####

多敲多练,多debug.多看源码,多写博客,有时候看懂了不一定能写出来。每天坚持总有一天能学的透彻!!!

#####

Java学的透彻,首先要了解企业对中级Java人才的要求是什么?

企业对于Java人才的要求需要至少积累2个企业级的大型项目经验!

想要学习Java,可以看看2020年Java全新学习路线图:

第一阶段:Java语言入门

第二阶段:Java语言进阶

第三阶段:Javaweb

第四阶段:框架阶段一

第五阶段:项目实战一

第六阶段:框架阶段二

第七阶段:项目实战二

第八阶段:项目实战三

每个阶段都有不同的配套视频,配套视频可以私信哦,这里就不一一发布了!

#####

第一阶段

  • Java入门语法· 线程机制
  • · 流程控制结构· IO流
  • · 面向对象核心· 网络编程
  • · 异常体系· 设计模式
  • · 集合与泛型· JDK8/9/10新特性
  • · 反射体系· 综合项目:客户管理系统
  • /考试管理系统/银行管理系统

第二阶段

  • · DB、DBMS、SQL的理解· 常见函数
  • · 常见数据库关系系统的· 存储过程和视图
  • 对比和认识· 事务以及事务的隔离级别
  • · DML、DQL、DCL、DDL· 触发器
  • · 数据的增删改查· 索引和优化
  • · DQL数据查询语言· 贯穿案例:Employees员工
  • · 分组查询、子查询、 管理系统
  • join查询、union查询等

第三阶段

  • · HTML与CSS· XML与Tomcat
  • · HTTP协议与Servlet· Thymeleaf
  • · 会话控制· JavaScript
  • · Vue.js· Ajax
  • · 贯穿项目:尚硅谷书城· Filter
  • · Listener:ServletContextListener

第四阶段

  • · Spring· Linux
  • · SpringMVC· Redis
  • · MyBatis· SSM整合案例
  • · SSM整合

第五阶段

  • · GC算法· Git与GitHub
  • · Mysql高级· Mycat
  • · Nginx· Docker
  • · ElasticSearch· RabbitMQ
  • · SpringBoot· SpringCloud
  • · 分布式事务· JVM
  • · JUC· Zookeeper
  • · Dubbo· 密码学

第六阶段

  • · 在线预约挂号平台:尚医通
  • · Spring全家桶项目:尚筹网
  • · 大型金融项目:尚融宝
  • · 分布式项目:美年旅游
  • · 前后端分离项目:尚课吧
  • · 微服务架构项目:尚品汇

第七阶段

  • · 基础系列面试题· 并发编程专题
  • · 开源框架源码解析专题· 微服务架构专题
  • · 高性能架构专题· 大厂面试题真实题目详解
  • · 性能优化专题


#####

其实各种语言的学习都是相通的,正好我在写相关的系列文章,建议有相关问题的同学长期关注。

在这里我简单罗列一下:1、建立正确的认知;2、基于认知的体系化学习;3、边学习边实践;4、基于学习的升华;

https://mp.weixin.qq.com/s?__biz=MzA3Nzc5NzIxMg==&mid=2247483704&idx=1&sn=567f489c38f7de3f1a268e2a522252cb&chksm=9f4dc30ba83a4a1d3b130545b1d1426370ffc3f9f21adf280faf2f362fb7674c876d7c71d749&token=1663325126&lang=zh_CN#rd

标签:

提交需求或反馈

Demand feedback