SpringBoot打包成jar之后在Linux执行,然后删除jar,会发生什么?

曾经面试被问过这个问题,当时对这个的答案就很朦胧,现在终于有时间自己做个小demo测试下了。

示例代码仓库地址https://gitee.com/cgd0526/demo

相关文章:

主要代码

image-20211022074410643

测试过程
  • 打包上传jar包到服务器上,运行jar包,正常访问结果。

image-20211022071823352

image-20211022074706001

  • 删除jar包后再次访问之前链接
    image-20211022072355557

image-20211022074831171

实验结果
实验证明删除jar包只会影响静态文件,读取本地文件这类操作也不影响。当然懒汉的单例设计模式也是不会有影响的,因为类信息
都已经在启动时加载到了方法区,懒汉只是在用到的时候在堆区分配存储空间。也就是堆引用指向方法区。
后续

努力学习JVM,等有更深度的想法再补充这个问题,现在还不能流畅的说出一个jar包启动的详细过程,加油

Q.E.D.


一个热爱生活的95后精神小伙