来福网

常量表达式

常量表达式

c语言,整型表达式和常量表达式中都没有变量参与吧?

完整问题:好评回答:表达式没有变量参与?不是很清楚这个问题的定义,只是知道(a b)这种表达式下a和b都可以是变量

Java编译器对于String常量表达式的优化是什么呢?

完整问题:Java编译器对于String常量表达式的优化是什么呢?好评回答:首先把问题摆出来,先看这个代码 String a = ab; String b = a + b; System。out。println((a == b));打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1。true a + b 的结果就是ab,这样a,b都是ab了,内容一样所以相等,结果true 一般java新人如是答。 2。false a + a会生成新的对象aa,但是这个对象和String a = ab;不同,(a == b)是比较对象引用,因此不相等,结果false 对java的String有一定了解的通常这样回答。 3。true String a = ab;创建了新的对象ab; 再执行String b = a + b;结果b=ab,这里没有创建新的对象,而是从JVM字符串常量池中获取之前已经存在的ab对象。因此a,b具有对同一个string对象的引用,两个引用相等,结果true。 能回答出这个答案的,基本已经是高手了,对java中的string机制比较了解。 很遗憾,这个答案,是不够准确的。或者说,根本没有运行时计算b = a + b;这个操作。实际上运行时只有String b = ab; 3的观点适合解释以下情况: String a = ab; String b = ab; System。out。println((a == b));如果String b = a + b;是在运行期执行,则3的观点是无法解释的。运行期的两个string相加,会产生新的对象的。(本文后面对此有解释) 4。true 下面是我的回答:编译优化+ 3的处理方式 = 最后的true String b = a + b;编译器将这个a + b作为常量表达式,在编译时进行优化,直接取结果ab,这样这个问题退化 String a = ab; String b = ab; System。out。println((a == b));然后根据3的解释,得到结果true 这里有一个疑问就是String不是基本类型,像 int secondsOfDay = 24 * 60 * 60; 这样的表达式是常量表达式,编译器在编译时直接计算容易理解,而a + b 这样的表达式,string是对象不是基本类型,编译器会把它当成常量表达式来优化吗?。

Java编译器对于String常量表达式的优化是什么呢?

完整问题:Java编译器对于String常量表达式的优化是什么呢?好评回答:首先把问题摆出来,先看这个代码 String a = ab; String b = a + b; System。out。println((a == b));打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1。true a + b 的结果就是ab,这样a,b都是ab了,内容一样所以相等,结果true 一般java新人如是答。 2。false a + a会生成新的对象aa,但是这个对象和String a = ab;不同,(a == b)是比较对象引用,因此不相等,结果false 对java的String有一定了解的通常这样回答。 3。true String a = ab;创建了新的对象ab; 再执行String b = a + b;结果b=ab,这里没有创建新的对象,而是从JVM字符串常量池中获取之前已经存在的ab对象。因此a,b具有对同一个string对象的引用,两个引用相等,结果true。 能回答出这个答案的,基本已经是高手了,对java中的string机制比较了解。 很遗憾,这个答案,是不够准确的。或者说,根本没有运行时计算b = a + b;这个操作。实际上运行时只有String b = ab; 3的观点适合解释以下情况: String a = ab; String b = ab; System。out。println((a == b));如果String b = a + b;是在运行期执行,则3的观点是无法解释的。运行期的两个string相加,会产生新的对象的。(本文后面对此有解释) 4。true 下面是我的回答:编译优化+ 3的处理方式 = 最后的true String b = a + b;编译器将这个a + b作为常量表达式,在编译时进行优化,直接取结果ab,这样这个问题退化 String a = ab; String b = ab; System。out。println((a == b));然后根据3的解释,得到结果true 这里有一个疑问就是String不是基本类型,像 int secondsOfDay = 24 * 60 * 60; 这样的表达式是常量表达式,编译器在编译时直接计算容易理解,而a + b 这样的表达式,string是对象不是基本类型,编译器会把它当成常量表达式来优化吗?。

库伦定律的数学表达式。表达式中有个常量叫什么。采用国际单位制单位,其数值是多少。它的单位是什么

完整问题:好评回答:k=9.0*10^-19 单位是(N*m^2)/C^2 静电常数

“每个常量表达式的值不能相同,但次序不影响执行结果”有问题吗

完整问题:好评回答:个人觉得有问题,常量表达式的值当然是可以相同的 如 int x=2; ? int y=2; //二个常量表达式的值都是2,完全是可以的

C语言中switch()语句形式中case只加常量表达式但不加语句是什么意思?

完整问题:C语言中switch()语句形式中case只加常量表达式但不加语句是什么意思?好评回答:表示几个case共用一条/组语句。即它与下面离它最近那个有语句的case使用相同的语句。case 1:case 2:case 3: printf(123); break;则不论1/2/3都输出123
后台-插件-广告管理-内容底部广告位PC端
后台-插件-广告管理-内容底部广告位手机端

评论

全部评论