为什么java变量只能包含下划线和美元符号

为什么java变量只能包含下划线和美元符号,java,Java,我想知道这背后的原因是什么,为什么我们不能使用除这两个符号以外的任何符号,我想我从来没有使用过带有这些符号的变量,但值得知道原因,在Linux系统(以及其他语言)中,$in变量是一种历史惯例,通常用于调用变量。在Linux系统中,如果我设置了一个变量,我就用这个键调用它(即x=4,echo$x) 下划线和驼峰大小写是识别多单词变量的两种常用方法。如果我想声明变量iLoveJava或I_Love_Java,这两个变量都很容易读取 当然,所有这些都是对Sun Microsystems在制作语言时所做

我想知道这背后的原因是什么,为什么我们不能使用除这两个符号以外的任何符号,我想我从来没有使用过带有这些符号的变量,但值得知道原因,

在Linux系统(以及其他语言)中,$in变量是一种历史惯例,通常用于调用变量。在Linux系统中,如果我设置了一个变量,我就用这个键调用它(即x=4,echo$x)

下划线和驼峰大小写是识别多单词变量的两种常用方法。如果我想声明变量iLoveJava或I_Love_Java,这两个变量都很容易读取


当然,所有这些都是对Sun Microsystems在制作语言时所做的风格选择的合理化,但我认为这是一个公平的解释;)。如果您想了解更多关于为什么不详细使用其他变量的详细信息,Sercan发布的链接也是很好的信息。

变量$in是Linux系统(以及其他语言)中常用的调用变量的历史约定。在Linux系统中,如果我设置了一个变量,我就用这个键调用它(即x=4,echo$x)

下划线和驼峰大小写是识别多单词变量的两种常用方法。如果我想声明变量iLoveJava或I_Love_Java,这两个变量都很容易读取


当然,所有这些都是对Sun Microsystems在制作语言时所做的风格选择的合理化,但我认为这是一个公平的解释;)。如果您想了解更多关于为什么不详细使用其他组件的详细信息,Sercan发布的链接也是一个很好的信息。

这是C的遗产。因为Sun Microsystems决定应该这样做。如上所述,这样做有很好的理由,但他们可以采取不同的做法,也有很好的理由。下划线在几乎所有语言中都是合法的名称符号,所以在Java中没有理由违反这一规则。美元是内部类名称中的分隔符,如OuterClass$InnerClass,因此在标识符中也允许美元。编译器开发人员的键盘上遗漏了其他符号:)这是C语言的遗产,因为Sun Microsystems决定应该这样做。如上所述,这样做有很好的理由,但他们可以采取不同的做法,也有很好的理由。下划线在几乎所有语言中都是合法的名称符号,所以在Java中没有理由违反这一规则。美元是内部类名称中的分隔符,如OuterClass$InnerClass,因此在标识符中也允许美元。编译器开发人员的键盘中缺少其他符号:)