JAVA基础-面型对象测试题

这是一篇关于JAVA基础的面向对象测试题目集,涵盖了选择题、判断题、简答题和编程题,涉及Java语法、类、对象、接口、继承、多态等核心概念,适合初级Java开发者进行自我测试和学习。
摘要由CSDN通过智能技术生成

JAVA基础-面型对象测试题

一.选择题

1. 随着Java技术的不断发展,oracle公司根据市场进一步将Java细分,其中针对普通PC应用的是( D)

A. JAVAEE B. JDK C. JAVAME D. JAVASE

2. 编译java源代码使用以下哪个命令? (A)

A.javac B.java C.javap D.jdeps

3. 在Java中,负责对字节代码解释执行的是 (B)

A. 应用服务器

B. 虚拟机

C. 垃圾回收器

D. 编译器

4. 运行java源代码使用以下哪个命令? (B )

A.javac B.java C.javap D.jdeps

5. 编写源代码名称后缀是什么? (A )

A.java B.class C.txt D.doc

6. java****程序即字节码,文件后缀是什么? ( B)

A.java B.class C.txt D.doc

7. 编写代码,需要格式良好,让他人看得舒心,通过什么手段? ( ABC)

A.合理注释

B.适当缩进

C.成对编程

D.多用中文

E.少写E文

8. 在JAVA中,下列哪些说法是正确的( C)

A.java源文件的扩展名为.java

B.写好的java源程序可以直接运行

C.编写的源程序必须先编译后才能运行

D.程序员可以读懂扩展名为.class的文件

9. 下列标识符哪个是合法的(BD )

A.class B.$abc C.1234 D._name

10. 下列标识符哪个适用于类名( C)

A.helloWorld

B.helloworld

C.HelloWorld

D.HELLO_WORLD

11. 下列标识符哪个适用于方法名( A)

A.helloWorld

B.helloworld

C.HelloWorld

D.HELLO_WORLD

12. 3.14 称之为字面值,其类型为(B )

A.int B.double C.char D.boolean

13. 下面变量声明正确为?(AC )

A. long test = 12L;

B. int other = (int) true;

C. double d = 678.999F;

D. byte b = 128;

14. 下面关于float数的定义正确的是:(CD)

A. float f=-5;

B. float f=0x0687;

C. float f=1.0;

D. float f=7.8f;

15. 请问以下代码的运行结果(C)

public class VariableDemo04{

public static void main(String[] args){

​ int box ;

​ System.out.println(box);

}

}

A. null

B. 0

C. 编译报错

D. 运行异常

16. 定义整型变量:int n=456;,表达式的值为5的是:( D)

A. n%10

B. n/1

C. (n-n/100*100)/10

D. n/10%10

17. 在Java中,下列语句不能通过编译的有( B)

A. String s= “join”+ 3;

B. int a= “join”+3;

C. int a= ‘a’+5;

D. float f=5+5.5;

18. int a = 5; int b = a++; a****与b的值分别是( D)

A. 5 5 B. 5 6 C. 6 6 D. 6 5

19. 在空白处添加( C)不会出错?

public static void main(String[] args){

int a=5;


}

A. int a=7;

B. byte a=1;

C. a=4;

D. 都不正确

20. 以下+在什么情况下为连接符( D)

A. System.out.println(3+5);

B. System.out.println(3+’5’);

C. System.out.println(’3’+’5’);

D. System.out.println(’3’+”5”);

21. 以下代码的结果是什么?( D)

int a = 5;

int b = 2;

System.out.println(a%b);

A. 2 B. 2.5 C. 3 D. 1

22. 以下代码的结果是什么?( B)

int a = 5;

int b = 2;

System.out.println(1.0*a/b);

A. 2 B. 2.5 C. 2.0 D. 没有正确

23. 以下代码的结果是什么?(C)

int a = 5;

System.out.println(1.0*a/0);

A.编译异常 B.Infinity C.运行异常 D.1.0

24. 下列代码运行的结果是( C)

public static void main(String[] args) {

int x = 4, y = 5;

if(x++>4 & y>5) {

x=2;

}

System.out.println(“x=” + x + “,y=” + y);

}

A. x=4,y=5 B. x=4,y=6 C. x=5,y=5 D. x=6,y=6

25. 下列程序段执行后,t5的结果是:(B)

int t1=5,t2=6,t3=7,t4,t5;

t4=t1<t2?t1:t2;

t5=t4<t3?t4:t3;

A. 7 B. 5 C. 6 D. 8

26. 执行下列语句后,i 和n的值为(B)

int i=10;int n= i++%5;

