`
oray2011
  • 浏览: 7292 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

最近做项目碰到这样的一个问题,发现JVM一个潜在问题,拿出来讨论一下!

    博客分类:
  • Java
阅读更多
import org.junit.Test;

import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

/**
* @author yaho
* @version 1.0 11-5-16,下午11:31
*/
public class StaticInitializerTest {
    private static int id = nextID();

    private static int nextID() {

        return identifier++;
    }

    private static int identifier = 0;
//private static int identifier = 1;

    @Test
    public void equality() throws Exception {
        assertEquals(id, nextID());
    }

    @Test
    public void unequality() throws Exception {
       assertThat(id,not(nextID()));
    }
}
程序运行不会出错,问题表明JVM初始化类变量失败,但不会报错。
把indentifier改成1时,equality运行不通过...
好像是JDK的一个Bug.其实应该抛错的.因为id=nextID();在id被赋值之前nextID()方法未定义....
分享到:
评论

相关推荐

    一个jvm启动多个springboot服务

    当我们谈论"一个JVM启动多个SpringBoot服务"时,实际上是在讨论如何在一个Java进程中运行多个独立的应用实例。 一、SpringBoot服务的独立性 SpringBoot服务通常是一个独立的可执行jar文件,包含所有的依赖库,可以...

    library-template-jvm,一个kotlin/jvm库模板(带有一个示例项目)。.zip

    这个开源项目,为开发者提供了一个快速启动的新项目模板,特别适用于构建基于JVM的Kotlin库,并包含了一个示例项目以便于理解和实践。 "library-template-jvm"的核心价值在于其便捷性与灵活性。作为一个模板,它...

    一个开源的JVM

    Java虚拟机(JVM)是Java编程语言的核心组成部分,它负责执行字节码,使得Java程序可以在任何支持JVM的平台上运行,实现“一次编写,到处运行”的目标。开源的JVM,如标题中提到的,允许开发者深入理解JVM的工作原理...

    jvm开发实战项目案例分析

    在《JVM开发实战项目案例分析》中,我们主要探讨的是如何将Java虚拟机(JVM)技术应用于实际开发,并通过具体的项目案例进行深入解析。JVM是Java平台的核心组成部分,它负责运行Java应用程序,提供了跨平台的执行...

    JVM内存溢出问题解析

    JVM 内存溢出问题解析 JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时...

    JVM 深入学习教程深入分析JVM教程!jvm 内存原型,优化等等

    深入学习JVM对于优化Java应用程序性能、理解和解决内存问题至关重要。本教程将涵盖JVM内存模型、内存分配以及优化策略。 一、JVM内存模型 1. 堆内存:堆是所有线程共享的一块内存区域,主要用于存储对象实例。Java...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    描述中提到了一个博文链接,尽管没有给出具体内容,但根据标题,我们可以推测该博文可能详细讨论了JVM相关技术和书籍推荐。给出的标签“源码 工具”表明博文可能还涉及到了分析JVM源代码和使用相关工具进行JVM调优的...

    JVM 输出 GC 日志导致 JVM 卡住

    JVM 输出 GC 日志导致 JVM 卡住是一个常见的问题,尤其是在高并发和高性能应用中。这个问题的根源在于 JVM 的垃圾回收机制(Garbage Collection,GC),它会在 JVM 运行时周期性地进行垃圾回收,以释放内存空间。...

    美团JVM问题定位和排错

    ### 美团JVM问题定位和排错 #### 背景 在现代软件开发中,Java虚拟机(JVM)作为运行Java程序的基础平台,对于任何使用Java语言进行开发的服务都至关重要。然而,在实际运行过程中,由于复杂的运行环境和技术栈的...

    涨见识!JVM性能监控与调优实战 一线大厂大牛讲师的JVM优化案例与解决方案课程

    JVM性能监控与调优实战课程,作为整篇课程的重中之重,非常值得同学们参考学习。课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行...

    jdk,jvm源码

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。JDK(Java Development Kit)包含了开发和运行Java程序所需的所有工具,包括JVM。当我们谈论"jdk,jvm...

    全套JVM面试题!面试必备!

    以上只是JVM面试中的一小部分问题,深入理解和掌握JVM的工作原理,能够帮助开发者解决性能问题,提升应用的稳定性。对于Java开发人员来说,不断学习和实践JVM相关知识,是提升自身技能的重要途径。

    ebs原版本jvm.dll文件

    根据提供的文件信息,我们可以了解到这是关于一个特定版本的 `jvm.dll` 文件的讨论,该文件位于 `C:\Program Files\Oracle\JInitiator 1.3.1.21\bin\hotspot` 目录下,并且被标记为“老版本”。接下来,我们将深入...

    JVM问题定位的典型案例分析

    本文将通过一个关于JVM问题定位的具体案例来探讨如何有效地诊断并解决这些问题。 #### 二、案例背景 本案例涉及的是Oracle公司针对MySQL数据库中InnoDB存储引擎的改进工作。其中,重点介绍了一种新的写入提前日志...

    jvm-mon基于控制台的JVM监视

    1. **内存监控**:`jvm-mon`能够显示堆内存、非堆内存(如 PermGen 或 Metaspace)的使用情况,包括总大小、已分配、已使用以及剩余空间等信息,帮助开发者发现内存溢出问题。 2. **GC活动追踪**:它会记录垃圾收集...

    jvmjava,java实现的JVM。.zip

    本项目“jvmjava”是一个开源项目,由Java语言实现,目的是为了让开发者能够更深入地理解JVM的工作原理,并提供了一个动手实践的机会。 一、JVM概述 Java虚拟机(JVM)是Java平台的核心,它负责执行字节码,提供了...

    项目典型数据应用缓存的jvm之旅

    《项目典型数据应用缓存的JVM之旅》 在IT行业中,优化应用程序性能是一个永恒的话题,尤其是在大数据量、高并发的场景下。本篇将深入探讨如何利用Java虚拟机(JVM)进行高效的缓存处理,以提升项目的典型数据应用...

Global site tag (gtag.js) - Google Analytics