springboot后台管理系统学习项目 如何系统的学习JAVA?
如何系统的学习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和老年代,和回收警戒线,clear触发条件,各种个样的基本参数和不怎末是用超参数,包括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本身。我就并没有发动了攻击说其他具体详细方向了。描述的是大的技术方向,并没有其他答主现在这样,具体一点去再讨论语法糖这种级别。如果能对提主有了帮助。
有任何问题,请关注回复,与我商讨。啊,谢谢。
怎样向后端同学普及前端知识并能根据类似react的框架独立完成简单的后台页面?
偶尔会有一些小而简单后台系统,后端和前端联调会费事费力,后端同学也会有自己搭建中小系统的意愿,但前端知识体系极为内容复杂,怎么样才能能以最快速度让后端上手难呢
推荐一下vue,vue是一套最靠近原生开发的前端框架了。
只是需要会js,html,css就能快速上手。不过目前社区有十分丰富的组件和手脚架支持,后端写站了起来可能会爽的不行啊。
vueelementadminvueelementadmin是一套有微博头条前端开发的组件库手脚架。
支持tab标签内置markdown文本编辑器,国际化等常用功能。
若依管理系统这是一套无法继承springboot的vueelementadmin的后台管理系统。
支持什么大侠帮帮忙形成完整,定时任务,代码生成等功能的后台管理系统,后台人员可以通过这个开源框架快速上手,知道一点学习vue和vueelement组件的相关知识。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。