1、以下方法,哪个不是对add方法的重载?
public class Test
{
public void add( int x,int y,int z){}
}
A public int add(int x,int y,float z){return 0;}
B public int add(int x,int y,int z){return 0;}
C public void add(int x,int y){}
D 以上都不是
此题选 B。重载指的是函数名相同,形参类型和形参个数不同,B 选项函数名和参数类型都相同,所以选B。
2、如下代码,执行test()函数后,屏幕打印结果为()
public class Test2{
public void add(Byte b){
b = b++;
}
public void test(){
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + "");
}
}
A 127 127
B 128 127
C 129 128
D 以上都不对
此题选D。add()方法修改值不会起任何作用,add(++a)会使a数值越界成-128,所以输出应该为 -128 127.
3、默认类型等价表示是哪一项:
public interface IService {String NAME="default";}
A public String NAME="default";
B public static String NAME="default";
C public static final String NAME="default";
D private String NAME="default";
此题选C。接口中的变量默认是public static final 的,方法默认是public abstract 的。
4、有以下类定义:
abstract class Animal{
abstract void say();
}
public class Cat extends Animal{
public Cat(){
System.out.printf("I am a cat");
}
public static void main(String[] args) {
Cat cat=new Cat();
}
}
A I am a cat
B Animal能编译,Cat不能编译
C Animal不能编译,Cat能编译
D 编译能通过,但是没有输出结果
此题选B。当一个实体类集成一个抽象类,必须实现抽象类中的抽象方法。所以Cat编译不通过。
5、已知如下类说明:
public class Test{
private float f=1.0f;
int m=12;
static int n=1;
public static void main(String args[]){
Test t=new Test();
}
}
A t.f = 1.0
B this.n
C Test.m
D Test.n
此题选D。类变量可以通过类变量直接调用。A:1.0的默认类型是double类型,float f=1.0编译不通过,float f=1 可以。B:static中没有对象的方法,this不存在。C:m不是static的,需要依赖对象调用。
6、int i=5;
int s=(i++)+(++i)+(i--)+(--i);
s=( )//s 的值是什么?
i = 5 , i++ = 5 + 1 = 6;
i = ++i = 6 + 1 = 7;
i = 7 , i -- = 7 - 1 = 6;
i = --i = 6 - 1 = 5;
s = 5 + 7 + 7 + 5 = 24.
7、如下语句通过算术运算和逻辑运算之后i和 j的结果是( )
int i=0;
int j=0;
if((++i>0)||(++j>0))
{ //
打印出i和j的值。
}
A i=0;j=0
B i=1;j=1
C i=0;j=1
D i=1;j=0
此题选D。短路求值法,当第一个逻辑表达式可以确定结果时,将不再进行剩余表达式的运算。++i > 0.
8、instanceof运算符能够用来判断一个对象是否为:
A 一个类的实例
B 一个实现指定接口的类的实例
C 全部正确
D 一个子类的实例
此题选C。instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例。
Github出问题了,还没弄好。。。