1、 变量命名有哪些规定?
2、 指出下面程序中的编译错误,并更正 int lenght = 10; System.out.println(length; int &size = 2; System.out.pri ntln(&size; int age ; System.out.pri ntl n( age; 3、 指出下面程序运行输出结果 int i = 100,j = 200; boolean b = (i>j&&( i++>100;
System.out.println(b; System.out.println(i; 4、 指出下面运行输出结果 int a =100; Stri ng msg =
“ a=” +a;
System.out.pt intln( msg; msg = “” +100+200; System.out.pt intln( msg; msg = 100+200+ ””; System.out.pt intln( msg; 5、 请简述for语句的执行流程 for(表达式1;表达式2;表达式3{ 语句块 }
6输出2-100之内的所有质数 7、冒泡排序 8、 随机生成长度为5的int类型的数组,并输出
9、 什么是类 参考答案:
类是一个概念(名词抽象的定义。 类定义了该类型对象的数据结构,称之为 调用的功能,称之为方法”
成员变量”同时,也定义了一些可以被
类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定 义它的类来决定。 10、
简述JVM内存结构堆,栈和方法区别,分别存储的内容
参考答案:
JVM会在其内存空间中开辟一个称为 堆”的存储空间,这部分空间用于存储使用 new关键字创建的对象。
栈用于存放程序运行过程当中所有的局部变量。一个运行的 Java程序从开始到结 束会有多次方法的调用。JVM会为每一个方法的调用在栈中分配一个对应的空 间,这个空间称为该方法的栈帧。一个栈帧对应 一个正在调用中的方法,栈帧中 存储了该方法的参数、局部变量等数据。当某一个方法调用完成后,其对应的栈帧 将被清除。
方法区该空间用于存放类的信息。Java程序运行时,首先会通过类装载器载入类文 件的字节码信息,经过解析后将其装入方法区。类的各种信息都在方法区保存。 11、
什么是方法的重载
参考答案:
在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载 (overload。
编译器在编译时会根据其参数的不同,绑定到不同的方法。
12、 什么是构造方法
参考答案:
在Java语言中可以通过构造方法实现对对象成员变量的初始化。构造方法是在类 中定义的方法。但不同于其他的方法,构造方法的定义有如下两点规则: 1•构造方法的名称必须与类名同名
2.构造方法没有返回值,但也不能写
void。
13、 重写和重载的区别
参考答案:
重载遵循所谓编译期绑定”即在编译时根据参数变量的类型判断应该调用哪个方 法。 重写遵循所谓 运行期绑定”即在运行的时候根据引用变量指向的实际对象类型调 用方法。 14、
下面哪种情况属于方法重载
A )方法名相同,参数类型与个数不同 B) 方法参数类型相同 C) 方法参数个数相同 D )方法返回类型相同
E)方法名相同,方法参数类型与个数也相同 15、
如果一个子类要继承父类,需要使用哪个关键字
A ) this B ) super C) public D ) extends 16、
class Card{}下列不属于Card类的构造方法的是:
A. Card({} B. public Card({} C. public void Card({} D. private Card({} 17、
下列说法正确的是:
class CalssA{
public int nu mberOfi nsta nces;
protected ClassA(i nt nu mberOfi nsta nces{ this .nu mberOfi nsta nces=nu mberOfi nsta nces; }}
Public class Exte ndedA exte nds ClassA{ private Exte ndedA(i nt nu mberOfi nsta nces{ super( nu mberOfi nsta nces; }
public static void main( Stri ng []ages{ Exte ndedA ext = new Exte ndedA(420; System.out.pri nt(ext. nu mberOfi nsta nces; }}
A. 运行后,输出420 B. 运行时抛出异常
C. 编译错误,所有的构造器必须是 public的 D. 编译错误,构造器不能private的 18、
下列不属于java语言特征的是:
A. 平台无关 B. 面向对象 C. 支持指针类型
D. 垃圾回收机制
19、 下列代码的输出结果是:(
A info ” ;}}
public class A{Public void in fo({System.out.pri ntln( public class B exte nds A{public void in fo({System.out.pri ntln(
Public static void main(String[]ages{B b = new B(; A a =b; a.info(;}} A. B info A info
”}B info
B. A info B info C. A info D. B info
20、 下列输出结果是:
class Foo{ public static void test({System.out.pri ntl n(\"Foo\";}}
class Moo exte nds Foo{public static void test({System.out.pri ntl n(\"Moo\";}} public static void main(String[] args {Foo ff = new Moo(;ff.test(; } 21、 以下描述不正确的是?() A. fin al class不能被继承 B. final变量不能被修改
C. final成员变量不可以在构造方法中赋值 D. final方法不能被覆盖(overriden 22、 以下描述不正确的是?
A. abstract clas厂定有 abstract method(s B. abstract class可以没有 abstract method(s C. 定义abstract class的目的是为了被继承 D. interface 中定义的方法全是 abstract methods E. interface中定义的变量全部是final static变量 23、 一个匿名内部类不可能是? A. 继承其他的类 B. 实现了某一接口 C. 定义了构造方法 D. 可以使用成员变量
24、下面关于java语言中方法的说法错误的是:
A. 方法调用时参数类型必须符合方法的定义 B. 参数传递是值传递的方式
C. 如果方法没有返回值必须声明返回为
void
D. 如果方法定义为返回 void,则方法中不能出现 return语句
25、 下面运行的结果是:
public class Foo { public String doit(i nt x, int y { retur n \"a\"; } public String doit(int[] vals { return \"b\"; }
public static void main( Stri ng[] args { Foo f=new Foo(; System.out.pri ntl n( f.doit(4, 5; }}
A. 代码 public String doit(int[] vals {行,编译出错
B. 代码 System.out.println(f.doit(4, 5;行,抛出运行时异常 C. 输出:a D. 输出:b
26、 关于下列代码说法正确的是: public class Foo {
public int add(i nt a, int b { return a + b; }
public static void main( Stri ng[] args { Foo foo = n ull;
System.out.println(foo.add(10, 20; } }
A. 编译错误
B. 正常运行,但无结果输出
C. 运行输出:30
D. 运行时抛出 NullPointerException 异常 27、 下列说法正确的有: A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名 C. co nstructor在一个对象被实例化时执行 D. —个 class只能定义一个 constructor
28、 关于Java中继承的特点,下列说法正确的是: A. 使类的定义复杂化
B. Java只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的 C. 子类继承父类的所有成员变量和方法,包括父类的构造方法 D. 不可以多层继承,即一个类不可以继承另一个类的子类 29、 下列程序运行结果是?
public static
A, k
uln(String[) ■xgrU {
SO ;
I
class A{
■ teat 0; I public void teat ()[
Sy 3 tn. u C , pr la tin (B«1 IOWQT Id11);
I
I
B extends
lot 1B10:
BO( public
test()(
>
Syatoi. r ijf . primtii] (1) j
>1
I
30、 请看下列代码 class ClassA {}
class ClassB exte nds ClassA {} class ClassC exte nds ClassA {} public class Test{
public static void main( Stri ng[] args { ClassA p0 = new ClassA(; ClassB p1 = new ClassB(; ClassC p2 = new ClassC(; ClassA p3 = new ClassB(; ClassA p4 = new ClassC(; <插入代码> } }
下列选项中放置在 <插入代码〉处,使程序编译正确的是: A. pO = p1; B. p1 =p2; C. p2 = p4; D. p2 = (ClassCp1; 31、
程序输出的结果是
class One { public One( { System.out.pri nt(1; }}
class Two exte nds One { public Two( { System.out.pri nt(2; }} class Three exte nds Two { public Three( { System.out.pri nt(3; }}
public class Numbers { public static void main( Stri ng[] argv { new Three(; }} A. 1 B.3 C.123 D.321 32、
下面代码运行结果是:
public class Ani mal { public String no ise( { retur n \"peep\"; }
public static void main( Stri ng[] args { Ani mal ani mal = new Dog(; Cat cat = (Cata ni mal; System.out.pri ntln( cat .no ise(; }}
class Dog extends Animal { public String noise( { return \"bark\"; }} class Cat extends Animal { public String noise( { return \"meow\"; }}
A. peep B. bark C. meow
D. 抛出运行时异常 33、
下面代码运行结果是:
class SimpleCalc { public int value; public void calculate( { value += 7; }} public class MultiCalc exte nds SimpleCalc { public void calculate( { value -= 3; } public void calculate(int multiplier { calculate(; super.calculate(; value *= multiplier; } public static void main( Stri ng[] args { MultiCalc calculator = new MultiCalc(; calculator.calculate(2;
System.out.println(\"Value is: \" + calculator.value; }}
A. Value is: 8 B. Value is: -8 C. Value is: 12 D. Value is: -12 34、
下列数组创建和初始化的方式不正确的是:
A. public class Test02 {
static final in t[] a = { 100,200 };} B. public class Test02 { static final in t[] a; static { a=new in t[2]; a[0]=100;
a[1]=200; }}
C. public class Test02 { final in t[] a; public Test02({ a=new in t[2]; a[0]=100; a[1]=200; }} D. public class Test02 { static final in t[] a; static void in it( { a = new in t[3]; a[0]=100; a[1]=200; }}
35、请看下列代码:
public abstract class A { abstract void a1(; void a2( { }} class B exte nds A { void a1( { } void a2( { }} class C exte nds B { void c1( { }} 和
A x = new B(; C y = new C(; A z = new C(; 下列选项中属于多态形式调用方法的是: A. x.a2(; B. z.a2(; C. z.c1(; D. y.c1(;
36、程序执行的结果是: public class Test{ int x = 12;
public void method(i nt x { x += x;
System.out.pri ntln(x; }
public static void main( Stri ng[] args { Test t = new Test(; t.method(5; }} A.
5 B.10 C.12 D.17
37、程序执行的结果是:
class Foo { public int a; public Foo( { a = 3; } public void addFive( { a += 5; }} class Bar exte nds Foo { public int a; public Bar( { a = 8; }
public void addFive( { this.a += 5; }} public class TestFoo {
public static void main( Stri ng[] args { Foo foo = new Bar(; foo.addFive(;
System.out.pri ntln (\"Value: \" + foo.a; }} A. Value: 3 B. Value: 8 C. Value: 13
D. Value: 18 38、程序运行结果 public class Test {
public static void main( Stri ng [] args{ Child c = new Child(; }} class Father{ public Father({
System.out.println('父类无参构造函数\" }
public Father(Stri ng n ame{
System.out.println('父类有参构造函数\" }}
class Child exte nds Father{ public Child({ this(\"dd\";
System.out.println(”子类无参构造函数\" }
public Child(Stri ng n ame{ super(\"dd\";
System.out.println(”子类有参构造函数\" }}
A.父类有参构造函数
子类有参构造函数 子类无参构造函数 B. 父类无参构造函数
子类有参构造函数 子类无参构造函数 C. 子类有参构造函数 子类无参构造函数 父类无参构造函数 D. 子类无参构造函数 子类有参构造函数 父类无参构造函数
39、下列代码的运行结果是: public class Animal {
public String no ise( { retur n \"peep\"; } public static void main( Stri ng[] args { Cat cat =nu II;
Ani mal ani mal = new Dog(; if (ani mal in sta nceof Cat { cat = (Cat ani mal;
System.out.pri ntln( cat .no ise(; }else{
System.out.println(\"animal is not Cat's instanee\"; }}}
class Dog exte nds Ani mal { public String no ise( { return \"bark\"; }}
class Cat exte nds An imal { public String no ise( {
return \"meow\"; }} A. peep B. bark C. meow
D. ani mal is not Cat's in sta nee
因篇幅问题不能全部显示,请点此查看更多更全内容