2016 - 2024

感恩一路有你

poi中怎么设置单元格高度 如何系统的学习JAVA?

浏览量:1926 时间:2023-05-21 10:58:44 作者:采采

如何系统的学习JAVA?

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和老年代,在内回收警戒线,endless触发条件,特殊个样的基本参数和不咋是用超参数,和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的开源实现程序了。有run,scalajvm,javainjava,ajvm,python-jvm,lua,二十多个版本那里相同的jvm基于。

当然了,那些个实现都只是因为基本原理。

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

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

5.当然,我的建议只是因为因为Java本身。

能够要达到全部能学好java生态,软件工程,计算机网络,大数据基础知识,mahuot,sparklib,分布式搜索架构,某些消息中间件,缓存中间件,数据库,DNS/CDN。。。。。那些个全是做互联网应用,无法躲避的。

只有建议,通用知识熟练,努力专研方向精通满,相关生态所了解。

因此提问是对于java本身。我就继续发动了攻击说别的具体详细方向了。具体描述的是大的技术方向,完全没有其他答主现在这样,具体看去继续讨论语法糖这种级别。期望对提主所帮助。

有一丝一毫问题,记得关注知道回答,与我讨论。谢谢。

jvm 工具 java jdk 垃圾

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