A. 10,0 B. 11,0 C. 10,1 D. 11,1

27. 尝试运行下面的代码会发生什么?(A)

public class Test {

public static void main(String[] args) {

boolean m = true;

if (m) {

System.out.println(“true”);

} else {

System.out.println(“false”);

}

}

A. 输出字符串”true”

B. 输出字符串”false”

C. 编译时错误

D. 运行时错误

28. 尝试运行下面的代码最终的输出结果?(B)

class Demo {

public static int fun(int c){

return c+=2;

}

public static void main(String[] args){

int temp = fun(2)

System.out.println(temp);

}

}

A. 2 B. 4 C. 6 D. 8

29. 下面哪些方法是public void test(){…}的重载? ( BD)

A. void test ( ){…}

B. public int test (int a, float b){…}

C. public void test (){…}

D. public float test (int m){…}

30. 在java中,关于数组描述正确的是(BCD )

A.数组中的索引下标从1开始

B.存储在数组当中的数据都属于同一数据类型

C.通过数组名.length()能获得数组的长度

D.数组的最大索引下标是数组的长度减1

31. 下面程序的输出结果是什么(C )

int[] arr = new int[10];

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

A.编译不通过 B.运行时出错 C.输出null D.输出0

32. 下面程序的输出结果是什么(D)

int[] arr = new int[4]{1,2,3,4};

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

A.编译不通过 B.运行时出错 C.输出null D.输出1

33. 下面程序的输出结果是什么(D)

int[] arr = new int[4];

arr = {1,2,3,4};

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

A.编译不通过 B.运行时出错 C.输出null D.输出1

34. 返回类型可以为哪些(AB)

public static __ test(){

return ‘A’;

}

A. char B. int C. float D. double

35. 方法能被成功调用的有(AB)

public static void test(int a){

System.out.println(a);

}

A、test(‘a’) B、test(100) C、test(100L) D、test(3.14)

36. 以下代码输出是(D)

class Demo {

public static void main(String[] args) {

int i = 0;

int sum = 0;

while (i <= 10) {

i++;

sum += i;

}

System.out.println(sum);

}

}

A. 55 B. 45 C. 35 D. 没有正确答案

37. 以下代码段将创建几个对象? (A)

String s1=“bc”;

String s2=“bc”;

A. 2 B. 3 C. 0 D. 1

38. 定义字符串:String s1=“hello”;对下面程序描述正确的是:(D)

if(s1==“hello”){

System.out.println(“s1 = “hello””);

}else{

System.out.println(“s1 !=hello”);

}

A. 输出 s1 !=hello

B. 编译正确,运行错误

C. 产生编译错误

D. 输出 s1=“hello”

39. 返回类型不可以为哪些? (B)

public __ demo(){}

A. int B. null C. void D.static

40. 以下调用方法的方式正确的是? ( C)

public static void test(int a){

System.out.println(a);

}

A. test(); B. test(“haha”); C. test(3); D. Sytem.out.println(test(5));

41. 方法的签名是什么( D)

public static void add(int a,int b,int c){}

A. add() B. add(int) C. add(a,b) D. add(int,int,int)

42. 下面的数组定义哪些是正确的?(AD)

A. int a[]= new int[3];

B. int a[3]= new int[];

C. int[] a= new int[3]{1,2,3};

D. int[] a = new int[]{1,2,3,4};

43. 阅读代码片段 (C )

public static int checkAge(int age){

if(age <18){

​ return -1;

}

return ;

}

A. 编译正确 B.运行正确 C. 编译错误 D.运行错误

44. 请问在一个方法中跳出循环可以方式有(ABC)

A. break B. continue C. return D. goto

45. 阅读代码片段,请问结果是什么?( A)

public static void main(String[] args){

add(1,1);

}

public static int add(int a,int b){

System.out.println(“add(double ,double )”);

return a+b;

}

A. 2 B. add(double ,double ) C. null D.没有正确选项

46. 下面有关递归的说法错误的是(D)

A. 递归做为一种算法在程序设计语言中广泛应用

B. 递归就是自己调用自己

C. 递归编写程序能使程序变得简洁和清晰

D. 递归运算节省内存消耗

47. 阅读代码片段,ch结果为(E)

String str =“talk is cheap,show me thecode.”

char ch = str.charAt(2);

A. a B. k C. t D. c E. l

48. 阅读代码片段 str的结果为(A)

String str =“talk is cheap,show me thecode.”

String sub = str.substring(1,7);

A. alk is B. alk i C. talk D. talk is

**49. String str1 = " a b c ".trim(); str1.length()**结果为(C)

A. 3 B. 4 C. 5 D. 6

50. 类的实例方法表示的是什么?( C)

A. 以下没有正确的 B. 类的属性 C. 类对象的行为D. 类的行为

51. 关于类的理解正确的是( C)

A.类就是抽象 B. 类就是模板 C.类是复杂的应用类型 D.类用于存储数据

52. 下面关于缺省构造方法的描述中正确的是(A)

A. 当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法

B. 缺省构造方法可以初始化其他方法中定义的变量

C. Java编译器会为所有的类创建缺省构造方法。

D. 如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法

53. 关于new的作用有(ABCD)

A. 开辟空间 B.初始化对象信息 C.声明引用类型 D.返回地址

54 .对象是Java中很重要的概念,下列说法中能准确地描述对象的是( ABD)。

A.对象可以理解为一种数据结构,具有属性和操作数据的方法

B.对象是抽象的,类可以通过对象来生成

C.对象只是方法的集合

D.对象是一组具有共同的结构和行为的类

55. 下列关于构造方法的叙述中,错误的是(ABCD)。

A.构造方法名与类名必须相同

B.构造方法没有返回值,但不用void声明

C.构造方法不可以重载

D.构造方法只能通过new自动调用

56. 给出如下类定义:

public class Test {

Test(int i) {}

}

如果要创建一个该类的对象,正确的语句是( AB )。

A.Test t = newTest(‘5’);

B.Test t = newTest(5);

C.Test t = newTest(“5”);

D.Test t = newTest(3.4);

57. 给出如下类定义:

public class Test {

Test(int i) {}

}

如果要创建一个该类的对象,正确的理解是( BC )。

A. javac自动加入无参构造

B. 可以通过new Test()创建对象

C. 可以通过 new Test(100) 创建对象

D. 编译错误

58()下述概念中不属于面向对象的是( D )。

A.对象、消息 B.属性、方法

C.类、封装 D.过程调用

59. 以下代码的调试结果为(C)。

class Square {

int a;

void Square() {

a = 10;

}

public static void main(String[] args) {

Square s = new Square();

System.out.println(s.a);

}

}

A.输出10 B.编译错误 C.输出0 D.运行错误

60. 下面代码片段的p2.name结果是(A)。

Person p1 = new Person();

p1.name = “老高”;

Person p2 = new Person();

p2.name = “老裴”;

p1 = p2;

p1.name = “shsxt”;

A. shsxt B. “老裴” C. “老高” D. null

61. 以下代码输出是(A)。

class Base {

Base() {

​ int i = 100;

​ System.out.println(i);

}

}

public class Pri extends Base {

static int i = 200;

public static void main(String argv[]) {

​ Pri p = new Pri();

​ System.out.println(i);

}

}

A. 100 200

B. 200 100

C. 200

D. 没有正确答案

62. 下列父类中的变量不能够被子类所访问的是 (A)

class Parent {

private int i = 20;

protected int j = 30;

public int k = 40;

int h = 50;

}

class Child extends Parent {

void f() {

​ }

}

A.i B.j C.k D.h

63.下面说法错误的是( ABC

A)接口中的抽象方法只能被公众和抽象的修饰,因此可以不写

b)接口中的成员变量默认都是public static final修饰,因此可以不写

