Java复习第二天---JavaSE基础(一)

2014-11-23 19:07:45 · 作者: · 浏览: 66

【1】以下关于 JVM 的叙述,哪些项正确?

A.JVM 运行于操作系统之上,它依赖于操作系统

B.JVM 运行于操作系统之上,它与操作系统无关

C.JVM 支持 Java 程序运行,它能够直接运行 Java 字节码文件

D.JVM 支持 Java 程序运行,它能够直接运行 Java 源代码文件

扩展名为.java的是源代码文件(文本文件):开发时编写代码的文件

扩展名为.class的是字节码文件(二进制):系统运行时执行的文件

【2】下列选项中正确的表达式是:

A.byte b = 128; 【-128~127 一个字节】

B.boolean n = null; 【null可以给所有的引用数据类型赋值,不能给基本数据类型赋值】

C.double d = 0.313d; 【0.313默认为double类型,可以省略,加上也不是错的】

D. float f = 0.823;【0.823默认为double类型,而double类型在内存中占4个字节,而float类型占2个字节,所以不能直接赋值,float f = 0.823f;表面它是一个float类型的数据才能赋值】

基本数据类型

整数型:byte、short、int、long

小数型:float、double

字符型:char

布尔型:boolean

基本数据类型对应的包装类型,包装类型能够提供作为“类”才具有的一些功能

整数型:Byte、Short、Integer、Long

小数型:Float、Double

字符型:Character

布尔型:Boolean

基本数据类型和引用类型的区别,基本数据类型的值保存在栈内存当中,引用数据类型的值是在堆内存中开辟的一块空间,栈内存中保存的是这块空间的地址

【3】下列标识符哪个是合法的( )

A.class 【关键字】

B.$abc 【$的存在是为了照顾有PHP开发背景的程序员】

C.1234 【不能以数字开头】

D._name age 【以_开头是可以的,标识符中间不能有空格】

标识符:我们程序员自己起名字的地方――变量、类、方法、包

规则:可以以字母、数字、下划线、$组成,不能以数字开头

规范:

①变量:驼峰式命名,首字母小写 appleBoy

②类(接口):驼峰式命名,首字母大写 PeopleStudy

③方法:和变量一样

④包:所有字母小写

【4】你想一个类存取同一个包中的另一个类中成员,哪一个存取修饰符限制的最严格

A.public 【类内部√ 同包√ 子类√ 包外√】

B.private 【类内部√ 同包× 子类× 包外×】

C.protected 【类内部√ 同包√ 子类√ 包外×】

D.transient 【这不是一个权限修饰符,是这里的一个干扰项】

E.不需要任何修饰符 【类内部√ 同包√ 子类× 包外×】

【5】

1. public class Test {

2. int x= 12;

3. public void method(int x) {

4. x+=x;

5. System.out.println(x);

6. }

7. }

Given:

34. Test t = new Test();

35. t.method(5);

What is the output from line 5 of the Test class

A. 5 B. 10 C. 12 D. 17 E. 24

【6】下列选项中的表达式哪个返回true?

A."john" ! = "john"

B."john".equals("john")

C."john" = "john"。

D."john".equals(new Button("john"))

字符串的比较:使用“==”比较是不安全的,“==”双等号比较的内容,对于基本数据类型来说是他们的值,对引用数据类型来说比较的是内存引用地址,总之就是栈内存中的值

比较字符串:要使用equals()方法,比较两个字符串的内容

【7】编译,运行下列代码后的结果是:

public class Test{

public static void main(String args[]){

int age;

age = age+1;

System.out.println(“The age is”+age);

}

}

A. 编译,运行后没有输出

B. 编译,运行后输出:The age is 1

C. 能通过编译,但运行时产生错误

D. 不能通过编译

局部变量要初始化后才能使用,这一点和成员变量不同,成员变量在类加载时就会被初始化。

【8】若在一个for语句中加入break语句,它可以________

A.对for语句执行没有影响

B.中断本次循环,进入下一次循环 continue

C.退出for循环,执行for语句后面的语句

D.以上说法均不对

【9】Given:

55. int []x= {1, 2,3,4, 5};

56. int y[] =x;

57. System.out.println(y[2]);

Which is true

A. Line 57 will print the value 2.

B. Line 57 will print the value 3.

C. Compilation will fail because of an error in line 55.

D. Compilation will fail because of an error in line 56.

【10】如果编译和运行下面的程序会有什么结果:

public class Q {

public static void main(String argv[]){

int anar[]= new int[5];

System.out.println(anar[0]);

}

}

A. Error: anar 没有被初始化

B. null

C. 0 数组元素创建时,系统会根据其数据类型分配初始值

D. 5

【11】

下面的代码能打印出的结果为:
int i=1;

switch (i) {

case 0:

System.out.println("zero");

break;

case 1:

System.out.println("one");

case 2:

System.out.println("two");

default:

System.out.println("default");

}

A. one B.one, default C.one, two, default D.Default

switch结构进入后,如果没有遇到break,则会一直执行到default,如果任何一个分支都没有进入,则执行default对应的代码

【12】

下面的程序片断中

String a = “ABCD”;

String b = a.toLowerCase();

b.replace(‘a’, ‘d’);

b.replace(‘b’,’c’);

System.out.println(b);

编译运行结果是什么?

A.abcd

B.ABCD

C.dccd

D.dcba

E.编译错误

F.运行时抛出异常

//在Java中,字符串是一个不可改变的字符序列

String a = "ABCD";

//toLowerCase()并没有改变原来的字符串,只是返回一个改变以后的字符串

String b = a.toLowerCase();

//说明a本身并没有改变

System.out.println("a="+a);

//b接受了a改变后的值

System.out.println("b="+b);