Java精选笔试题

Java精选笔试题1,volatile关键字是否能保证线程安全?()>>>>答案:否volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。假如线程1,线程2在进行read,load操作中,发现主内存中co…

大家好,又见面了,我是你们的朋友全栈君。

个人博客请访问 http://www.x0100.top  

1,volatile关键字是否能保证线程安全?()

 

 

>>>>

答案:否

 

 

volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。

 

假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在线程1对count进行修改之后,会write到主内存中,主内存中的count变量就会变为6;线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6;导致两个线程及时volatile关键字修改之后,还是会存在并发的情况。

 

 

2,下面哪个流类属于面向字符的输入流(  )

 

A、BufferedWriter

B、FileInputStream

C、ObjectInputStream

D、InputStreamReader

 

 

>>>>

答案:D

 

 

Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。 

面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。 

面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。

 

 

3,Java能不能不通过构造函数创建对象()

 

A、能     B、不能

 

 

>>>>

答案:A

 

 

Java创建对象的几种方式:

 

(1) 用new语句创建对象,这是最常见的创建对象的方法。 
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 
(3) 调用对象的clone()方法。 
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。

(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。

 

 

4,下列哪个叙述是正确的()

 

 

A.子类继承父类的构造方法。

B.abstract类的子类必须是非abstract类。

C.子类继承的方法只能操作子类继承和隐藏的成员变量。

D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量。

 

 

>>>>答案:C

 

 

子类是不继承父类的构造方法的,而是必须调用其父类的构造方法。 

abstract类的子类可以是abstract类,如果是非abstract类,就必须重写父类中所有的abstract方法。 

D中子类新增的方法是不能直接操作被子类隐藏的成员变量的。

 

 

5,下列哪个叙述是正确的()

 

 

A.final类可以有子类。

B.abstract类中只可以有abstract方法。

C.abstract类中可以有非abstract方法,但该方法不可以用final修饰。

D.不可以同时用final和abstract修饰同一个方法。

E.允许使用static修饰abstract方法。

 

 

>>>>

答案:D

 

 

用final修饰的类是不允许被继承的,A错误 
abstract类中也可以有普通成员方法,B错误 
abstract类中的非abstract方法是可以用final修饰的,而abstract方法是不可以被final修饰的,C错误 

D同上,正确 
 

不允许使用static修饰abstract方法,E错误。

 

 

6,当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象()

 

A、以选中的压缩文件为参数

B、以FileInputStream对象为参数

C、以InputStreamReader对象为参数

D、以BufferedReader对象为参数

 

 

>>>>

答案:B

 

 

在java.io包中提供了对压缩文件进行操作的能力。它是通过压缩文件输入流与压缩文件输出流来实现的,其分别继承自InflaterInputStream与DeflaterOutputStream。

 

在创建压缩文件输入流时,其初始化参数是一个FileInputStream类的实例。

 

 

7,已知一个有序线性表为()(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为( )

 

 

A,1         B,2       C,3       D,9

 

 

>>>>答案:B

 

 

根据二分法查找需要两次:首先将90与表中间的元素50进行比较,由于90大于50,所以在线性表的后半部分查找;第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。

 

8,Java程序的并发机制是( )

 

A.多线程

B.多接口

C.多平台

D.多态性

 

 

>>>>

答案:A

 

 

Java是通过多线程实现并发机制的。多线程是指一个程序中包含多个执行流, 多线程程序设计的含义是可以将程序任务分成几个并行的子任务。

 

 

9,下列选项中,不属于模块间耦合的是( )

 

A.数据耦合

B.标记耦合

C.异构耦合

D.公共耦合

 

 

>>>>

答案:C

 

 

模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。 按照耦合程度从弱到强,可以将其分成7级。

 

分别是非直接耦合、数据耦合、标记耦合、控制 耦合、外部耦合、公共耦合和内容耦合。其中没有异构耦合这种方式。

 

 

10,下列关于内部类的说法不正确的是  (  )

 

A,内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用

B,内部类可以使用它所在类的静态成员变量和实例成员变量

C,内部类不可以用abstract修饰符定义为抽象类

D,内部类可作为其他类的成员,而且可访问它所在类的成员

 

 

>>>>

答案:C

 

 

内部类不仅可以用abstract修饰定义为抽象类,也可以用private或protected定义,所以选项C说法错误。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156974.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月8日 下午12:36
下一篇 2022年7月8日 下午12:36


相关推荐

  • 国内首个:网易有道龙虾 100% 开源,支持 GitHub 全量 skills 安装及实时更新

    国内首个:网易有道龙虾 100% 开源,支持 GitHub 全量 skills 安装及实时更新

    2026年3月12日
    2
  • bootstrap之glyphicon字体图标

    bootstrap之glyphicon字体图标glyphicon 字体图标用途广泛 可以把它们应用到按钮 工具条中的按钮组 导航 输入框或下拉菜单等地方 例如 在做 SM 管理系统项目的时候 就可以在编辑 删除按钮中使用 glyphicon 字体图标 出于性能的考虑 所有图标都需要一个基类 glyphicon 和一个对应每个图标的类 glyphicon xxx 我们可直接到 Glyphicons 字体图标库中 将图标下面的两个类 copy 下来 放到标

    2026年3月19日
    1
  • request.getParameterNames_request和urllib区别

    request.getParameterNames_request和urllib区别Servlet中request.getParameter和getParameterValues getParameterNames三者区别1.request.getParameter:获取前台表单单个元素name对应的value值2.request.getParameterValues:获取前台表单多个标签同名name对应的所有value值3.request.getParameterN…

    2025年9月3日
    9
  • springboot使用h2数据库做单元测试_h2数据库对接SQL

    springboot使用h2数据库做单元测试_h2数据库对接SQLh2数据库很方便,不用安装,我们在springboot项目中添加相关依赖就可以了。maven配置<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId>

    2022年10月9日
    4
  • afc2add是什么_appsync怎么使用

    afc2add是什么_appsync怎么使用APPsync是iPhone、iPad、iPodtouch越狱后最常安装的补丁,安装后可以绕过系统验证,随意安装运行破解的ipa软件。软件类型:Cydia软件软件格式:deb对于…

    2022年5月3日
    65
  • bcnf分解算法_BCNF题解

    bcnf分解算法_BCNF题解设有关系模式 R A B C D E G 上的函数依赖集为 F A B B C AD G D E 求解 31 求关系模式 R 的所有侯选键 32 分别求属性集 G AD CD BC 的闭包 33 将关系模式 R 保持依赖地且无损地分解成 3NF 要求写出分解过程 34 将关系模式 R 无损地分解成 BCNF 要求写出分解过程 35 说明分解 R1 R2 R1 ABC R2 ADEG 的范式级别并说明理由

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号