Java中GC有没有可能不去STW?

stop the Word会使虚拟机停顿,很多情况导致项目体验差,那能不能不进行STW呢?
听别人分析不能的原因如下:
扫描过程中可能会有新的对象生成,这些对象可能在已被扫描的分支上,所以没有被标记为不可达对象。

开始扫描时记录时间start,那我们给每个对象创建时标记一下创建时间create,在开始扫描时间之后创建的对象(create<start)都认为是有效的对象,这样最终找到没有标记可达且创建日期小于start的对象肯定就是start之前产生的垃圾,这时候把这些垃圾清除掉,这整个过程都不需要STW

我也是刚开始学java,建议题主可以先使用jvisualvm等工具观察一下看eden区域、两个survior区域以及老年代区域的增长情况,看有没有办法避免full gc的,比如增加年轻代区域的大小等,以上内容详细可以参考这里面的视频
【清华毕业大牛终于把23种设计模式讲的如此清晰脱俗,保姆级教程通俗易懂-哔哩哔哩】


里面的第二讲就是说优化的,不过我还没看完,希望能帮到你