Java基础笔试练习(十五)

编程入门 行业动态 更新时间:2024-10-03 14:28:48

Java基础<a href=https://www.elefans.com/category/jswz/34/1769509.html style=笔试练习(十五)"/>

Java基础笔试练习(十五)

1. 有以下代码片段,请问输出的结果是()?

String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);

A.true
B.都不对
C.null
D.false

答案:
D

解析:
String str1=“hello”; 这样创建字符串是存在于常量池中
String str2=new String(“hello”); str2存在于堆中,
==是验证两个对象是否是一个(内存地址是否相同)
用+拼接字符串时会创建一个新对象再返回。

2.在如下所示的类Test中,共有()个构造方法。

public class Test{private int x;public Test(){x = 35;}public void Test(double f){this.x = (int)f;}public Test(double f){this.x = (int)f;}public Test(String s) {}
}

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

答案:
D

解析:
构造方法形式:
类名([形式参数表])
构造方法没有返回值,不能添加void,构造方法可以被重载

3.一个以”.java”为后缀的源文件

A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类以及其中的内部类
C.只能有一个与文件名相同的类,可以包含其他类
D.可以包含任意类

答案:
C

解析:
略,前面都做过的- -!

4.下面哪些不是Thread类的方法

A.start()
B.run()
C.exit()
D.getPriority()

答案:
C

解析:
线程常用方法:
start(): 使该线程开始执行;Java 虚拟机调用该线程的run方法。
run():如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。
join():等待该线程终止。
getPriority():返回线程的优先级。
yield():暂停当前正在执行的线程对象,并执行其他线程

5.关于 JAVA 堆,下面说法错误的是()

A.所有类的实例和数组都是在堆上分配内存的
B.对象所占的堆内存是由自动内存管理系统回收
C.堆内存由存活和死亡的对象,空闲碎片区组成
D.数组是分配在栈中的

答案:
D

解析:

  1. 对象存储在堆区。
  2. 数组是一种对象。

6.一个文件中的字符要写到另一个文件中,首先需要( )。

A.使用标准输出流System.out.println()。
B.建立文件字符输出流。
C.建立文件字符输入流。
D.标准输入流System.in.read()。

答案:
C

解析:
一个文件中的字符要写到另一个文件中,首先需要读取这个文件,所以要先建立输入流,然后写到另一个文件,这时再建立输出流.所以要先建立输入流,再建立输出流.

7.尝试编译以下程序会产生怎么样的结果?()

public class MyClass {long var;public void MyClass(long param) { var = param; }//(1)public static void main(String[] args) {MyClass a, b;a =new MyClass();//(2)b =new MyClass(5);//(3)}
}

A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行

答案:
C

解析:
构造方法就是:public 类名, 没有方法修饰符,所以 (1) 处就是一个普通方法,所以该类没有带参数构造方法 ,编译报错

8.下面叙述那个是正确的?()

A.java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
B.在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
C.java接口包含函数声明和变量声明。
D.java中,子类不可以访问父类的私有成员和受保护的成员。

答案:
B

解析:
A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。
B.try{}catch{}会增加额外的开销
C.接口中声明的’变量’必须为public final static,所以为常量
D.子类可以访问父类受保护的成员

9.下面代码的运行结果是()?

public static void main(String[] args){String s;System.out.println("s="+s);
}

A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常

答案:
C

解析:
局部变量没有默认值

10. 代码 的运行结果是()?

A.在控制台打印hello sunline!
B.报异常java.lang.NullPoninterException
C.编译报错
D.报异常java.lang.RuntimeExcception

答案:
C

解析:
1、Java 中单实现通过 implements 关键字,多实现通过 extends 关键字
2、Java 中单继承通过 extends 关键字,没有多继承
3、如果同时出现继承和实现,则必须先继承(extends)再实现(implements)

11.由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数()

A.-126
B.-125
C.-32
D.-3

答案:
B

解析:
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;

12.运行代码,结果正确的是:()?

