2016 - 2024

感恩一路有你

shiro 登录提示密码错误 如何系统的学习JAVA?

浏览量:3385 时间:2023-07-05 16:16:47 作者:采采

如何系统的学习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和老年代,包括回收警戒线,large触发条件,各种个样的基本参数和不怎莫是用超参数,和G1的H区,ZGC等等。。。而且的是,GC并不属于jvm官方规范的一部分。

然后把,试着做一些jvm的实践和实战,

诸如,jvm比较普遍的故障排查和故障归纳,性能调优,热加载,class字节码的动态操作,asm等。

后来,这个可以数次实现自己的jvm。(不过这个步骤,对很多同学来说又不是必须了)

这里我帮我推荐几本书,也全部弄明白jvm规范标准的学习路径。最好是自己实现方法垃圾回收器。

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

下一步是《深入嵌入式java虚拟机》和配套源码。这个cldc的jvm源码只有1M多。目前在oracle的官网上,仍然也可以去下载。是一个设计的很精简整合的jvm利用。

接下来的事情,可以去阅读《自己动手写java 虚拟机》。这本书的jvm实现程序是按结构go语言编写。不过其中也有很多设计并不是什么的很合不合理。但基本是都不违背了jvm规范。

此时此刻就这个可以去去看看github上各种jvm的开源基于了。有me,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个完全不同的jvm实现方法。

其实,这些实现程序都只是因为基本原理。

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

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

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

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

没有办法建议,通用知识比较熟练,专研方向专精,相关生态知道一点。

的原因提问是是对java本身。我就不再发起说其他详细方向了。详细解释的是大的技术方向,却没其他答主现在这样,详细去再讨论语法糖这种级别。期望对提主所帮助。

有任何问题,欢迎关注知道回答,与我讨论到。啊,谢谢。

shiro配置的md5加密时对用户输入的密码生效吗?

用户输入密码传遍到后台是明文,struts2会调用

doGetAuthenticationInfo方法返回SimpleAuthenticationInfo对象

在这个里边是需要你提醒springsecurity你传入的身份(username)和密钥(明文),这两个能保存在在token中。同时在赶往SimpleAuthenticationInfo时不需要能提供身份和加密后的密钥,后再shiro会根据密码不兼容器进行比较

jvm 工具 java jdk 框架

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