Java笔试基础语法+OOP试题-练习

Posted A 小码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java笔试基础语法+OOP试题-练习相关的知识,希望对你有一定的参考价值。

选择题:
1、下列数据类型转换,必须进行强制类型转换的是:()
A.byte→int
B.short→long
C.float→double
D.int→char
2、执行完以下代码int[] x=new int[25];后,下列各项正确的是:()
A. x[24]为0 B.x[24]未定义 C.x[25]为0 D.x[0]为空
3、下列Java标识符,错误的是:()
A. _sys_varl
B. $change
C. User_name
D. 1_file
4、语句System.out.println(1+2+“java”+3+4)输出的结果是:()
A.3java34
B.12java34
C.3java7
D.12java7
5.在Java语言中,字符串“Java程序员”在内存中所占用的字节数是:(

A.10
B.7
C.13
D.14
6.下列代码段中,循环执行的次数是:()
int x = 10;
do {
x–;
} while (x <=5);
A.10次
B.0次
C.1次
D.超过10次
7.下列赋值语句中,正确的是:()
A.
byte b1 = 10, b2 = 20;
byte b=b1+b2;
B.
byte b1 = 10, b2 = 20;
byte b=b1+20;
C.
byte b1 = 10, b2 = 20;
byte b=b2+10;
D.
byte b1 = 10;
byte b=++b1;
8.下列程序编译或运行的结果是:()
public static void main(String[] args) {
int num = 100;
for(int i=0;i<=100;i++) {
int num = 10;
}
System.out.println(num);
}
A. 10
B. 100
C. 201
D.编译不通过
9.下面代码的输出结果是:( )
public class Main {
public static void main(String[] args) {
int n1 = 1;
int n2 = 2;
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
System.out.println(n1 + “,” + n2);
}
}
A. 1,2
B. 2,1
C. 1,3
D. 3,2
10. 下列代码段编译和运行的结果是:(

public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
if (i > 6){
break;
}
}
System.out.println(i);
}
A.输出 6
B.输出 7
C.输出 10
D.编译错误
11.关于while和do-while循环,下列说法正确的是:()
A.两种循环除格式外,功能完全相同
B. 与do-while语句不同的是,while语句的循环至少执行一次
C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
D.与while语句不同的是,do-while语句的循环至少执行一次
12.下列代码编译和运行的结果是:()
public static void main(String[] args) {
String[] names = { “Oscar”, “Edgar”, “Frank”, “Laurent”,“Hugo”,“Jacob”, “Aaron”, “Gino”, “Angus”, “Ken” };
System.out.println(names[10]);
}
A.编译错误
B.运行时抛出异常
C.输出:ken
D.输出:Angus
13.如下数组声明中,错误的是()
A.int[] ary = {1,2};
B.int[] ary = new int[]{1,2};
C.int[] ary = new int[3];
D.int[] ary = new int[12]{};
14.从下列选项中选择不正确的Java表达式()
A. int k=new String(“aa”);
B. String str=“hello”;
C. char c=74;
D. long x=8888;
15. 在问号处添加()代码才能实现a和b值的互换:
public static void swap(int a, int b) {

System.out.println(“a:” + a + " b:" + b);
}
public static void main(String[] args) {
int a = 3;
int b = 4;
swap(a, b);
System.out.println(“a:” + a + " b:" + b);
}
A.
int temp = a;
a = b;
b = temp;
B.
int temp = a;
a = b;
b = a;
C.
a = b ;
b = a;
D.
int t = b ;
b = b;
b=a;
16. 以下代码的输出结果是( )
int x = 10;
x = x++ +10;
System.out.println(x);
A.11 B.10 C.21 D.20
17.下列说法正确的是()
A.类中的构造方法不可省略。
B.构造方法名必须与类名相同,但其他方法名不能与类名相同
C.构造方法在一个对象被创建时执行
D.一个类中只能定义一个构造方法
18. java中,下列说法正确的是 ()
A.java访问修饰符按照访问范围由低到高的排列顺序public,default,protected,private
B.private可以用于外部类的声明
C.一个java源文件中声明为public的外部类只能有一个
D.protected声明的方法不可以被子类重写
19. 在Java类中,构造方法的作用是()。
A.读取成员变量
B.保护成员变量
C.描述对象的属性
D.初始化成员变量
20. 下列关于修饰符混用的说法,错误的是( ) :
A.static修饰的属性称为静态属性,可以使用类名直接调用.
B.static修饰的方法称为静态方法,可以直接使用类名调用.
C.static静态块比构造方法要先执行
D.static 方法中能直接调用非static 的属性
21.下列关于Jave内存回收的说明正确的是:( )
A. 程序员必须创建一个线程来释放内存
B. 内存回收机制负责释放无用内存
C. 内存回收机制允许程序员直接释放内存
D. 内存回收机制可以在指定的时间释放内存对象
22.在Java中,将类的访问权限设置为默认的,则该类能被( )
A.同包中的类访问
B.其它包中的类访问
C.所有子类访问
D.所有类访问
23.如下方法声明中,错误的是( )
A. public void say() { System.out.print(“Hi”); }
B. public void say() { System.out.print(“Hi”); return; }
C. public int say() { System.out.print(“Hi”); return “hi”; }
D. public int say() { System.out.print(“Hi”); return 0; }
24. 在Java中,使用以下()声明语句来定义公有的int型常量MAX。
A. public int MAX = 100;
B. final int MAX = 100;
C. public static int MAX = 100;
D. public static final int MAX = 100;
25. 在Java中,下列关于方法重载的说法中错误的是()。
A. 方法重载要求方法名称必须相同
B. 重载方法的参数列表必须不一致
C. 重载和方法的返回类型无关
D. 一个方法在所属的类中只能被重载一次
26.下列选项中关于Java中封装的说法错误的是( )。
A. 封装是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值、getter方法用于取值
D. 类的属性必须进行封装,否则无法通过编译
27. 在Java中,以下程序编译运行后的输出结果为( )。
public class Test {
int x, y;
Test(int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(3, 3);
pt2 = new Test(4, 4);
System.out.print(pt1.x + pt2.x);
}
}
A. 6
B. 3 4
C. 8
D. 7
28. 在Java语言中,下列关于类的继承的描述,正确的是( )。
A. 一个类可以继承多个父类
B. 一个类可以具有多个子类
C. 子类可以使用父类的所有方法
D. 子类可以继承父类构造方法
29. Java中如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( )。
A. C不仅继承了B中的公有成员,同样也继承了A中的公有成员
B. C只继承了B中的成员
C. C只继承了A中的成员
D. C不能继承A或B中的成员
30. 给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是()。
class Parent1 {
Parent1(String s){
System.out.println(s);
}
}
class Parent2 extends Parent1{
Parent2(){
System.out.println(“parent2”);
}
}
public class Child extends Parent2 {
public static void main(String[] args) {
Child child = new Child();
}
}
A. 编译错误:没有找到构造器Child() {}
B. 编译错误:没有找到构造器Parent1(){}
C. 正确运行,没有输出值
D. 正确运行,输出结果为:parent2
31. 下列选项中关于Java中super关键字的说法错误的是()。
A. super关键字是在子类对象内部指代其父类对象的引用
B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C. 子类可以通过super关键字调用父类的方法
D. 子类可以通过super关键字调用父类的属性
32. 以下关于Object类说法错误的是()
A. 一切类都直接或间接继承自Object类
B. 接口亦继承Object类
C. Object类中定义了toString()方法
D. Object类在java.lang包中
33. 在Java语言中,下列说法不正确的是()。
A. 一个接口可以继承多个接口
B. 一个类可以继承多个类
C. 一个类可以实现多个接口
D. 一个类可以有多个子类
34. 下面关于Java接口的说法错误的是()。
A. Java接口中不能有变量,只能有常量
B. Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
C. Java接口中可以声明私有成员
D. Java接口不能被实例化
35. 在Java接口中定义常量,下面语法错误的是(
)。
A. static int MALE = 1;
B. final int MALE = 1;
C. int MALE = 1;
D. private int MALE = 1;
36. 在Java接口中,下列选项中属于正确的方法声明是()。
A. public aMethod();
B. void aMethod();
C. void aMethod(){}
D. private void aMethod();
37. 在java 中,以下哪个类不能派生出子类. ( )
A. public class MyClass{ }
B. class MyClass{ }
C. abstract class MyClass{ }
D. final class MyClass { }
38. 在Java中,下面关于抽象类的描述正确的是()
A. 抽象类可以被实例化
B. 抽象类中不可以有普通成员方法
C. 抽象类中的方法必须都是抽象的
D. 声明抽象类必须带有关键字abstract
39. 在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )
A. interface A extends B,C
B. interface A implements B,C
C .class A implements B,C
D.class A implements B,implements C
40. 在java中,在尝试对null 对象操作时,会产生(
)类型的异常。
A ArithmeticException
B NullPointerException
C IOException
D EOFException
41.下列哪一项叙述是正确的( )
A abstract修饰符可修饰字段、方法和类
B 抽象方法的body部分必须用一对大括号{}包住
C 声明抽象方法,大括号可有可无
D 声明抽象方法不可写大括号
42.下列面向对象的基本特征,不包括()。
A.封装
B.继承
C.多态
D.关联
43.在Java中,关于分支结构说法正确的是( )。
A.if语句和else语句必须成对出现。
B.if语句可以没有else语句对应
C.switch结构中必须有default语句。
D.switch结构中每个case语句中必须用break语句,否则编译报错。
44.类Worker是类Person的子类,在类Worker的构造函数的第一条语句中有super();代码,该代码的作用是( )。
A.调用类Worker类的super()方法。
B.调用类Person中的super()方法
C.调用类Person中的无参数的构造方法。
D.编译错误,找不到该方法
45.下述说法中,正确的是(
)
A.Java中,方法的重载是指多个方法可以共享同一个名字
B.Java中,用abstract修饰的类称为抽象类,它不能实例化
C.Java中,接口可以实例化
D.Java中,构造方法可以有返回值
46. 关于abstract,以下选项不正确的是( )。
A.abstract 类中必须都是abstract方法
B.abstract 类的子类也可以是abstract类
C.abstract 类不能创建对象,但可以声明引用
D.abstract 方法不能有方法体
47. 对如下数组,说法正确的是( )。
int [] arr = {12,23,34,45,56,67};
A.获取数组中第三个元素的语法是arr[3]
B.获取数组中第三个元素的语法是arr[2]
C.该数组的最后一个元素的下标值为arr.length
D.该数组的倒数第二个元素的下标值为arr.length-1
48.下列选项中不可以实现无限循环的是:()。
A.for(;😉{}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
49.下列对于内部类描述中不正确的是:( )
A.在一个类的内部声明的类,叫做内部类,内部类可以作为外部类的一个成员使用,可以访问外部类的所有成员,包括私有成员。
B.内部类的访问权限可以被定义为public、protected、private和default。但是外部类只可以定义public和default两种访问权限。
C.内部类的访问权限可以被定义为public、protected、private和default。外部类也可以定义上面四种访问权限,但是通常我们使用public和default 两种访问权限。
D.定义内部类的目的是用于服务外部类的。
50. Java中,下列说法正确的是(
)。
A.私有方法不能被重载
B.静态方法能被重载
C.公有方法被重写之后,可以使用private修饰。
D.子类中重写的方法可以抛出父类中没有的异常。

以上是关于Java笔试基础语法+OOP试题-练习的主要内容,如果未能解决你的问题,请参考以下文章

Java 笔试面试 基础篇 一

初学Java6:Java OOP基础语法总结

[Java]Java 基础语法和面向对象编程(OOP)

Java知识面试题复习Java基础语法

Java知识面试题复习Java基础语法

java 二面一般会面试啥内容