途牛java面试题
途牛java面试题 QUESTION NO: 1 publicclass Test1 { publicstaticvoid changeStr(String str){ str="welcome"; } publicstaticvoid main(String args) { String str="1234"; changeStr(str); (str); } } //输出结果:1234 //这里虽然是一个静态方法,但是里面的变量是一个局部变量, //所以这里不因为是静态方法,就误认为里面的变量也是静态变量了 QUESTION NO:2 publicclass Test2 { staticboolean foo(char c) { (c); returntrue; } publicstaticvoid main(String argv) { int i = 0; //for(65;88&&(i for (foo('A'); foo('B') && (i i++; foo('D'); } } } /* What is the result? A. ABDCBDCB B. ABCDABCD C. Compilation fails. D. An exception is thrown at runtime. //输出结果是:ABDCBDCB 分析:FOR循环里面讲究的条件要为真,与你的判断式是什么没有关系 就像这里,虽然是打印的字母,但是却不是false,所以可以执行 第一次进行循环: foo('A')打印字母A,(注:这里不是false条件就默认为true条件) foo('B')打印字母B,i=0,比较(i foo('C')打印字母C 第二次循环: foo('B')打印B,i=1,比较(i foo('C')打印字母C 第三次循环: foo('B')打印字母B,i=2,比较(i */ QUESTION NO: 3 1. class A { 2. protected int method1(int a, int b) { return 0; } 3. } Which two are valid in a class that extends class A? (Choose two) A. public int method1(int a, int b) { return 0; } B. private int method1(int a, int b) { return 0; } C. private int method1(int a, long b) { return 0; } D. public short method1(int a, int b) { return 0; } E. static protected int method1(int a, int b) { return 0; } publicclass B extends A{ /** *@paramargs */ //can not reduce the visibility of the inherited method from A //即不能够使从类A中继续来的方法的可见性降低 //private int method1(int a, int b) { return 0; } //This static method cannot hide the instance method from A //静态方法不能够隐藏继承于A的实例 //static protected int method1(int a, int b) { return 0; } //返回类型与A中的该方法不一致 //public short method1(int a, int b) { return 0; } /** *总结:类的继承中,如果要想重载父类的方法,必须要和父类中的返回类型、可见性等等都要操作一致 *否则,程序就会报错。一定遵守子类要遵从于父类的原则 *而我选择的答案居然是privateintmethod1和stat