jdk版本升级

最近项目要做jdk升级

最开始以为只要把版本号一改,看下如果编译没有报错的地方就可以了

后来听了下前辈的经验,这样是远远不够的;

首先,只看本地的业务代码是否报错,肯定是不行的。因为你的框架有很多依赖,不说其他的,spring肯定有吧。spring的版本和JDK是有严格的兼容跨度的;你想绕过spring升级jdk肯定不现实;

而且不止spring,什么netty,连接池(Hikari/Druid),字节码工具这些都对jdk有要求的;

所以第一步不是升级jdk,而是把依赖先升到最新的jdk版本;

其次,要考虑到GC的问题,jdk升级后默认的GC就不一样了。开始觉得生产上都是指定GC的,所以没事;但实际上换了jdk后参数也是发生变化的,之前的调优参数肯定不能再用了,需要重新设置;(cms-G1的参数变化有多大,调过的都懂)

还有一个要注意的点,就是关于云原生;

在容器里和虚拟机jvm的表现不一致;

JDK8u91+以后都支持

java 复制代码
-XX:+UseContainerSupport 

它可以让JVM不再读宿主机资源,改从cgroup读取容器memory limit 和CPU quota

这个关系到JVM 感知到CPU核数,设置的不好可能会出现0.5核的情况;

因为JVM 并不是读取"CPU核数",而是在读 Linux cgroup 的配额

JVM 必须遵守cgroup的限制

看下面的ymal

bash 复制代码
resource:
   limits:
      cpu: "500m"

这里的本质是

500/1000 = 0.5个CPU

相关推荐
极客先躯10 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
xqqxqxxq11 小时前
Java Socket 多人聊天室(私聊+群聊)技术笔记(V4版本)
java·网络·笔记
wang090711 小时前
自己动手写一个spring之aop_1
java·后端·spring
颜x小11 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
weixin_4236521311 小时前
C#使用JObject
开发语言·c#
国科安芯12 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
deng120412 小时前
【Thread类的用法(1)-- Thread类的基本用法】
java·java-ee
suconnect12 小时前
Spring Boot接入企业RAG:文档切分、向量检索、权限过滤和答案溯源
java·spring boot·后端
weixin_BYSJ198712 小时前
springboot校园自习室管理小程序---附源码32142
java·javascript·spring boot·python·django·flask·php
ClickHouseDB13 小时前
ClickHouse托管Postgres:OLTP+OLAP,新能力解锁最佳数据平台
java·前端·数据库