JAVA专业基础试题
题型:
一填空题、二单选题、三多选题、四判断题、五名词解释题、六辨题、七简单题、八论述题、九材料分析题 (九类题型在本课程题库中都要涉及到)
第一单元
1 下列说法正确的是( C )。
A. java Applet 程序必须在浏览器中执行
B. java 应用程序必须在浏览器里执行
C. java Applet 程序不一定在浏览器中执行
D. java 应用程序可以在浏览器中执行
2 Windows下配置环境变量时与其他的路径进行分割的符号是( A )
A.; B.。 C.: D.%
3 JVM的含义是( D )。
A. Java编译器 B. Java运行环境 C. Java开发环境 D. Java虚拟机
4 JDK和JRE的区别下面说法正确的是( A )
A.如果只是运行Java程序,可以只安装JRE,无需安装JDK
B.JDK只能运行Java程序,不能编译
C.Java程序安装JRE就可以编译Java程序
5 下面有关java代码安全性的叙述哪些是对的? [BCD]
A. 字节码校验器加载查询执行需要的所有类。
B. 运行时解释器执行代码。
C. 在运行时,字节码被加载,验证然后在解释器里面运行。
D. 类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。
第二单元
1 下列属于合法标识符的是( D )。
A.default B.#W23 C.@adef D.$341
2 下面定义不正确的是:( C )
A.int a=3+5; B.long b = 3+5; C.float f=3+5.5; D. double d=3/5;
3 下面哪些标识符是合法的 (ABC)
(A)s1 (B)$1 (C)
1 (D)1s
4 若要在程序中定义一个公用的int型的类成
员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是__final int MAX_LENGTH=1000;_________________。
5 在Java语言中,语句“boolean t=1;” 定义了boolean的类型变量t,并给它赋值为true (× )
6 请说出JAVA语言中的八种基本数据类型?
整点类型:byte short int long
浮点类型:float double
字符类型:char
布尔类型:boolean
第三单元
1 在Java中,语System.out.println(‘a’+1)的结果是( a )。(选择一项)
a) 98 b) b c) 编译错误
d) 运行错误
2 下面的代码段中,执行之后 i 和 j 的值是什么 ? ©
int i = 1;
int j;
j = i++;
A 、 1, 1 B 、 1, 2 C 、 2, 1 D 、 2, 2
3 下面Java代码的输出结果是(a)。
int num1,num2,num3;
num1=(int)4.4;
num2=(int)5.5;
num3=(int)9.9;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
a) 4 5 9
b) 5 6 10
c) 4 5 10
d) 4 6 10
4 请问,以下哪些是Java语言中的关键字? 请选择所有正确答案:(BD)
(A)run (B)default ©implement (D)import
5 在Java中声明一个字符串类型的变量str的语句是: String str; ,定义一个具有10个元素的整型数组a的语句是: int [] a=new int[10]; 。
6 解释什么是类的成员变量,局部变量,实例成员变量,类成员变量?
a) 变量定义部分所定义的变量被称为类的成员变量。
b) 在方法体中定义的变量和方法的参数被称为局部变量。 c) 成员变量又分为实例成员变量和类成员变量(static修饰)。
7 Java语言的任何类型,包括整型、浮点型、字符和布尔型都可以使用运算符“==”来比较是否相等,用运算符“!=”来判断是否不等。(√)
8 在数据转换中,以下必须要进行强制转换的是(ABC)
A.long型转int型 B.double型转int型 C.double型转float型 D.char型转int型
第四单元
*基础知识
1 在Java中,运行以下程序将输出(a)。
int num=6;
System.out.print(num++);
System.out.print(++num);(选择一项)
a) 68
b) 79
c) 78
d) 67
2 下列语句执行后,变量a、c的值分别是(B )。
int x=182;
int a,c;
c=x/100;
a=x%10;
A) 1,2 B) 2,1 C) 1.82, 2 D) 100,82
3 下列选项代码正确的有( B D )。
A、 int i=0;
if (i) {
System.out.println(“OK”); }
B、
boolean b=true; boolean b2=true; if(bb2) {
System.out.println(“OK”); }
C、 int i=1;
int j=2;
if(i1 &| j2)
System.out.println(“OK”);
D、 int i=1;
int j=2;
if (i1 || j==2)
System.out.println(“OK”);
4 已知如下定义:String s = “story”; (AD)
下面表达式合法的是
A. s += “books”; B. char c = s[1];
C. int len = s.length; D. String t = s.toLowerCase();
5 设 x =15 ,则表达式 ( x + + )/4 的值是___3_______________。
6 表达式 ““.equals(null)的结果为 true。 ( ×)
7 &和&&的区别。
答案:&是位与运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).
另外,&也可以用于逻辑运算,与&&的区别在于&是非短路运算
删除文本
第五单元
1 在Java中,以下程序的输出结果为(c)。
int num=9;
if(num++>=9){
System.out.println(++num);
}else{
System.out.println(“num++的结果不满足大于等于9”);
}(选择一项)
a) 9
b) 10
c) 11
d) num++的结果不满足大于等于9
2 如下代码:在下列的x定义中,可使上段代码输出100的有:( A)
switch(x){
case 100: System.out.println(100);break;
case 110: System.out.println(110);break;
}
A.byte x=100;
B.float x=100;
C.double x=100.0;
D.boolean x=true;
3 已知如下代码: (ABC)
switch (m) {
case 0: System.out.println(“Condition 0”);
case 1: System.out.println(“Condition 1”);
case 3: System.out.println(“Condition 3”);
case 2: System.out.println(“Condition 2”);
break;
default: System.out.println(“Other Condition”); }
当m的值为多少时输出"Condition 2"
A. 0 B. 1 C. 2 D. 3
4 请问,以下代码片断错在何处?
if(x++){
y=xz;
x/=2;
else{
y=yy;
++z;
}
请选择所有正确答案: ( BC)
(A) if条件表达式中的前缀自动递增运算符改为后缀自动递增运算符。
(B) if条件表达式的结果应为布尔型,而不是数值型。
©在else前少了一个花括号}。
(D)缺少跳出语句块的break语句.
5 以下程序段的输出结果是(三角形)
int x = 5, y = 6, z = 4;
if (x + y > z && x + z > y && z + y > x)
System.out.println(“三角形”);
else
System.out.println(“不是三角形”);
6 do…while和while循环区别在于:while循环是先判断后循环,do…while循环是先循环后判断( √)
7 下面Java代码的输出结果是__二十不悔
三十而立 ____________。
int age=21;
switch(age/10){
case 1:
System.out.println(“十岁不愁”);
case 2:
System.out.println(“二十不悔”);
case 3:
System.out.println(“三十而立”);
}
8 for循环中的break语句和continue语句的使用。
解析:很多时候,循环是为了查找某些符合条件的数据,只要找到就没有必要继续下去,称为中断循环,break语句就可以用来中断循环。而continue语句恰恰相反,是用来继续下一次循环。值得注意的是,java语言中可以再循环前面加标号,即label,然后可以使用break或continue中断或继续标号的循环。
参考答案:break可以用来中断循环,continue可以用来继续下一次循环。
第六单元
1 public class Test{
public static void main(String[] args){
int i = 5;
do{
System.out.println(i);
}while (–i>4)
}
}
执行后的输出是 :(B)
A.4 B.5 C.45 D.54
2 下列语句输出的结果是:( C )
public class X3 {
public static void main(String[] args) {
for(int i=0; i<10; i++){
if(i==5)
break;
System.out.print(i);
}
}
}
A:编译错误; B:1234;C:01234;D:12345;
3 下述程序的输出正确的是(ABC)
public class Outer{
public static void main(String args[]){
for(int i=0; i<3; i++)
for(int j=0;j<3;j++){
if(j>1)
break;
System.out.println(j+“and”+i);
}
}
}
A. 0 and 0 B. 0 and 1 C. 0 and 2 D. 0 and 3
4 下列语句中拥有跳转功能的语句是:(CD )
A.for语句
B.while语句
C.continue语句
D.break语句
5 在Java中,以下代码运行的结果是__63___。
int sum=0;
for(int i =20;i>0;i–){
if(i%3!=0){
continue;
}
sum+=i;
}
System.out.println(sum);
6 若循环变量在for语句前面已经有定义并具有循环初值,则初始语句可以为空,但分号不可省略(√)
7 for循环后括号里三个表达式分别起什么作用?
a) 1:循环初始化的时候执行,只执行一次。
b) 2:循环成立的条件。
c) 3:循环每次执行都会调用该表达式,一般做变量自增。
第七单元
1 阅读以下代码,分析代码,选择正确结果(C )
int[] a = new int[]{1,2,3,4,5,6,7};
System.out.println(a[7]);
A.输出结果是7
B.不输出任何结果
C.运行时出现异常:java.lang.ArrayIndexOutOfBoundsException
D.以上选项都不正确
2 下面正确声明一个二维数组的是( C )。
A、String [] a B、String a[] C、char a[][] D、String a[10]
3 以下声明及初始化数组方式不正确的是(AD)
A.int[] instance = new int[3]{1,2,3};
B.String[] instance = new String[]{“1”,“2”,“3”};
C.double[] instance = {1,2,3,4,5};
D.float[] instance = new float[];
4 以下哪些语句用于声明一个二维数组?(BD)
A. int a[][]=new int[10,10];
B. int a[][]=new int [10][10];
C. int a[10,10]=new int[10][10];
D. int [][]a=new int [10][10];
5 下面程序段的执行结果是(6 5 4 3 2)
int a[] = { 2, 3, 4, 5, 6 };
for (int i = a.length - 1; i >= 0; i–)
System.out.print(a[i] + “”);
6 数组x定义:String x[ ][ ]=new int[3][2]; x[0 ][0 ]=”abc”, x[0 ][1]=”12345”;
则 x.length 的值为______2___,x[0][1].length( ) 的值为__5___。
7 Java采用"数组的数组"定义多维数组,一个二维数组是由若干个一维数组组成的。( √)
8 简述什么是数组?
a) 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,
来使用数组中的数据。下标从 0 开始排序。
第八单元
1 下列运算符合法的是(A )
A.&& B.<> C.if D.:=
2 设 int x=1,float y=2,则表达式 x / y的值是:( D )
A.0 B.1 C.2 D.以上都不是
3 以下语句有语法错的是:( A )
A.int x=1;y=2;z=3
B.for (int x=10,y=0;x>0;x++);
C.while (x>5);
D.for(;?;
4 下列哪些表达式返回的是true?( AB )
A"john" == “john” B、“john”.equals(“john”)
C"john" = “john” D、“john”.equals(new Button(“john”))
5 于以下程序段,不正确的说法是( ABD )
1. String s1=“a”+“b”;
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(“= = is succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() is succeeded”);
A.行4与行6都将执行 B.行4执行,行6不执行
C.行6执行,行4不执行 C.行4、行6都不执行
6 不使用标号的break语句只能跳出当前的switch或循环结构。(√ )
7 switch语句后,default关键字起什么作用?break起什么作用?
a) default:当用户指定的表达式与任何case都不匹配的时候,执行default后的语句。 b) break:退出当前case。
第九单元
1 在Java中,以下代码运行的结果是(a)。
public static void main(String[] args){
int[] array={5,7,4,2,1};
getCountByArray(array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+” ”);
}
}
public static void getCountByArray(int[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i]%2==1){
arr[i]=0;
}
}
}(选择一项)
a) 0 0 4 2 0
b) 5 7 0 0 1
c) 5 7 4 2 1
d) 0 0 0 0 0
2 对于数组a[10],下列表示错误的是(B )
A.a[0] B.a(0) C.a[9] D.a[1]
3 在java中,运行下面代码,输入5和22后,输出结果(b)。
import java.util.Scanner;
public calss Test{{
public static void main(String[] args){
System.out.println(“请输入两个整数!”);
int[] nums=new int[2];
for(int i=0;i<2;i++){
Scanner input=new Scanner(System.in);
nums[i]=input.nextInt();
}
if(nums[0]<nums[1]){
int temp=nums[0];
nums[0]=nums[1];
nums[1]=temp;
}
System.out.printlm(“The one is” + nums[0]);
System.out.printlm(“The other is” + nums[1]);
}
}
(选择一项)
a) The one is 5
The other is 22
b) The one is 22
The other is 5
c) The one is 22
The other is temp
d) 编译错误
4 下面语句正确地声明一个整型二维数组的是 (BC)
A. int a[10][10] = new int[][];
B. int a[][] = new int[10][10];
C. int [][]a = new int[10][10];
D. int []a[] = new int[10][10];
5 在Java中,以下代码运行的结果是__45__。
int sum=0;
for(int i=1;i<30;i++){
if(i%3==0){
sum+=i;
}else if(sum>30){
break;
}
}
System.out.println(sum);
6 一个数组可以存放许多不同类型的数值。( ×)
7 break语句能在什么场景使用。
解析:break语句表示中断,不能够随便使用,只能在循环语句中或者switch语句中使用。初级工程师往往容易将break和return混淆。Return是可以再方法体中任意位置使用,可以带值返回页可以不带值返回,执行return语句后,该方法将返回,也就是方法执行结束。而break只能在循环体中或者switch的case语句中使用,不能随意使用。
参考答案:break语句可以再循环体中使用,也可以在switch的case语句中使用。
第十单元
1 下面有关java代码安全性的叙述哪些是对的? [BCD]
A. 字节码校验器加载查询执行需要的所有类。
B. 运行时解释器执行代码。
C. 在运行时,字节码被加载,验证然后在解释器里面运行。
D. 类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。
2 选出合理的标识符 ( AC)
A、 _sys1_lll B、 2mail C、 $change D、 class
3 在Java中,表示换行符的转义字符是( A )。
A.\n B.\f C.‘n’ D.\dd
4 下列程序执行的结果是:( B )
public class News {
public static void main(String[] args) {
System.out.println(1+2+ “aa”+3);
}}
A: “12aa3” B: "3aa3 " C: “12aa” D: “aa3”
5 创建类对象的运算符是__ new。
6 当把级别高的变量赋值给级别低的变量时,必须使用显示类型转换(强制类型转换)。( √)
7 当将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型转换。( √)
8 解释什么是类的成员变量,局部变量,实例成员变量,类成员变量?
a) 变量定义部分所定义的变量被称为类的成员变量。
b) 在方法体中定义的变量和方法的参数被称为局部变量。 c) 成员变量又分为实例成员变量和类成员变量(static修饰)。
第十一单元
1 下面关于类的描述错误的是(B)
A. 类的方法都由方法头和方法体组成
B. 一个Java程序可以有多个公共类
C. 一个包可以包含多个类
D. 类的实现包括类声明和类体两部分
2 下面哪一个是Java最基本的元素 (D)
A. 接口 B. 方法 C. 包 D. 对象
3 在声明类的名称时,下列描述正确的是:(ABCD )
A.不可以以数字开头。
B.可以用$开头,但不符合java的标准规范,强烈建议使用大写字母开头。
C.可以用小写字母开头,代码不会报错,但是不符合定义的标准规范,强烈建议不要使用小写字母开头。
D.类的名称提倡见名知义。
4 下面哪些说法是错误的?( ABCD )
A、用New运算符来创建的对象,在JVM退出时才会被做垃圾回收。
B、判断一个对象是否可以被垃圾回收的条件为是否还有对该对象的引用。
C、java函数的参数传递规定,所有的原始类型(如整数)和对象(使用new来创建的)都为地址传递。
D、java函数支持重载,但函数必须至少有一个参数或返回值的类型不同或个数不同。
5 下列程序的运行结果是__12345____。
public class MyClass { int a[] = { 1, 2, 3, 4, 5 };
void out() { for (int j = 0; j < a.length; j++)
System.out.print(a[j] + “”);
}
public static void main(String[] args) { MyClass my = new MyClass();
my.out(); } }
6 实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。( √)。
7 类的命名规则是什么?
a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。 b) 类名最好见名得意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。
第十二单元
1 下面关于方法的说法,不正确的是( C )。
A: Java中的构造方法名必须和类名相同
B: 方法体是对方法的实现,包括变量声明和合法语句
C: 如果一个类定义了构造方法,也可以用该类的默认构造方法
D: 类的私有方法不能被其他类直接访问
2 以下有关构造方法的说法,正确的是:( A )。
A. 一个类的构造方法可以有多个
B. 构造方法在类定义时被调用
C. 构造方法只能由对象中的其它方法调用。 D. 构造方法可以和类同名,也可以和类名不同
3 下列不属于构造方法特点的是:(BC )
A.有修饰符
B.有返回值
C.有返回类型
D.有参数
4 下列说法错误的有(ACD )
A. 在类方法中可用this来调用本类的类方法
B. 在类方法中调用本类的类方法时可直接调用
C. 在类方法中只能调用本类中的类方法
D. 在类方法中绝对不能调用实例方法
5 被关键字_final___修饰的方法是不能被当前类的子类重新定义的方法。
6 构造方法名称必须与类名相同,否则就不是构造方法( √)
7 方法是个“黑匣子”,完成某个特定的应用程序功能,并通过return返回结果,如果方法返回类型是void,return可省略不写。( √)
8 如何确定方法的返回类型?
a) 方法返回的值的类型就是方法的返回类型,如果无返回值,则返回类型为void。
第十三单元
1 以下选项中,对于包命名最为规范的是(C)
A.Com.Environment.Task
B.com.1309a.task
C.com.environment.task
D.com.values-object.task
2 修饰的属性或方法只可以被本类、本包内的类使用,应选择的修饰符是:( D)
A.public B.private C. D.protected
3 下面哪些关键字能用来控制对类成员的访问( ABC )
A)public B)protected C)private D)default
4 请问,以下哪些描述是正确的( AD)
(A)如果package语句存在,则必须出现在源文件的非空白首行。
(B)如果import语句存在,则必须出现在源文件的非空白首行。
©如果main()方法存在,则必须出现在源文件的非空白首行。
(D)如果在源文件中声明了一个public接口,则其名称必须和源文件名一致。
5 Java中类成员的限定词有以下几种:private, public, protected 。其中, public 的限定的范围最大。
6 Java程序中,如果有package语句,该语句只能有一个,并且是第一条非注释语句。(√)
7 简述java的访问权限。
a) public:公有的,任何类都可以访问。
b) protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。 c) 友好的:同一个包的类可以访问。 d) private:私有的,在同一个类中才能访问。
第十四单元
1 在类的定义中构造函数的作用是( D )。
(A)保护成员变量 (B)读取类的成员变量
(C)描述类的特征 (D)初始化成员变量
2 main()方法的返回类型是什么? [B]
A. int B. void C. boolean D. static
3 以下关于"包"的作用说法正确的是(AB)
A.避免命名冲突
B.易于管理文件
C.有助于压缩文件大小
D.方便扩展
4 在Java中导包的语句,以下选项中正确的是(AB)
A.import java.io.File;
B.import java.io.;
C.include java.io.File;
D.include java.;
5 在定义一个方法时,一般都要指明该方法的返回值类型,如果它不返回任何值,则必须将其声明成____void____
6 构造方法名称必须与类名相同,否则就不是构造方法( √)
7 如何确定方法的返回类型?
a) 方法返回的值的类型就是方法的返回类型,如果无返回值,则返回类型为void。
第十五单元
1 在Java中下列说法正确的是( C )
A) 一个子类可以有多个父类,一个父类也可以有多个子类
B) 一个子类可以有多个父类,但一个父类只可以有一个子类
C) 一个子类可以有一个父类,但一个父类可以有多个子类
D) 上述说法都不对 二
2 下列说法中错误的是(D)
A. 子类不能继承父类的构造方法
B. 任何一个类只能有一个超类
C. 子类覆盖父类中同名方法时,子类方法声明必须与父类被覆盖方法的声明一样
D. 子类可以覆盖父类中声明为final或static 的方法 二
3 下面关于继承的叙述哪些是正确的? ( AD )
A、在java中只允许单一继承。 B、在java中一个类只能实现一个接口。
C、在java中一个类不能同时继承一个类和实现一个接口。
D、java的单一继承使代码更可靠。
4 以下属性继承的作用的是:(AB )
A.代码复用
B.扩展功能
C.子类可以重写父类的方法。
D.子类在创建时,需要提前把父类创建出来。
5 在已有类的基础上,扩充属性或扩充与改写某些方法,生成新的类,这个方式称为_继承__。
6 方法的重载和重写是一样的意思,都是指在同一个类中的多个有相同方法名不同参数列表的方法( ×)
7 简述java中的继承。
答:Java中是单继承关系,也就是说一个类只能有一个父类,但是可以同时实现多个接口;对于接口本身而言,可以继承多个接口。这样做的目的就是为了阻止因为多继承而造成的的业务对象本身的可读性的降低。
第十六单元
1 以下代码运行输出是(C)
public class Person{
private String name=”Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A) 输出:Person
B) 没有输出
C) 编译出错
D) 运行出错
2 Java语言中,在类定义时用final关键字修饰,是指这个类( D )
A.子类必须实现父类未实现的方法
B.没有具体实现代码
C.必须要有实例
D.不能被继承
3 以下访问控制符控制的方法,允许同一类访问的有(ABCD)
A.default B.public C.private D.protected
4 下面关于继承的哪些叙述是正确的 (AD)
A 在java中只允许单一继承
B 在java中一个类只能实现一个接口
C 在java中一个类不能同时继承一个类和实现一个接口
D java的单一继承是代码更可靠。
5 Java中类成员的限定词有以下几种:private, public, protected 。其中, public 的限定的范围最大。
6 创建包将在当前文件夹下创建一个与包名相同的子文件夹,以存放该包中包含的所有类的.class文件( √)
7 简述java的访问权限。
a) public:公有的,任何类都可以访问。
b) protected:受保护的,同一个包的类可以访问。不同包的子类可以访问。 c) 友好的:同一个包的类可以访问。 d) private:私有的,在同一个类中才能访问。
8 简述this关键字用法。
a) this关键字使用在实例方法中,代表调用该方法的当前对象。
第十七单元
1 下面的哪些叙述为真。 [AD]
A. equals()方法判定引用值是否指向同一对象。 //不说是谁的就是默认的
B. == 操作符判定两个分立的对象的内容和类型是否一致。
C. equals()方法只有在两个对象的内容一致时返回true。
D. 类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。 //当两个独立的对象的内容和类型一致;
2 给出以下代码片段,请问以下哪些表达式的结果为true?
Double d1=new Double (10.0);
Double d2=new Double (10.0);
int x = 10;
float f=10.0f;
请选择所有正确答案:(CD)
(A) d1d2; (B) d1x; (C) fx; (D) d1.equals(d2)
3 String str1=”abc”;
String str2=new String(“abc”);
System.out.println(str1str2); 则程序运行后输出结果为:fault___
4 equals()和equalsIgnoreCase()的作用完全一样 (×)
5 对对象进行比较怎么做?为什么不用“==”?
其实如果是非String的话,==与equals并没有区别。
因为String他是重写了object的方法,所以这才有了equals比较内容,==比较地址。
第十八单元
1 关于垃圾收集的哪些叙述是对的 (B)
A 程序开发者必须自己创建一个线程进行内存释放的工作 B 垃圾收集将检查并释放不在使用的内存
C 垃圾收集允许程序开发者明确指定并立即释放该内存 D 垃圾收集能够在期望的时间释放被java对象使用的内存
2 关于垃圾收集的哪些叙述是对的? [B]
A. 程序开发者必须自己创建一个线程进行内存释放的工作。 B. 垃圾收集将检查并释放不再使用的内存。
C. 垃圾收集允许程序开发者明确指定并立即释放该内存。 D. 垃圾收集能够在期望的时间释放被java对象使用的内存。
3 关于垃圾收集的哪些叙述是对的 (B)
A 程序开发者必须自己创建一个线程进行内存释放的工作 B 垃圾收集将检查并释放不在使用的内存
C 垃圾收集允许程序开发者明确指定并立即释放该内存 D 垃圾收集能够在期望的时间释放被java对象使用的内存
4 给出以下代码,请问该程序的运行结果是为什么? public class Example {
public static void main(String args[]){ String s1 = “abc”;
String s2 = “abc”;
if(s1==s2)
System. out. println(1);
else
System . out . println(2);
if (s1 . equals (s2))
System . out . println(3);
else
System . out . println(4);
}
} 请选择所有正确答案:(AC)
(A) 打印输出 1 (B) 打印输出 2 (C) 打印输出 3 (D) 打印输出 4
5 Java语言对内存的释放是采用垃圾回收机制。Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。( √ )
6 简述java中的垃圾回收
答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法:System.gc() 或Runtime.getRuntime().gc() 。
第十九单元
1 以下关于final关键字说法错误的是(AC)
A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B) final修饰的类肯定不能被继承
C) final修饰的方法不能被重载
D) final修饰的变量不允许被再次赋值
2 如何强制垃圾回收一个指定的对象? ( D)
A.调用finalized()方法。 B.废弃所有对象的引用。
C.使用所有的内存 D.无法强制垃圾回收一个指定的对象。
3 请问,以下哪些修饰符可用于修饰顶层类? 请选择所有正确答案:(CD)
(A) protected (B) transient (C) public (D) final
4 调用System.gc()方法不能保证JVM立即进行垃圾收集,而只能是建议。( √)
5 Java语言通过垃圾回收机制简化了程序的内存管理(√ )
6 Java语言对内存的释放是采用垃圾回收机制。Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。( × )
7 用关键字final修饰一个类或者方法时,有何意义?
答案:用final修饰的类不能被继承,使用final修饰的方法不能被覆盖。
第二十单元
1 下面关于方法的说法,不正确的是( C )。
A: Java中的构造方法名必须和类名相同
B: 方法体是对方法的实现,包括变量声明和合法语句
C: 如果一个类定义了构造方法,也可以用该类的默认构造方法
D: 类的私有方法不能被其他类直接访问
2 下面关于类的描述错误的是(B)
A. 类的方法都由方法头和方法体组成
B. 一个Java程序可以有多个公共类
C. 一个包可以包含多个类
D. 类的实现包括类声明和类体两部分
3 以下关于方法描述正确的是(ABC)
A.方法是类或对象行为特征的抽象
B.方法是类的重要组成部分
C.方法必须定义在类里面
D.方法中可以定义其他方法
4 编译并运行下面的程序,运行结果为(BD ).
public class T1 {
public static void main (String[] args){ T1 a=new T1(); a.method(8); a.method(1.2f); }
void method(float i) {
System.out.println("float: "+i); }
void method(long i) {
System.out.println("long: "+i); } }
A)程序有编译错误,因为两个method()方法必须定义为静态(static)的。 B)程序可以编译运行,输出结果为: long: 8 float: 1.2
C)程序可以编译运行,输出结果为: float: 1.2 long: 8
D) 程序中定义的两个参数不同的method方法称为方法重栽。
5 每个类都至少包含一个构造函数。( √)
6 什么是构造方法?构造方法的作用?(目的、意义)
构造方法是在调用的时候被new出来的,每个类都有构造方法。 作用:为对象分配内存、初始化类变量、初始化属性、返回引用。
———————————————————————————
以上就是java中面向对象编程课程基础试题!!!!!如有雷同,纯属巧合!!!!