2016 - 2024

感恩一路有你

servlet前后端怎么传值 如何系统的学习JAVA?

浏览量:1524 时间:2023-06-18 23:52:43 作者:采采

如何系统的学习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语言编译程序。肯定其中也有很多设计并不是非常合理不。但都差不多都遵循了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本身。我就不再展开说其他具体一点方向了。具体解释的是大的技术方向,根本不会其他答主那样,详细去继续讨论语法糖这种级别。期望对提主有所帮助。

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

form表单通过js提交,另外跳转servlet时,自己定义了一个数,传参过去,可以吗,不是fo?

自定义参数,这个可以实际在form表单中系统设置隐藏域传值ltinputtype

jvm jdk 工具 java 垃圾

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