在下面的循环中执行(a)中的break语句之后,执行哪个语句?显示输出。在(b)中的continue语句在以下循环中执行后,将执行哪个语句?显示输出。
答案:
执行(a)中的break语句之后,执行System.out.println(i);
输出为:
1
2
1
2
2
3
在(b)中的continue语句在以下循环中执行后,将执行语句j++
输出为:
1
2
1
2
2
3
创建一个包含“Welcome to Java”这个字符串,可以使用如下两种方法:
String s = "Welcome to Java";
String s = new String("Welcome to Java");
哪种方法更好?为什么?
答案:
第一种方法更好。
原因:第一种方法创建的是一个字符串文本变量,JVM对具有相同字符序列的字符串文本会创建唯一的实例,这样提高效率和节省内存。但方法二,使用多少个new关键字,就会创建多少个对象,即使字符串的值相同。
下列哪项陈述是有效的?
答案:
int[][] y = new int[3][];
int[][] z = {{1,2}};
int[][] m = {{1,2},{2,3}};
int[][] n = {{1,2},{2,3},};
是有效的
方法getMessage()执行声明操作?
不是执行声明操作,是返回对象的相关描述说明。
程序阅读题
当类的字节码进入内存时,类中的静态块会立即被执行。执行下列程序了解静态块。
public class E{
public static void main(String [] args){
AAA a= new AAA();
System.out.println("正了解静态块结构");
}
static{
System.out.println("最先执行的静态块结构");
}
}
class AAA{
static{
System.out.println("AAA中的静态块结构");
}
}
答案:
最先执行的静态块结构
AAA中的静态块结构
正了解静态块结构
下列那个是正确的接口?
答案:
d
下列代码错在哪里?请详细说明,并修改它。
答案:
当输入的score在60.0及以上时,永远输出D
可以修改成这样:
if(score >= 90.0)
System.out.print("A");
else if(score >= 80.0)
System.out.print("B");
else if(score >= 70.0)
System.out.print("C");
else if(score >= 60.0)
System.out.print("D");
else
System.out.print("F");
下列那条语句会抛出异常?
答案:
System.out.println(1/0);
会产生算术异常。
System.out.println(1.0/0);
不会产生异常。
判断对错?
a、 抽象类可以像非抽象类一样使用,只是不能使用new操作符从抽象类创建实例。
b、 抽象类可以扩展。
c、 非抽象超类的子类不能是抽象的。
d、 子类不能重写超类中的具体方法以将其定义为抽象方法。
e、 抽象方法必须是非静态的。
答案:
true,true,false,false,true
请描述一下构造方法和普通方法有什么不同?
不同:构造方法是一种特殊的方法。它们有三个特征: 构造方法必须与类本身同名。 构造方法没有返回类型,甚至没有void。 创建对象时,使用new运算符调用构造方法。
下列代码错在哪里?为什么?
第8行,list3类型与方法参数Object[]不匹配
编写一个将47度转换为弧度并将结果赋给变量的语句。
double d = Math.toRadians(47) ;
给出下列两个方法的定义
public static double m(double x, double y)
public static double m(int x, double y)
下列语句执行的时候哪个方法会被分别调用?
a. double z = m(4, 5);
b. double z = m(4, 5.4);
c. double z = m(4.5, 5.4);
答案:
a语句执行时,会调用public static double m(int x, double y)方法
b语句执行时,会调用public static double m(int x, double y)方法
c语句执行时,会调用public static double m(double x, double y)方法
计算并给出下列表达式的余数:
答案:
56%6=2
78%-4=2
-34%5=-4
-34%-5=-4
5%1=0
1%5=1
编程题
编写一个应用程序,给出汉字“你”“我”“他”在Unicode码表中的位置。
答案:
public class TestUnicode {
public static void main(String[] args) {
char a='你';
char b='我';
char c='他';
System.out.println("你:"+(int)a);
System.out.println("我:"+(int)b);
System.out.println("他:"+(int)c);
}
}
定义一个学生类Student,它继承自如下person类。(10分)
(1)、Student类有以下几个变量(4分):
继承自父类的变量:姓名(name),字符串类型(String);性别(sex),字符型(char);年龄(age),整型(int)。
子类新增加的变量:学号(number),长整型;三门功课的成绩:哲学(phi),整型;英语(eng),整型;计算机(comp),整型。
(2)、Student类有以下几个方法
子类新增加的方法(3分):
求三门功课的平均成绩aver():该方法没有参数,返回值类型为double型;
求三门功课成绩的最高分max():该方法没有参数,返回值为int型;
求三门功课成绩的最低分min();该方法没有参数,返回值为int型。
(3)、覆盖父类的同名方法(3分):toString() 获取学号、姓名、性别、平均分、最高分、最低分信息。
public class Person{
String name;
char sex;
int age;
public Person(){}
public Person(String s){
name=s;
}
public Person(String s,char c){
this(s);
sex=c;
}
public Person(String s,char c,int i){
this(s,c);
age=i;
}
public String toString(){
String s="姓名: "+name+" 性别:"+sex+" 年龄:"+age;
return s;
}
}
答案:
public class Student extends Person{
long number;
int phi,eng,comp;
public Student(){}
public Student(long k,String s,char c,int i,int i1,int i2,int i3){
super(s,c,i);
number=k; phi=i1; eng=i2; comp=i3;
}
public double aver(){
return(phi+eng+comp)/3.0;
}
public int max(){
int temp,max;
temp=phi>eng?phi:eng;
max=temp>comp?temp:comp;
return max;
}
public int min(){
int temp,min;
temp=phi<eng?phi:eng;
min=temp<comp?temp:comp;
return min;
}
public String toString(){
return "学号:"+number+" "+super.toString()+"\n平均分:"
+aver()+" 最高分:"+max()+" 最低分: "+min();
}
}