SpringBoot打包成jar之后在Linux执行,然后删除jar,会发生什么?
曾经面试被问过这个问题,当时对这个的答案就很朦胧,现在终于有时间自己做个小demo测试下了。
示例代码仓库地址:https://gitee.com/cgd0526/demo
相关文章:
- https://segmentfault.com/q/1010000021518123
- http://www.spring4all.com/question/25
- https://v2ex.com/t/626555
主要代码
测试过程
- 打包上传jar包到服务器上,运行jar包,正常访问结果。
- 删除jar包后再次访问之前链接
实验结果
代码语言:javascript复制实验证明删除jar包只会影响静态文件,读取本地文件这类操作也不影响。当然懒汉的单例设计模式也是不会有影响的,因为类信息
都已经在启动时加载到了方法区,懒汉只是在用到的时候在堆区分配存储空间。也就是堆引用指向方法区。
后续
努力学习JVM,等有更深度的想法再补充这个问题,现在还不能流畅的说出一个jar包启动的详细过程,加油