[2023]Java后台开发工程师笔试题

news2024/11/18 1:26:26

这次试卷考察的都是偏基础的,而且没有编码题,很喜欢这家公司考察的方式,没有刻意求难,而是重基础,希望能达到这家公司的面试环节!如果能拿到offer那就大大的好!记录的主要是我不太会的

目录

  • 单选题
    • 线程的相关说法
    • 考察了sql的程序语言
    • 考察了redis的持久化
    • 关于容器类的说法,错误的是?
    • 下列关于索引的描述不正确的是()
    • 考察了java8内存划分
    • 考察了反射
    • 下列关于mybatis框架说法,正确的是?
    • 下列关于spring说法,正确的是?
    • 下列哪些操作会使线程释放锁资源?
    • 下列关于IO的相关说法,正确的是?
    • 下列关于对象克隆说法,正确的是?
    • 哪些情况会导致Mysql索引失效?
    • ThreadPoolExecutor有哪些常用的方法?

单选题

线程的相关说法

如果线程的 run 方法执行结束或抛出一个不能捕获的例外,线程便进入死亡状态。

suspend() 和 resume() 两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的 resume() 被调用,才能使得线程重新进入可执行状态。

考察了sql的程序语言

SQL程序语言有四种类型,对数据库的基本操作都属于这四类,它们分别为;数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL)

我觉得这个知识点挺少的,就是要熟练掌握

  • DDL(Data Definition Language):由CREATEALTERDROPTRUNCATE四个语法组成
  • DML(Data Manipulation Language):由insertupdatedelete语法组成
  • DQL(Data Query Language):由select组成
  • DCL(Data Control Language):授权grant、取消授权revoke等等操作

考察了redis的持久化

可以看我这篇文章

关于容器类的说法,错误的是?

A java8的hashmap默认在桶节点数为8转换为红黑树
B hashtable线程安全,容许使用空值对

选b,hashtable确实是线程安全的,但是它不允许使用空值对,hashmap线程不安全,允许使用空值对

下列关于索引的描述不正确的是()

A 可通过索引快速查找数据,减少查询执行时间

B 数据库索引采用B+树是因为B+树在提高了磁盘IO性能的同时解决了元素遍历效率低下的问题

C 如果WHERE子句中使用了索引,那么ORDER BY子句中不会使用索引

D 索引提高了查询速度,也会提高更新表的速度

在这里只解释cd,c这种说法不完全,要得是where中使用的索引也是order by排列所需要的,如果不是那么order by就需要使用索引

d的话则是正确的,因为即使是更新也要先找到数据后再进行更新,而索引确实提高了这一速度

考察了java8内存划分

image.png

考察了反射

A 因为反射是在运行时而不是在编译时,所以不会利用到编译优化,同时因为是动态生成,因此,反射操作的效率要比那些非反射操作低得多

B 任何继承AccessibleObject的类的对象都可以使用该方法取消Java语言访问权限设置

C 每个class(代表普通类)类,无论创建多少个实例对象,在JVM中都对应同一个Class对象

D 通过Field可以访问给定对象的类变量,包括获取变量的类型,修饰符,注解,变量名,变量的值或者重新设置变量值,即使变量是private的

交给chatgpt回答

下列关于mybatis框架说法,正确的是?

A 如果使用在order by中就需要使用$

B ${}:仅仅为一个纯粹的String替换,在动态SQL解析阶段将会进行变量替换

C mybaits中的cdata标签指的是不应由XML解析器进行解析的文本数据,所以SQL语句中存在“<”,“&”一般都需要用CDATA标签包住

D 使用#可以很大程度上防止sql注入

交给chatgpt回答

下列关于spring说法,正确的是?

A Spring IOC主要是基于Java的反射机制去实现的

B 静态属性以及线程中的属性不能使用@Autowired直接注入

C AOP增强的方法A,被同一个类中的另一个方法B调用,如果外部调用B,A也会被增强

D @Transactional只能被应用到public方法上

交给chatgpt回答,但我选abd

下列哪些操作会使线程释放锁资源?

A sleep()

B join()

C yield()

D wait()

sleep():调用sleep会导致当前线程休眠。与wait方法不同之处,sleep方法不会释放当前占有的锁,会导致线程进入TIMED-WAITING状态;而wait方法会导致当前线程进入WAITING状态

yield():yield()暂停当前方法,释放自己拥有的CPU,线程进入就绪状态。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!

join():加入线程(当前执行的线程是A线程,调用join()方法得是B线程)

wait():调用wait方法的线程会进入WAITING状态;只有等到其他线程之通知或被中断后才会返回。

下列关于IO的相关说法,正确的是?

A NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多

B 如果你有少量的连接使用非常高的带宽,一次性发送大量的数据,用NIO服务器来处理比IO服务器来处理更有优势

C JAVA处理大文件,更快的方式是采用MappedByteBuffer

D NIO通讯是将整个任务切换成许多小任务,由一个线程负责处理所有IO事件,并负责分发

交给chatgpt回答

下列关于对象克隆说法,正确的是?

A 使用序列化能完成深克隆的功能

B Object的clone()方法是在java平台层实现的native方法,且被protected修饰

C 深克隆:即克隆基本类型变量,也克隆引用类型变量

D 深克隆的方法需要被public修饰

c是对的,chat

哪些情况会导致Mysql索引失效?

  • 带有函数
  • 带有运算
  • 使用%XXX左模糊查询,因为mysql是最左原则
  • 使用范围查询,not in,in,>,<
  • 查询的字段不是索引的最左字段
  • 字段类型不匹配
  • or条件左右有一个不是索引字段

ThreadPoolExecutor有哪些常用的方法?

image.png
介绍几个方法

shutdown()和shutdownNew(),前者是使当前未执行的线程继续执行,而不再添加新的任务task,方法不会阻塞。后者则是停止正在执行的,用一个list<Runnable>队列来存储未运行的任务,并返回

awaitTermination(long timeout, TimeUnit unit):查看在指定的时间内,池子是否已经终止工作,即最多等待多少时间后去判断池子已经终止工作。一般和shutdown()方法配合

setThreadFactory方法+UncaughtExceptionHandler处理异常:对线程池创建的线程进行属性定制化,当程序抛出异常时,可以自定义处理。

set/getRejectExecutionHandler():可以处理任务被拒绝执行时的行动

prestartCoreThread():每次调用一次就创建一个核心线程,返回的是boolean

prestartAllCoreThreads():启动全部核心线程,返回的是启动核心线程的数量

remove(Runnable):可以删除尚未被执行的Runnable任务

多个get方法

  • getActiveCount() : 取得多少个线程正在执行的任务
  • getPoolSize() : 当前池中里面有多少个线程,包括正在执行任务的线程,也包括在休眠的线程
  • getCompletedTaskCount() :取得已经执行完成的任务数
  • getCorePoolSize() : 取的构造方法传入的corePoolSize参数值
  • getMaximumPoolSize() : 取的构造方法中MaximumPoolSize的参数值
  • getPoolSize() : 取的池中有多少个线程
  • getTaskCount() : 取得有多少个任务发送给了线程池,运行的+ 排队的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1338618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mongodb聚合_删除_可视化工具

3.5 MongoDB中limit和skip MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录&#xff0c;可以使用MongoDB的Limit方法&#xff0c;limit()方法接受一个数字参数&#xff0c;该参数指定从MongoDB中读取的记录条数。limit()方法基本语法如下所示&#xff1a;…

蓝桥杯2020年5月青少组Python程序设计国赛真题

1、 上边是一个算法流程图,最后输出的b的值是() A.377 B.987 C.1597 D.2584 2、 3、如果整个整数X本身是完全平方数,同时它的每一位数字也都是完全平方数我们就称X 是完美平方数。前几个完美平方数是0、1、4、9、49、100、144......即第1个完美平方数是0,第2个是 1,第3个…

【AI】人工智能爆发推进器之卷积神经网络

目录 一、什么是卷积神经网络 1. 卷积层&#xff08;Convolutional Layer&#xff09; 2. 激活函数&#xff08;Activation Function&#xff09; 3. 池化层&#xff08;Pooling Layer&#xff09; 4. 全连接层&#xff08;Fully Connected Layer&#xff09; 5. 训练过程…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

从GPU到屏幕渲染

一、Graphics Processing Unit GPU为图形处理单元&#xff1b; 一般将GPU与CPU放在一起对比&#xff1a; CPU的强项是做逻辑运算&#xff0c;GPU的强项是做数学运算和图形渲染&#xff1b; 双方都是运算处理器&#xff0c;从结构上来讲都包含运算单元ALU、控制单元Control和缓…

【笔记】Spring的事务是如何回滚的/Spring的事务管理是如何实现的

Spring的事务是如何回滚的/Spring的事务管理是如何实现的 数据库&#xff08;Spring事务&#xff09; 1、建立连接、开启事务&#xff08;准备工作&#xff09; 2、进行sql操作&#xff08;业务逻辑&#xff09; 3、执行成功&#xff0c;则commit&#xff1b; 执行失败&#x…

【LLM】Qwen学习

