2016 - 2025

感恩一路有你

golang图片该保存在哪 如何系统的学习JAVA?

浏览量:4669 时间:2023-05-06 23:01:40 作者:采采

如何系统的学习JAVA?

java的整体生态和学习积累确实是太大了。95年一直20多年的积累,几乎牵涉到计算机软硬件的方方面面。我暂且放过就如果说,提主所说的专精,是指jdk本身和一些必要的数据结构这些常用框架和面向对象的基本是思想吧。

从11年初一直,一直在在学习java相关的知识。其中也走了不少弯路。按自己的积累,决定提主一个自如果说比较合理且有当然深度的学习路线。确切分下面几个阶段吧。

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

这个可以去飞速的学习一些简单的大型系统,来不满足软件学的兴趣和初期成就感。但,要先回过身,细细的看的培养数据结构基础和简单算法。类似于这种书就可以不。

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

学建议使用java的语法,尝试解释Java语法设计什么的逻辑。比较熟练手中掌握jdkjava代码本身,包括各种第三方类库工具包和第三方框架的简单啊使用。这里怎么学习的同时,帮我推荐看一下《设计模式》,《代码整洁之道》,《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语言c语言程序。其实其中也有很多设计并不是什么太合理不。但基本是都不违背了jvm规范。

这时候就这个可以去看一下github上各种jvm的开源软件基于了。有play,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个差别的jvm实现程序。

不过,这些实现都只是因为基本原理。

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

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

5.当然,我的建议只不过对于Java本身。

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

只有建议,通用知识能熟练,专研方向全精通,咨询生态打听一下。

由于提问是因为java本身。我就不再继续发动了攻击说其他具体一点方向了。请看的是大的技术方向,完全没有其他答主那样的话,具体看去讨论语法糖这种级别。希望对提主有所帮助。

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

0基础小白如何学习python?

可不知道您的学习目的是什么?

如果只是因为兴趣,想做点东西,那可以如何自学,简单清楚下Python语法和基础,然后把在付费的视频网站,比如西瓜视频,B站,找些相关的视频,学再看看就可以从哪里入手了。

如果不是是打算将来畜牧兽医相关专业Python相关的工作,建议您系统的学习看看,打好基础,踏入的学习。

jvm jdk 工具 基础 java

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。