Products
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系统化学习相关内容介绍:
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
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 线程高级
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
第四阶段:框架阶段一
第五阶段:项目实战一
第六阶段:框架阶段二
第七阶段:项目实战二
第八阶段:项目实战三
每个阶段都有不同的配套视频,配套视频可以私信哦,这里就不一一发布了!
#####第一阶段
第二阶段
第三阶段
第四阶段
第五阶段
第六阶段
第七阶段
其实各种语言的学习都是相通的,正好我在写相关的系列文章,建议有相关问题的同学长期关注。
在这里我简单罗列一下: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