安装依赖 pip install transformers4.32.0 pip install accelerate pip install tiktoken pip install einops pip install transformers_stream_generator0.0.4 pip install scipy pip install auto-gptq optimum使用 参见官方介绍 模型 模型结构 QwenBlock 打印模型 ##…

sparkstreamnig实时处理入门

1.2 SparkStreaming实时处理入门 1.2.1 工程创建 导入maven依赖 <dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.12</artifactId><version>3.1.2</version> </dependency> <dependency…

K8S的二进制部署

K8S的源码包部署 搭建准备&#xff1a; k8smaster01&#xff1a;20.0.0.32 kube-apiserver kube-controller-manager kube-scheduler etcdk8smaster02&#xff1a;20.0.0.33 kube-apiserver kube-controller-manager kube-scheduler node节点01&#xff1a;20.0.0.34 …

Jenkins集成allure测试报告

前言 Allure框架是一个功能强大的自动化测试报告工具&#xff0c;不仅支持多种编程语言&#xff0c;而且能够完美的与各种集成工具结合&#xff0c;包括Jenkins&#xff0c;TeamCity&#xff0c;Bamboo&#xff0c;Maven等等&#xff0c;因此受到了很多测试人员的青睐&#xff…

Redis7快速入门

Docker安装Redis 指定密码&#xff1a; docker run --restartalways -p 6379:6379 --name redis -d redis:7.0.12 --requirepass zhangdapeng520不指定密码&#xff1a; docker run --restartalways -p 6379:6379 --name redis -d redis:7.0.12在真实的开发中&#xff0c;如…

【c++】入门1

c关键字 命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff…

C/C++图形化编程(1)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 信念是一把无坚不摧的利刃&#xff01…

每日一题-----逆序字符串

大家好我是Beilef&#xff0c;在一个美好的下午我意外接触到编程并且产生了兴趣&#xff0c;哈哈我要努力成为一个跨界者&#xff0c;让我们一起加油吧O(∩_∩)O 文章目录 目录 文章目录 前言 大家好请上车 一、逆序字符串 题⽬描述&#xff1a; 输⼊⼀个字符串&#xff0c;写…

Node.js版本对比

目录 1. node版本与Npm版本对照表 2. node版本与node-sass版本对照表 3. node-sass与sass-loader版本对照表 1. node版本与Npm版本对照表 以往的版本 | Node.js 下面显示最新的对应内容&#xff0c;如果需要查找历史版本&#xff0c;可以进入上面的页面查询 VersionLTSDateV8np…

使用CRA(create-react-app)初始化一个完整的项目环境(该初始化项目已上传到本文章的资源)

1. 整理项目结构&#xff0c;项目目录结构大致划分如下&#xff1a; 2. 安装sass 安装sass开发环境, 注意&#xff1a;使用的文件后缀名要用.scssnpm i sass -D3. 安装Ant Design npm i antd --save 4. 配置基础路由Router&#xff08;具体可参考ReactRouter使用详解&#x…

Kerberos安装教程与命令详解(超详细)

文章目录 前言一、安装准备1. 搭建集群2. 软件包介绍 二、使用shell脚本一键安装1. 复制脚本2. 增加执行权限3. 执行脚本 三、kdb5_util命令1. 简介2. 可用选项和命令的解释3. 常见命令及其说明4. 示例用法 四、kadmin命令1. 简介2. 可用选项和命令的解释3. 常见命令及其说明4.…

渗透测试——1.4主动扫描

主动扫描是别人可以发觉的情报收集 一、nmap的使用 1.nmap<目标主机>:最常用的扫描方式 有nmap版本、扫描时间 “host is up”表示目标主机处于开机状态、“not shown”未开放端口 有四个端口是开的&#xff08;135.139.445.912&#xff09; 2.nmap -p<端口范围…

折叠屏,移动办公的第二战场

当下的移动办公&#xff0c;正在转换战场。 从PC端到移动端&#xff0c;大屏链接小屏&#xff0c;协作模式从单人到团队&#xff0c;移动办公领域一直在发展和自我更新&#xff0c;这也是硬件和软件企业共同开辟的“第一战场”。 如今&#xff0c;折叠屏带来了新形态&#xf…

Kafka、RocketMQ、RabbitMQ消息丢失可能存在的地方,以及解决方案

这里主要对比&#xff1a;Kafka、RocketMQ、RabbitMQ 介绍一下消息生产、存储、消费三者的架构形式。 消息丢失可能存在的场景&#xff1a; 情况一&#xff1a; 生产者发送给MQ的过程消息丢失 在写消息的过程中因为网络的原因&#xff0c;还没到mq消息就丢失了&#xff1b;或…