我经常看到人们说
然而,考虑到这里使用的语言非常简单和明确,我几乎无法想象Java优化器不会尝试简单地将前者转换为后者。为什么它真的会选择以更费力的方式执行呢?如果Java进行了优化,可能会有什么负面影响吗?
String str = new String("my string")
不如写String str = "my string"
高效,因为前者会创建一个静态的"my string"对象,然后再new一个String对象从静态对象中复制过来。然而,考虑到这里使用的语言非常简单和明确,我几乎无法想象Java优化器不会尝试简单地将前者转换为后者。为什么它真的会选择以更费力的方式执行呢?如果Java进行了优化,可能会有什么负面影响吗?