C)接口只能继承接口,抽象类只能继承抽象类

d)抽象类能够继承普通类和抽象类,也可以实现接口

64 **.**以下关于最终关键字说法错误的是(A)中

A)final不能修饰抽象类

B)final修饰的类不能被继承

C)final修饰的方法不能被重载

D)final修饰的变量不允许被再次赋值

65. 下列说法正确的有(B****C )中

A)类中的构造方法不可省略

b)类中构造方法必须与类同名,但方法不能与类同名

C)构造方法在一个对象被创建时执行

d)一个类只能定义一个构造方法

66. 下列说法正确的是( D**)中**

A) 一个子类能够重写父类的构造方法

B)子类对象生成时,先执行子类的构造方法,再执行父类的无参构造方法

C)当父类没有无参构造方法时,子类构造器的第一句必须使用超(参数列表)方法显式调用父类的构造器

d)子类无法在构造方法中使用此(参数列表)显示调用自身的其他重载构造方法

67. **多态的表现形式为:(**ABC )中

a)重写

b)接口

c)权限

d)垃圾回收

68 .阅读下列代码,其运行结果为**(** C**)**

public class MC extends father{

private String text=“text2”;

public static void main(String[] args) {

MC mc=new MC();

System.out.println(mc.getText());

}

}

class father{

private String text=“text1”;

public String getText() {

return text;

}

}