Boolean flag = false;
if(flag = true){System.out.println("true");
}else{System.out.println("false");
}

A.编译错误
B.TRUE
C.FALSE
D.什么也没有输出

答案:
B

解析:
if(flag = true)的时候flag已经是true了,所以输出true;
要是为if(flag == true)输出才为false

13.下列哪个选项是合法的标识符?()

A.123
B._name
C.class
D.first

答案:
B D

解析:
Java标识符由 数字、字母、下划线(_)、美元符号($) 组成,首位不能是数字 。并且Java关键字不能作为标识符 。

14.Why would a responsible Java programmer want to use a nested class?

A.To keep the code for a very specialized class in close association with the class it works with.
B.To support a new user interface that generates custom events.
C.To impress the boss with his/her knowledge of Java by using nested classes all over the place.

答案:
A B

解析:
使用嵌套类,其中有几个令人信服的理由:
加强封装—考虑两个顶级类,A和B,如果B需要访问A的private成员,通过在A类隐藏B类,那么即使A的成员声明为private,那么B也可以访问它们。更多的是,B本身也可以隐藏于外部。跟可读性,可维护性的代码—在顶级类里嵌套小类,让代码更靠近使用的地方。

15.下面有关Java的说法正确的是( )

A.一个类可以实现多个接口
B.抽象类必须有抽象方法
C.protected成员在子类可见性可以修改
D.通过super可以调用父类构造函数
E.final的成员方法实现中只能读取类的成员变量
F.String是不可修改的,且java运行环境中对string对象有一个对象池保存

答案:
A C D F

解析:
A对:java类单继承,多实现
B错:被abstract修饰的类就是抽象类,有没有抽象方法无所谓
C错:这道题应该是要考察子类继承父类,并重写父类的protected成员方法,该方法的可见性可以修改,这是对的,因为子类继承父类的方法,访问权限可以相同或往大了改
D对。
E错:final修饰的方法只是不能重写,static修饰的方法只能访问类的成员变量
F对。

16.下列描述正确的是( )?

A.类不可以多继承而接口可以多实现
B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化
D.一个类可以有多个基类和多个基接口

答案:
A C

解析:
1.java支持单继承,却可以实现多个接口。a对d错
2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错

17.关于下面这段Java程序,哪些描述是正确的:( )

public class ThreadTest extends Thread {public void run() {System.out.println("In run");yield();System.out.println("Leaving run");}public static void main(String []argv) {(new ThreadTest()).start();}
}

A.程序运行输出只有In run
B.程序运行输出只有Leaving run
C.程序运行输出先有In run后有Leaving run
D.程序运行输出先有Leaving run后有In run
E.程序没有任何输出就退出了
F.程序将被挂起,只能强制退出

答案:
C

解析:
yield()从未导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。

18.哪个是不正确的字符常量?

A.”\n”
B.”1”
C.”a”
D.”\101”

答案:
A B C D

解析:
四个答案都采用的是双引号关闭,所以是字符串常量而不是字符常量。
忽略这个错误,那么这题就没有答案,因为无论是采用特殊字符的转移序列’\n’还是采用八进制转义’\101’,都是满足Java语言规范中规定的字符常量格式。

19.JDK提供的用于并发编程的同步器有哪些?

A.Semaphore
B.CyclicBarrier
C.CountDownLatch
D.Counter

答案:
A B C

解析:
A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器

20.下面关于面向对象的一些理解哪些是错误的( )?

A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.Java和C++都是静态类型的面向对象编程语言

答案:
C

解析:
动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

推荐

笔试内容集合 持续更新中…

ProcessOn是一个在线作图工具的聚合平台~

文末

欢迎关注个人微信公众号:Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
新建了一个qq群:315211365,欢迎大家进群交流一起学习。谢谢了!也可以介绍给身边有需要的朋友。

文章收录至
Github:
Gitee:
欢迎关注并star~

更多推荐

Java基础笔试练习(十五)

本文发布于:2024-03-12 20:13:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1732324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔试   基础   Java   十五

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!