Java-JVM基础
前言
JVM是Java进阶之路中非常重要的一步,因此写下本文,用一篇文章对JVM知识点做一个总结。
JVM知识体系比较多,本文将采用“想到什么说什么“的思维编写,个人感觉这样更容易引发学习思考,面对有难度的知识点,可以由浅入深,一点点的了解。
最后,再大概了解完JVM的所有知识点后,再做一个核心知识点总结,用于整理归纳。
JVM是什么
首先,在听到一个新单词时,不禁会产生疑问,它是什么?所以JVM是什么呢?
JVM全名 Java Virtual Machine ,中文名 Java虚拟机。顾名思义,它是一个虚拟化的计算机。
Q:JVM作为虚拟化机器,能做什么呢?
它能执行Java字节码,将Java字节码翻译成机器代码,供操作系统执行,实现Java“一次编译,到处运行“的特性。
Q:出现了新单词 - Java字节码,什么是Java字节码呢?
Java字节码(Java Bytecode)是Java编程语言编译后生成的一种中间表示形式。它是与平台无关的二进制代码,JVM能够直接理解和执行它。反过来说,Java字节码需要JVM进行解释,才能够被机器直接执行。
Q:Java字节码是怎么产生的呢?
...
再见SpringFox,你好SpringDoc
前言
最近项目使用 SpringBoot 3 + Spring 6 搭建,接口文档准备一如既往的使用 Swagger 自动生成,引入 springfox-boot-starter 依赖,配置好相关的 Swagger 配置,结果启动报错,修改配置后启动不报错了,但是访问 swagger-ui/index.html 页面报404。
问题分析
一顿分析过后发现,最新的 springfox 3.0.0 (最后一次维护在2020年)仅支持 Spring 5.x,要想使用 springfox,最简单快捷的方式就是降版本,将 SpringBoot 的版本号从 3.x 修改为 2.7.x(或更低版本)。
新项目就是想体验最新的 SpringBoot 版本功能,这样一搞,岂不是本末倒置了,因此我就尝试了各种方法,企图通过修改 Spring Bean 属性等方式适配 Swagger ,结果发现 Spring 里面的对象属性是一层嵌一层,牵一发而动全身,菜鸡的我只好放弃。
企图尝试:
注册 WebMvcConfigurer Bean,重写 configurePathMatch(PathMatchConfi ...
Git学习-Git内部原理
第十章学习 Git 内部工作原理和实现方式。
Git学习-Git与其他系统
第九章学习 Git 与其他VCS项目的交互。
Git学习-自定义Git
第八章学习借助 Git 的一些重要的配置方法和钩子机制,来满足自定义的需求。
Git学习-Git工具
第七章学习 Git 工具,这些工具的也是 Git 的重要一环,包含有修订版本、贮藏、重置等十分强大的功能,这些功能在日常操作中不一定经常使用,但在特殊情况下确实非常受用的。
工作小结-接入钉钉机器人
2024-01-13工作小结,整理钉钉机器人API的使用和封装。
工作小结-MyBatis-Plus填充策略
2024-01-10工作小结,了解MyBatis-Plus填充策略的使用和工作原理。
工作小结-ShedLock的使用
2024-01-08工作小结,了解ShedLock的使用和工作原理。
工作小结-业务编号生成器
2024-01-05工作小结,整理内部实现的系统编号生成器的原理,并总结优缺点。