a) 编译出错

b) 运行异常

c) text1

d) text2

69.下列修饰符能用来修饰接口的是(BD**)中**

A. private

B. public

C. protected

D. static

70. 如果父类中的某些方法不包含任何逻辑,并且需要有子类重写,应该用( C**)关键字申明这些方法**

A. final

B. static

C. abstract

D. interface

71. java中,已定义两个接口BC,要定义一个实现这两个接口的类,以下语句正确的是(A)

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

71. 修饰符private的作用域(A)

A. 同类下

B. 同一package下的类

C. 子孙类

D. 其他package下的类

二.判断题

  1. Java程序中的被public类名称必须与存放该类的文件名相同?(对 )

  2. 基本数据类型数据均可任意转换(错)

  3. Switch能否用string做参数?(对)

4.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个属性与赋值对象相同的新对象(错)

5.java程序里创建新的类对象用关键字new.回收无用的类对像使用关键字free。( 错)

6.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除个字符子串。(错)

7.类及其属性、方法可以同时有一个以上的修饰符来修饰。(对 )

8.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。(错)

9.一个java类名为MyJava.java,构造器为 public Myjava(){System.out.println()}. (对)

10.java中即有值也有引用传递,对吗? (对)

11. 抽象类中不能有构造函数?(错)

12. 一个类可以继承多个类也可以实现多个接口 ( 对)

13. 子类继承父类可以不重写父类中的抽象方法 (对)

14. 一个类中只能定一个构造方法。 (错 )

  1. 接口可以继承接口,抽象类可以实现接口 (对)

16.是否可以从一个静态(static)方法内部发出对静态方法的调用 (错)

  1. 父类的静态方法能否被子类重写 (错 )

三.简答题

  1. 在命令行中,进入到某个指定目录下的命令是什么?

cd加指定目录路径

  1. 请你简述一下JAVA的执行流程

编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。

编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件。

运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果

  1. JDK 和 JRE 的区别是什么?

jre 运行java代码的虚拟机

jdk 包含编译器,解释器的 jre

  1. Java开发环境配置

配置: 计算机->右键属性->高级系统设置->环境变量->系统变量->path->把jdk的bin目录路径配置到path中

  1. 标识符的命名规则

严格区分大小写

组成: 字母,数字,下划线_,美元符号$任意组合而成,但是数字不能开头

关键字和保留字不能作为标识符使用

  1. Java注释类型有几种,分别是什么,有什么区别?

三种,单行注释,多行注释,文档注释,

区别 在使用开发工具的时候 文档注释会存在对方法的一定解释,但是多行注释没有。

  1. i++和++i的异同之处

在参与运算的时候++i是先自增后运算,i++是新运算后自增

  1. 什么是单例模式?如何实现单例?

单例类只能有一个实例。

单例类必须自己创建自己的唯一实例。

单例类必须给所有其他对象提供这一实例。

  1. 说说&和&&的区别?

单&所有操作数都要进行判断 双&&当有一个操作数可以确定结果时就不看第二个操作数了

  1. JAVA的基本数据类型有哪几种?

基本数据类型 四类八种

整型,字符型,浮点型,布尔型,

整型包括:byte short int long

字符型 char String

浮点型 float double

布尔型 true false

  1. opp(面向对象)的三大特征?

封装,继承,多态

  1. 什么是构造器,构造器的特征?

构造器:一个特殊的方法

用来为对象初始化信息(为对象的成员变量赋值)

  1. 配置JAVA_HOME的作用

为了不频繁操作path,避免经常修改删除不必要的内容

为了避免未来使用一些组件等出现问题(因为有可能默认要去寻找JAVA_HOME)

  1. 局部变量可以在外部调用么?怎么调用?

可以在外部调用 创建一个与文件名相同的对象 在对象中调用

  1. 1314是什么类型?3.14是什么类型?true是什么类型? '1’是什么类型?

1314 整型 3.14 浮点型 true 布尔类型 l 字符型

  1. 'a’与"a"的区别是什么?

‘’标识字符型 “”标识字符串类型

  1. 谈谈你对方法的理解

方法就是对一个功能的具体实现代码进行封装 对外提供一个公共的访问方式

  1. 什么是方法签名?作用是什么?并写出以下方法的签名

方法签名就是方法名+参数列表

作用:子类继承父类后,继承了一写功能方法,有些功能,功能的实现不满意,可以进行功能的重写(重新实现)

public static void main(String[] args){
   }

main+String[]

 public static void add(in
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值