Java Android是否进行预编译优化

Java Android是否进行预编译优化,java,android,kotlin,Java,Android,Kotlin,我是科特林的新手,我正在尝试理解一些非常基本的东西,或者至少我认为是这样。 我在一门课程中看到了这个例子 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) while(true) { val x = 1 } } 这样做的目的是让应用程序停止响应,

我是科特林的新手,我正在尝试理解一些非常基本的东西,或者至少我认为是这样。 我在一门课程中看到了这个例子

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    while(true) {
        val x = 1
    }
}
这样做的目的是让应用程序停止响应,但是我希望在编译阶段,java/kotlin编译器会在第一次之后优化这一部分,就像在C中运行相同的代码时一样,但它没有响应,并且应用程序被冻结。 我使用过C语言,在while循环中使用rand调用并分配它之前,我无法使处理器过载


我的问题是编译器如何进行预运行优化,如果进行预运行优化,我在哪里可以阅读到相关信息,这些代码是否会使手机中的处理器过载?

“将优化此部分”如何在不更改语义的情况下优化此部分?不是我,我和C编译器期望Java/Kotlin中有类似的过程。C编译器如何在不改变语义的情况下优化这个过程?根据Java和Kotlin的规范,这永远不会正常完成。优化不能改变这一点;C编译器会做一件非常有趣的事情。C中的预编译器会更改代码,例如,如果你有一个函数调用,并且只有几行,它会粘贴它而不是调用,并且不会跳转到那一行code@AndyTurner我刚意识到我错过了什么,C编译器将分配x=1一次,并跳过这一行,直到为x分配一个不同的值。循环和函数都不会结束。现在的问题是Java/kotlin代码是否会使处理器过载,或者像C一样,它会优化它。