我在其中一个认证考试中看到了这段代码:
public class SimpleClass
{
int num;
final static void main(final String args[])
{
String s1="new";
String s2="String";
String s3="Creation";
System.out.println(s1+s2+s3);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道最后的方法是无法覆盖的方法.我也知道如果方法的通常签名 main 被更改,它将被JVM视为任何其他普通方法,而不是main().
但是,给我的选项是:
1> Code won't compile
2> Code will throw an exception
3> will print newStringCreation.
Run Code Online (Sandbox Code Playgroud)
在eclipse IDE上运行此程序是不可能的.任何人都可以解释应该是什么答案,为什么?
好的,让我提出这样的问题 - 当我执行我的程序时,会发生什么?我应该选择以上3个选项中的哪一个?
我有这个代码,
class Test{
public static void main(String args[])
{
Boolean a;
Boolean b;
char [] c={'S','t','r','i','n','g'};
a=("String".replace('g','G')=="String".replace('g', 'G'));
b=("String".replace('g','g')=="String".replace('g', 'g'));
System.out.println("---"+a);
System.out.println("---"+b);
System.out.println(c.toString()=="String");
}
Run Code Online (Sandbox Code Playgroud)
输出是---假 - 真假
我确实通过oracle访问了JLS文档.replace方法:返回一个新字符串,该字符串是用newChar替换此字符串中所有出现的oldChar.如果字符oldChar未出现在此String对象表示的字符序列中,则返回对此String对象的引用.否则,将创建一个新的String对象,该对象表示与此String对象表示的字符序列相同的字符序列,但每次出现的oldChar都会被newChar的出现替换.
当O/p为假时为什么O/p秒为真?
JLS文档说的是toString方法:这个对象(已经是一个字符串!)本身就返回了.那么为什么O/p第三是真的呢?
任何人都可以向我解释一下
在此先感谢GPAR
默认构造函数将所有实例和类成员初始化为其默认值。
上面的说法是对还是错?
我有这个代码,
class Test
{
public static void main(String args[])
{
int a=--4-2*2/9-3;//Line 1
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么编译时错误在--4?请不要建议我 - ( - 4).我只想弄清楚,为什么上面的代码是编译时错误,如果我将第1行的代码更改为,a = - -4-2*2/9-3,O/p为1.即 - (-4).有一秒钟,我想念它,它必须与 - =即a = a-(表达式的其余部分)相同.它也给出了与++运算符相同的错误!任何人都可以解释一下吗?