我在Oracle Java Tutorial中找到了关于文字概念的以下陈述:
文字是固定值的源代码表示;文字直接在代码中表示,无需计算
我理解int * int
或String + String
...不是字面意思。所以我试试这段代码:
int num1 = 3*5;
int num2 = 15
System.out.println(num1==num2);// it print true
我的问题:我的代码中的3 * 5是文字还是不是?为什么?谢谢!
答案 0 :(得分:1)
您对问题的评论是混合概念。定义很明确,3
和5
是文字的,但3*5
不是,因为它需要计算。
编译器确实可能在编译时执行该计算,因为结果是在编译时可知的常量,但它不会用文字替换它。请参阅您引用的定义。文字是源代码表示。如果编译器在编译时执行该操作,则会影响字节代码,而不是源代码。
您对num1==num2
所做的评论与问题完全无关。再次看到定义。文字被定义为值的表示,其中equality是关于值本身的语句。