栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

Java代码差错题

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java代码差错题

1.abstract class Name {private String name;public abstract boolean isStupidName(String name) {}}这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。2.public class Something {void doSomething () {private String s = “”;int l = s.length();}}有错吗?答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.abstract class Something {private abstract String doSomething ();}这好像没什么错吧?答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎 么可以用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。4.public class Something {public int addOne(final int x) {return ++x;}}这个比较明显。答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。5.public class Something {public static void main(String[] args) {Other o = new Other();new Something().addOne(o);}public void addOne(final Other o) {o.i++;}}class Other {public int i;}和上面的很相似,都是关于final的问题,这有错吗?答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable (成员变量),而o的reference并没有改变。6.class Something {int i;public void doSomething() {System.out.println(“i = ” + i);}}有什么错呢? 看不出来啊。答案: 正确。输出的是”i = 0″。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

1.

abstract class Name {

private String name;

public abstract boolean isStupidName(String name) {}

}

这有何错误?

答案: 错。abstract method必须以分号结尾,且不带花括号。

2.

public class Something {

void doSomething () {

private String s = “”;

int l = s.length();

}

}

有错吗?

答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量

(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。

3.

abstract class Something {

private abstract String doSomething ();

}

这好像没什么错吧?

答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎 么可以用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。

4.

public class Something {

public int addOne(final int x) {

return ++x;

}

}

这个比较明显。

答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。

5.

public class Something {

public static void main(String[] args) {

Other o = new Other();

new Something().addOne(o);

}

public void addOne(final Other o) {

o.i++;

}

}

class Other {

public int i;

}

和上面的很相似,都是关于final的问题,这有错吗?

答案: 正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference

(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable (成员变量),而o的reference并没有改变。

6.

class Something {

int i;

public void doSomething() {

System.out.println(“i = ” + i);

}

}

有什么错呢? 看不出来啊。

答案: 正确。输出的是”i = 0″。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/359473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号