一些Java面试题,求答案
试题1
下面各选项可以在A的子类中使用的是()
class A {
protected int method (int a, int b) {
return 0;
}
}
A.
public int method (int a, int b) { return 0; }
B.
private int method(int a, int b) { return 0; }
C.
private int method(int a, long b) { return 0; }
D.
public short method(int a, int b) { return 0; }
试题2
下列代码执行的结果是:
class Base
{
void test() {
System.out.println("Base.test()");
}
}
public class Child extends Base {
void test() {
System.out.println("Child.test()");
}
public static void main(String[] a) {
Child anObj = new Child();
Base baseObj = anObj;
baseObj.test();
}
}
A.
Child.test()
Base.test()
B.
Base.test()
Child.test()
C.
Base.test()
D.
Child.test()
试题3
关于以下程序代码的说明正确的是( ):
1.class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x--;
11. System.out.println(“x=”+x);
12. }
13.}
A.
5行不能通过编译,因为引用了私有静态变量
B.
10行不能通过编译,因为x是私有静态变量
C.
程序通过编译,输出结果为:x=103
D.
程序通过编译,输出结果为:x=102
试题4
关于java.lang.String类,以下描述正确的一项是( )
A.
String类是final类故不可以继承;
B.
String类是final类故可以继承;
C.
String类不是final类故不可以继承;
D.
String类不是final类故可以继承;
试题5
下列关于interface的说法正确的是:( )
A.
interface中可以有private方法
B.
interface中可以有final方法
C.
interface中可以有方法实现
D.
interface可以继承其他interface
试题6
以下程序正确的输出是( )
public class FatherClass {
public FatherClass() {
System.out.println("FatherClass Create");
}
}
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass Create");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
A.
FatherClass Create
FatherClass Create
ChildClass Create
B.
FatherClass Create
ChildClass Create
FatherClass Create
C.
ChildClass Create
ChildClass Create
FatherClass Create
D.
ChildClass Create
FatherClass Create
FatherClass Create
试题7
请看如下代码
class Person {
private int a;
public int change(int m){return m;}
}
public class Teacher extends Person{
public int b;
public static void main(String arg[]){
Person p = new Person();
Teacher t = new Teacher();
int i;
// point x
}
}
下面哪些放在// point x行是正确的?
A.
i = b;
B.
i = p.a;
C.
i = p.change(30);
D.
i = t.b;
试题8
下列选项中放置于“《插入代码》”处会编译出错的是
interface IFace{}
class CFace implements IFace{}
class Base{}
public class ObRef extends Base{
public static void main(String argv[]){
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
《插入代码》
}
}
A.
o1=o2;
B.
b=ob;
C.
ob=b;
D.
o1=b;
试题9
已知类Student的定义如下:
public class Student {
String name;
Student(String name) {
this.name = name;
}
《插入代码》
}
main方法代码:
Student stu1=new Student(new String(“tom”));
Student stu2=new Student(“tom”);
System.out.print(stu1==stu2);
System.out.println(stu1.equals(stu2));
如果控制台的输出结果是false true,那么《插入代码》处填入的代码正确的是:
A.
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student stu = (Student) obj;
return stu.name==this.name;
} else {
return false;
}
}
B.
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student stu = (Student) obj;
return stu.name.equals(this.name);
} else {
return false;
}
}
C.
public boolean equals(Object obj) {
if (obj instanceof Student) {
return obj.name.equals(this.name);
} else {
return false;
}
}
D.
public boolean equals(Object obj) {
if (obj instanceof Student) {
return obj.name==this.name;
} else {
return false;
}
}
试题10
指出下列程序运行的结果
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
A.
good and abc
B.
good and gbc
C.
test ok and abc
D.
test ok and gbc
[解决办法]
楼主参考一下:
A
D
D
A
D
A
C D
C
D
A
[解决办法]
1 C
2 D
3 D
4 A
5 D
6 A
7 CD
8
9
10 B
------解决方案--------------------
1. ac
2.d
3.d
4.a
5.d
6.a
7.cd
8.c
9.b
10.b
[解决办法]
1.A 子类方法访问权限要比父类高,D的返回类型矛盾.
2.C 只是调用了Base类的test方法,别的都是障眼法
3.D private对类本身没有影响,静态属性用了实例调用.+3次-1次
4.A final类不能被继承
5.D
6.A 子类new对象的时候首先调用父类构造方法,如果有爷爷先调用爷爷的
7.CD b是static,不能直接=. a是private的.只能被类自己调用
8.C 不能向上转型.
9.B 重写equals方法
10.B 要记住String是不能改变的.
经过测试的答案.
[解决办法]
1.A
2.D
3.D
4.A
5.D
6.A
7.CD
8.C
9.B
10.B
[解决办法]