2--java基础及面向对象试题

JAVA基础

1、变量命名有哪些规定? 数字 字母 下划线 $符号组成

不可以使用保留字和关键字,数字不能开头 2、指出下面程序中的编译错误,并更正

int lenght = 10; System.out.println(length); int &size = 2; System.out.println(&size); int age ; System.out.println(age); 3、指出下面程序运行输出结果 int i = 100,j = 200;

boolean b = (i>j)&&(i++>100);false 100

System.out.println(b); System.out.println(i); 4、指出下面运行输出结果

int a =100;

String msg = “a=”+a;100100 System.out.ptintln(msg); msg = “”+100+200;

System.out.ptintln(msg);100200 msg = 100+200+””;

System.out.ptintln(msg);300 5、请简述for语句的执行流程

for(表达式1;表达式2;表达式3){

语句块 }

表达式一变量初始化,只执行一次,同时判断表达式2,如果为false 程序结束,如果为true 执行语句块,然后执行表达3,表达式2进行判断boolean值,同理可得 如果为false 程序结束,如果为true 执行语句块, 6、输出2-100之内的所有质数

int count=0;for(var i=2;i<=100;i++){for(var j=2;j

Int[] arr={1,2,3,4,5,6,7};

For(var i=0;i<=arr.length-1;i++){for(var

a=0;aarr[y+1]){temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp}}} 8、随机生成长度为5的int类型的数组,并输出

Int[] arr={0,1,2,3,4,5,6,7,8,9}; TreeSet tr=new TreeSet();while(tr.size()<5){int i=(int)Math.random()*10;if(i

参考答案:

类是一个概念(名词)抽象的定义。

类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些可以被调用的功能,称之为“方法”。

类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义它

的类来决定。

10、简述JVM内存结构堆,栈和方法区别,分别存储的内容

参考答案:

JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的对象。

栈用于存放程序运行过程当中所有的局部变量。一个运行的Java程序从开始到结束会有多次方法的调用。JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应 一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。当某一个方法调用完成后,其对应的栈帧将被清除。

方法区该空间用于存放类的信息。Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区。类的各种信息都在方法区保存。 11、什么是方法的重载

参考答案:

在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。

编译器在编译时会根据其参数的不同,绑定到不同的方法。 12、什么是构造方法

参考答案:

在Java语言中可以通过构造方法实现对对象成员变量的初始化。构造方法是在类中定义的方法。但不同于其他的方法,构造方法的定义有如下两点规则:

1.构造方法的名称必须与类名同名。

2.构造方法没有返回值,但也不能写void。 13、重写和重载的区别

参考答案: 重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。 重写遵循所谓“运行期绑定”,即在运行的时候根据引用变量指向的实际对象类型调用方法。

14、下面哪种情况属于方法重载A

A )方法名相同,参数类型与个数不同 B )方法参数类型相同 C)方法参数个数相同

D )方法返回类型相同

E)方法名相同,方法参数类型与个数也相同

15、如果一个子类要继承父类,需要使用哪个关键字 D

A )this B )super C)public D )extends 16、class Card{}下列不属于Card类的构造方法的是: C

A.Card(){}

B.public Card(){}

C.public void Card(){} D.private Card(){}

17、下列说法正确的是:

class CalssA{

public int numberOfinstances;

protected ClassA(int numberOfinstances){ this.numberOfinstances=numberOfinstances; }}

Public class ExtendedA extends ClassA{ private ExtendedA(int numberOfinstances){ super(numberOfinstances); }

public static void main(String []ages){ ExtendedA ext = new ExtendedA(420); System.out.print(ext.numberOfinstances); }}

A.运行后,输出420 B.运行时抛出异常

C.编译错误,所有的构造器必须是public的 D.编译错误,构造器不能private的 18、下列不属于java语言特征的是:C

A.平台无关 B.面向对象 C.支持指针类型

D.垃圾回收机制

19、下列代码的输出结果是:(C)

public class A{ Public void info(){

System.out.println(“A info”); } }

public class B extends A{ public void info(){

System.out.println(“B info”) }

Public static void main(String[]ages){B b = new B(); A a =b; a.info();}} A. B info A info B. A info B info C. A info D. B info

20、下列输出结果是:FOO

class Foo{ public static void test(){ System.out.println(\}

class Moo extends Foo{ public static void test(){

System.out.println(\} }

public static void main(String[] args) { Foo ff = new Moo();ff.test(); }

21、以下描述不正确的是?(C)

A. final class不能被继承 B. final变量不能被修改

C. final成员变量不可以在构造方法中赋值 D. final方法不能被覆盖(overriden) 22、以下描述不正确的是?

接口的所有成员都应该公开,所以是 public 接口不能实例化,所以只有静态成员: static 接口的成员一定应该是常量,所以是 final。

A. abstract class一定有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(int x, int y) { return \

public String doit(int[] vals) { return \

public static void main(String[] args) { Foo f=new Foo();

System.out.println(f.doit(4, 5)); } }

A.代码public String doit(int[] vals) {行,编译出错

B.代码System.out.println(f.doit(4, 5));行,抛出运行时异常

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4