咨询电话

静态变量和编译器 置顶

发表于2017-03-09 10:46:29 次查看
我是一个很长的Java程序员,差不多20年了。我很喜欢这种语言,我想分享一个观察。

考虑下面的代码片段:

public  static  final  String  HELLO_WORLD  =  “Hello”  +  WORLD ;
public  static  final  String  WORLD  =  “World” ;

当您尝试编译上述代码时,Java编译器将引发编译错误:“非法前向引用”这是因为编译器期望在引用它之前首先定义静态变量“WORLD”。为了成功编译,代码必须修改为:

public  static  final  String  WORLD  =  “World” ;
public  static  final  String  HELLO_WORLD  =  “Hello”  +  WORLD ;

如果这种排序可以被消除,这对于Java开发人员将是方便的。Java开发人员在定义方法时已经习惯了这种灵活性。当定义Java方法时,不必遵循任何顺序。在类的底部定义的方法可以通过类的顶部的方法引用。在Java中,  函数调用在运行时被解析,而静态final在编译时被解析。 这就是造成这种不便的原因。 

技术进步以令人难以置信的速度进步。应用程序变得更聪明和更智能。应用程序正在进入人类思维,并开始理解人类如何思考,并相应地提供解决方案。在这个快速发展的时代,有一些事情在时间上被冻结了。其中之一是Java语言中静态变量的排序。改变的时候了?

\

在线客服
  • 点击这里给我发消息
  • 点击这里给我发消息
  • 微信扫一扫
  • 官方微信