Java变量仅初始化一次

时间:2020-06-01 13:34:08

标签: string jvm string-pool

我有以下代码:

@NgModule({
  declarations: [
    AppComponent,
    DialogComponent
  ],
  imports: [
    MatDialogModule,
  ],
  entryComponents: [
    DialogComponent,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

当我多次打印出该字符串时,它显示出完全相同的值。

String test = "Test" + System.currentTimeMillis();

结果如下:

System.out.println(test);
Thread.sleep(1000L);
System.out.println(test);

为什么一秒钟内打印结果都不相同?

这是JVM缓存还是类似的东西? 变量初始化如何工作? JVM如何知道它已被初始化以及如何强制它重新初始化?

最好阅读一些文档/规范以阐明其工作原理。

1 个答案:

答案 0 :(得分:-1)

为变量分配值时,它将评估在该特定实例中动态的任何内容,除非重新分配,否则不会重新评估。

String test =“ Test” + System.currentTimeMillis(); 打印-测试 test =“ Test” + System.currentTimeMillis(); printe --test

有什么具体要求吗?