Java春华秋实复习试题及答案_第1页
Java春华秋实复习试题及答案_第2页
Java春华秋实复习试题及答案_第3页
Java春华秋实复习试题及答案_第4页
Java春华秋实复习试题及答案_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页Java春华秋实复习试题及答案1.MySQL中,UTF-8字符集编码方式,下列描述正确的是:A、UTF-8不是定长,编码方式是1~4字节编码B、UTF-8是定长,编码方式是4字节编码C、UTF-8不是定长,编码方式是2字节或4字节编码D、UTF-8是定长,编码方式是2字节或4字节编码【正确答案】:A解析:UTF-8不是定长,编码方式是1~4字节编码。2.下列对Spring整合MyBatis理解错误的是?1.Spring整合MyBatis后,Mybatis的事务、数据源等信息都由Spring统一管理2.数据源将以Spring的Bean对象的形式被Spring管理3.Spring整合MyBatis后,Spring容器中注入的依旧sqlSessionFactoryA、1、2、3B、1、2C、1、3D、2、3【正确答案】:B解析:正确答案是:1、2-原因,Spring整合Mybatis后注入的是sqlSessionFactoryBean,它实现了`FactoryBean<SqlSessionFactory>`,`InitializingBean`,`ApplicationListener<ApplicationEvent>`接口3.`bash`中,在一条命令后加入`1>&2`正确的解释是______。A、标准错误输出重定向到标准输入B、标准输入重定向到标准错误输出C、标准输出重定向到标准错误输出D、标准输出重定向到标准输入【正确答案】:C解析:在`bash`中,在一条命令后加入`1>&2`意味着:标准输出重定向到标准错误输出。4.Spring框架的持久化支持说法错误的是A、Spring没有自己的持久化方案,它集合了现有的流行持久化框架B、Spring采用JDBC模板封装了JDBC的数据库操作C、Spring对各种持久化技术提供了统一的编程方式D、Spring将数据库访问的checked异常转换为运行时异常【正确答案】:C解析:Spring对多个持久化技术提供了集成的支持,借助于Spring框架提供的DAO抽象,开发者能够以统一的方式同数据访问技术(比如JDBC、Hibernate、JDO、TopLink)进行交互。JdbcTemplate是Spring为借助JDBC操作RDBMS而提供的实用模版类,简化了JDBC操作。Spring提供了DataAccessException,这个异常类对现有多种数据库访问技术的异常进行封装,为我们提供了一个与底层数据库无关的异常体系,因此可以方便地处理各种数据访问异常,该异常类是RuntimeException。5.修改一个用户信息正确的是?A、<updateid=""updateUser""parameterType=""com.mybatis.test.User"">updateusersetname=#{name},sex=#{sex}whereid=#{id}<update>B、<updateid=""updateUser""resulType=”com.mybatis.test.User”>updateusersetname=#{name},sex=#{sex}whereid=#{id}<update>C、<updateid=""updateUser""parameterType=""com.mybatis.test.User"">updateusersetname=#{name},sex=#{sex}<update>D、<updateid=""updateUser""resulType=”com.mybatis.test.User”>updateusersetname=#{name},sex=#{sex}<update>【正确答案】:A解析:<updateid="updateUser"parameterType="com.mybatis.test.User">updateusersetname=#{name},sex=#{sex}whereid=#{id}<update>修改某个用户的信息需要加where条件,要不然就会全表修改6.在使用Redis哈希(Hash)存储用户信息的场景中,为了提高性能和安全性,需要使用Redis连接池来管理Redis连接。以下哪个选项是正确的做法?A、在每次操作哈希数据之前,调用`jedisPool.getResource()`方法获取一个Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用`jedis.close()`方法将该对象归还给连接池B、在每次操作哈希数据之前,调用`jedisPool.getResource()`方法获取一个Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用`jedis.quit()`方法关闭该对象C、在程序初始化时,调用`jedisPool.getResource()`方法获取一个Jedis对象,然后将该对象作为全局变量使用,在程序中使用该对象的hset、hget等方法操作哈希数据,不需要关闭或归还该对象D、在每次操作哈希数据之前,创建一个新的Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用`jedis.close()`方法关闭该对象【正确答案】:A解析:选项:在每次操作哈希数据之前,调用jedisPool.getResource()方法获取一个Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用jedis.close()方法将该对象归还给连接池。解析:正确。这是使用Redis连接池的标准流程,可以避免频繁创建和销毁连接,提高性能和资源利用率,同时也可以避免连接泄露的风险。选项:在每次操作哈希数据之前,调用jedisPool.getResource()方法获取一个Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用jedis.quit()方法关闭该对象。解析:错误。调用jedis.quit()方法会关闭该对象的底层连接,导致连接池中的连接无法复用,降低性能和资源利用率,同时也可能导致连接池耗尽的异常。选项:在程序初始化时,调用jedisPool.getResource()方法获取一个Jedis对象,然后将该对象作为全局变量使用,在程序中使用该对象的hset、hget等方法操作哈希数据,不需要关闭或归还该对象。解析:错误。这种做法会导致连接池中只有一个连接被使用,其他连接被闲置,浪费资源,同时也会影响并发性能。另外,如果该对象出现异常或超时,就无法自动恢复或重连,导致程序无法正常运行。选项:在每次操作哈希数据之前,创建一个新的Jedis对象,然后使用该对象的hset、hget等方法操作哈希数据,最后调用jedis.close()方法关闭该对象。解析:错误。这种做法没有使用连接池的优势,反而会造成频繁创建和销毁连接,消耗性能和资源,同时也可能导致连接数过多的异常。7.会在内核的高速缓存区中建立一颗红黑树以及就绪链表(该链表存储已经就绪的文件描述符)需要执行的函数是?A、epollB、epoll_createC、createD、epoll_created【正确答案】:B解析:执行epoll_create函数会在内核的高速缓存区中建立一颗红黑树以及就绪链表(该链表存储已经就绪的文件描述符)。8.有关Servlet的生命周期说法正确的有?1.Servlet的生命周期由Servlet实例控制2.`init()`方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象3.`service()`方法响应客户端发出的请求4.`destroy()`方法释放Servlet实例A、其他三项都正确B、除了选项‘destroy()方法释放Servlet实例’之外的所有选项C、除了‘Servlet的生命周期由Servlet实例控制’之外的所有选项D、除了‘init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象’之外的所有选项【正确答案】:C解析:考察Servlet基础知识点9.类型别名用来减少类完全限定名的冗余,在MyBatis的配置文件中,定义多个别名,分别对应不同的Java类,以下实现错误的是?A、在MyBatis的配置文件中使用`<typeAliases>`标签定义多个别名。示例如下:```<typeAliases><typeAliastype="com.example.model.User"alias="User"><typeAliastype="com.example.model.Order"alias="Order"><typeAliases>```B、在Java类中使用注解`@Alias`定义别名。示例如下:```@Alias("User")publicclassUser{...}@Alias("Order")publicclassOrder{...}```同时需要在MyBatis的配置文件中启用注解扫描功能,示例如下:```<settings><settingname="useAliasRegistry"value="true"><settings>```C、在MyBatis的Mapper映射文件中使用`<typeAlias>`标签定义别名。示例如下:```<mappernamespace="com.example.mapper.UserMapper"><typeAliastype="com.example.model.User"alias="User"><selectid="getUserById"resultType="User">SELECT*FROMusersWHEREid=#{id}<select><mapper><mappernamespace="com.example.mapper.OrderMapper"><typeAliastype="com.example.model.Order"alias="Order"><selectid="getOrderById"resultType="Order">SELECT*FROMordersWHEREid=#{id}<select><mapper>```D、在Java类中使用注解`@Alias`定义别名。示例如下:```@Alias("User")publicclassUser{...}@Alias("Order")publicclassOrder{...}```【正确答案】:D解析:在Java类中使用注解`@Alias`定义别名,使用该方式,需要在MyBatis的配置文件中启用注解扫描功能。本选项描述逻辑不完整,故为此实现错误方案。10.mybatis中`<if>`标签中的test属性使用正确的是?1.在mybatis中要实现动态sql,重要方式就是使用test,通过其中表达式返回的true、false来达到动态sql的拼接。2.在test判断条件中判断Integer类型的两个值是否一致使用`==`。3.在test判断条件中判断String类型的两个值是否一致使用`equal`。A、1、2、3B、1、2C、1、3D、2、3【正确答案】:B解析:正确答案是:1、2在```<if>```标签中的test属性中字符串也是使用==进行判断11.现有如下需求:每天中午12点触发定时任务,如何实现?A、在定时类中的方法上添加@Scheduled(cron=0012**?)B、在定时方法上添加@Scheduled(cron=012***?)C、在定时类上添加@Scheduled(cron=0012**?)D、在定时类上添加@Scheduled(cron=012***?)【正确答案】:A解析:在定时类中的方法上添加@Scheduled(cron=0012**?)12.MySQL在创建表时是使用什么子句来定义每个分区存放的数据的A、DISTRIBUTEDATAB、DATASTRUCTC、PARITIONBYDATAINDEX【正确答案】:C解析:数据库中PARITIONBY的作用是为数据子句定义每个分区存放的数据。13.SpringMVC中,如果要支持DELETE和PUT请求,在发送请求时,需要传入以下哪个参数?A、methodB、_deleteC、_putD、_method【正确答案】:D解析:要支持DELETE和PUT请求,要含有_method参数14.关于Mybatis默认执行器描述正确的是:1.SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完不立刻关闭Statement对象,等待一段时间自动关闭。2.ReuseExecutor:执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map内,供下一次使用。3.BatchExecutor:执行update,将所有sql都添加到批处理中,等待统一执行(executeBatch()),它缓存了多个Statement对象,每个Statement对象都是addBatch()完毕后,等待逐一执行executeBatch()批处理。A、1、2、3B、1、2C、2、3D、1、3【正确答案】:C解析:正确答案是2、3-原因:SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。15.电商项目中统计每家店铺2023年的2月20号到25号每天的经营状况【销售金额(real_sales_money)、会员数(members_id)、促销金额(promotion_amount)、促销占比(rate),解决这种问题:我们可以使用下面的SQL哪种合适?其中店铺(shop),销售表(sales),日期(date)。A、```,t1.shop_id,t1.date,sum(real_sales_money)asreal_sales_money,count(distinctmembers_id)asmembers_id,sum(promotion_amount)aspromotion_amount,sum(promotion_amount)sum(promotion_amount)asratefromdw.salest1joindw.shopt2ont1.shop_id=t2.shop_idwheret1.datebetween'20230220'and'20230225',t1.shop_id,t1.date;```B、```,t1.shop_id,t1.date,sum(real_sales_money)asreal_sales_money,count(distinctmembers_id)asmembers_id,sum(promotion_amount)aspromotion_amount,sum(promotion_amount)sum(promotion_amount)asratefromdw.salest1joindw.shopt2ont1.shop_id=t2.shop_idwheret1.datebetween'20230220'or'20230225';```C、```,t1.shop_id,t1.date,sum(real_sales_money)asreal_sales_money,count(distinctmembers_id)asmembers_id,sum(promotion_amount)aspromotion_amount,sum(promotion_amount)sum(promotion_amount)asratefromdw.salest1joindw.shopt2ont1.shop_id=t2.shop_idwheret1.datebetween'20230220'and'20230225'```D、```,t1.shop_id,t1.date,sum(real_sales_money)asreal_sales_money,count(distinctmembers_id)asmembers_id,sum(promotion_amount)aspromotion_amount,sum(promotion_amount)sum(promotion_amount)asratefromdw.salest1wheret1.datebetween'20230220'and'20230225',t1.shop_id,t1.date;```【正确答案】:A解析:该种场景常见数仓之中,首先我们确定维度:店铺表(shop),销售表(sales),日期区间(betweenand),然后统计需要用到groupby,且select中的字段必须和groupby一致才有效,这样就能确定选项了。16.Redis的string类型和C语言中的字符指针类型在存储方面的不同点是?A、Redis的string类型是二进制安全的B、Redis的string类型能存字符串C、Redis的string类型占用的内存较少D、Redis的string类型长度固定【正确答案】:A解析:C语言中的string不是二进制安全的17.下列关于网关的技术哪个不是SpringCloudGateway的关键组成?A、路由B、断言C、过滤器D、安全【正确答案】:D解析:路由:网关的基本模块,有ID,目标URI,一组断言和一组过滤器组成。断言:就是访问该旅游的访问规则,可以用来匹配来自http请求的任何内容,例如headers或者参数。过滤器:这个就是我们平时说的过滤器,用来过滤一些请求的,gateway有自己默认的过滤器,具体请参考官网,我们也可以自定义过滤器,但是要实现两个接口,ordered和globalfilter。18.当我们微服务的数量越来越多,势必会有相同的配置,这时我们可以将相同的配置抽取出来作为项目中共有的配置,Nacos也支持这种配置写法。请问当多个DataId同时出现相同的配置时,我们应该选择以下哪个优先级?A、优先级关系是`spring.cloud.nacos.config.extension-configs[n].data-id`,其中n的值越大,优先级越高B、优先级关系是`spring.cloud.nacos.config.extension-configs[n].data-id`,其中n的值越小,优先级越高C、优先级关系是`spring.cloud.nacos.config.shared-configs[n].data-id`,其中n的值越大,优先级越高D、优先级关系是`spring.cloud.nacos.config.shared-configs[n].data-id`,其中n的值越小,优先级越高【正确答案】:A解析:当多个DataId同时出现相同的配置时,它的优先级关系是`spring.cloud.nacos.config.extension-configs[n].data-id`其中n的值越大,优先级越高。注意:`spring.cloud.nacos.config.extension-configs[n].data-id`的值必须带文件扩展名,文件扩展名既可支持properties,又可以支持yamlyml。19.下面命令执行完毕之后将输出什么?```ZADDt50"s"60"t"60"x"40"l"ZADDr20"t"20"s"30"l"20"x"ZADDz200"s"200"l"ZINTERSTOREy2trWEIGHTS31ZUNIONSTOREv2yzAGGREGATEMAXZREMRANGEBYLEXv-(sZRANGEBYLEXv(s+limit11```A、"t"B、"x"C、"s"D、空集【正确答案】:B解析:```ZADDt50"s"60"t"60"x"40"l"ZADDr20"t"20"s"30"l"20"x"ZADDz200"s"200"l"获取tr的交集,先将tr中元素的分数分别乘以31,在取分数之和y:l(150)s(170)t(200)x(200)ZINTERSTOREy2trWEIGHTS31获取yz的并集,分数取在两个集合中的最大值v:l(200)s(200)t(200)x(200)ZUNIONSTOREv2yzAGGREGATEMAXZREMRANGEBYLEXv-(s删除有序集合中从开始到s的元素,s是闭区间;v:stxZRANGEBYLEXv(s+limit11获取有序集合从v到s的元素,s是闭区间,从索引1开始:x```20.下面哪个不是Redis集群中的节点的责任?A、持有键值对数据B、记录集群的状态,包括键到正确节点的映射(mappingkeystorightnodes)C、重启服务D、自动发现其他节点,识别工作不正常的节点,并在有需要时,再从节点中选举出新的主节点【正确答案】:C解析:Redis集群中的节点有以下责任:持有键值对数据。记录集群的状态,包括键到正确节点的映射(mappingkeystorightnodes)。自动发现其他节点,识别工作不正常的节点,并在有需要时,在从节点中选举出新的主节点。21.请问MySQL的DQL语法,查出商品表goods表中商品价格price不等于1000的语句,不准确的是?A、`select*fromgoodswhereprice!=1000`B、`select*fromgoodswherepricenot1000`C、`select*fromgoodswhereprice<>1000`D、`select*fromgoodswhereprice>1000orprice<1000`【正确答案】:B解析:选项中“select*fromgoodswherepricenot1000”没有字段is数值的这种写法”22.JavaConfig的优点不包括A、面向对象的配置B、完全消除XML配置C、类型安全和重构友好D、配置类可以继承另一个,重写它的@Bean方法【正确答案】:B解析:JavaConfig的优点是:-面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。-减少或消除XML配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在XML和Java之间来回切换。JavaConfig为开发人员提供了一种纯Java方法来配置与XML配置概念相似的Spring容器。从技术角度来讲,只使用JavaConfig配置类来配置容器是可行的,但实际上很多人认为将JavaConfig与XML混合匹配是理想的。-类型安全和重构友好。JavaConfig提供了一种类型安全的方法来配置Spring容器。由于Java5.0对泛型的支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串的查找。23.假设有个微服务商品,将商品(shop-product)微服务注册到nacos,下面的做法不正确的是?A、在pom.xml中添加nacos依赖B、在调用方法前添加@EnableDiscoveryClient注解C、启动商品服务查看nacos控制面板是否成功注册D、在application.yml中添加nacos服务的地址【正确答案】:B解析:在启动类上添加@EnableDiscoveryClient注解。24.现需要通过name作为条件模糊查询,下列语句哪个更优?A、```<selectid="getCreditRatingName"parameterType="enty">select*fromtablewherenamelike'%${name}%'<select>```B、```<selectid="getCreditRatingName"parameterType="enty">select*fromtablewhere<if>namelike'%${name}%'<if><select>```C、```<selectid="getCreditRatingName"parameterType="enty">select*fromtablewhere<if>andnamelike'%${name}%'<if><select>```D、```<selectid="getCreditRatingName"parameterType="enty">select*fromtablewhere<if>andnamelike#{bindeName}<if><select>```【正确答案】:D解析:正确答案是:```<selectid="getCreditRatingName"parameterType="enty">select*fromtablewhere<if>andnamelike#{bindeName}<if><select>```25.在web容器中,springboot中bean的作用域有如下几类,哪个不是bean的作用域?A、session:HTTP会话B、factorycontext:Web工程生命周期C、request:Web工程单次请求D、globalSession:全局的HttpSession中【正确答案】:B解析:应该是application作用域,不是factorycontext,目的即是Web工程生命周期26.Java中有如下示例代码,执行后会输出什么结果?```classMyClass{@NotNullFiled不能为空@ValidString({"hello","world"})Field为"hello"或"world"privateStringvalue;publicMyClass(Stringvalue){this.value=value;}}@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@interfaceValidString{Field为数组之一,实现细节忽略String[]value();}@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@interfaceNotNull{}Filed不能为空,实现细节忽略publicclassTest{publicstaticvoidmain(String[]args){MyClassmyClass1=newMyClass("hello");MyClassmyClass2=newMyClass("world");MyClassmyClass3=newMyClass(null);MyClassmyClass4=newMyClass("foo");}}```A、编译失败B、运行时抛出异常C、MyClass对象的value变量为nullD、MyClass对象的value变量为"foo【正确答案】:B解析:以上代码使用了Java语言中的注解来进行参数的验证。@NotNull注解表示注解所在的Filed必须不能为空。@ValidString注解表示注解所在的Field必须等于"hello"或"world"中的一个。当调用MyClass的构造函数并传入不符合要求的参数时,将会抛出运行时异常。27.pringSecurity中,以下可以对方法的返回值进行过滤的注解是?A、@PostAuthorizeB、@PostFilterC、@PreFilterD、@PreAuthorize【正确答案】:B解析:@PostAuthorize允许方法调用,但是如果表达式计算结果为false,则会抛出一个安全异常@PreFilter允许方法调用,但必须按照表达式来过滤方法的结果@PreAuthorize可以在方法调用之前,基于表达式的计算结果来限制对方法的访问28.下列关于服务治理主要包括?1.服务的自动化注册2.服务的自动化发现3.服务的自动化续约4.服务的自动化销毁A、1、2、3B、1、3、4C、1、2、4D、1、2、3、4【正确答案】:D解析:正确答案是:1、2、3、429.为了优化数据库中的商品信息表,开发人员编写了一个根据商品名称查询商品价格的自定义函数:```sqlCREATEFUNCTIONget_product_price(product_nameVARCHAR(100))RETURNSDECIMAL(10,2)BEGINDECLAREpriceDECIMAL(10,2);SELECTp.priceINTOpriceFROMproductspWHERE=product_name;RETURNprice;END```下列哪种方案可以进一步优化该函数的性能?A、在商品名称字段上使用`LOWER()`函数以忽略大小写进行查询B、在商品名称字段上创建索引,加速查询速度C、将自定义函数转换为存储过程,通过参数传入商品名称D、直接使用商品名称字段查询价格,不使用自定义函数【正确答案】:B解析:-在商品名称字段上使用`LOWER()`函数以忽略大小写进行查询。错误。解析:使用`LOWER()`函数会导致索引失效,因为它改变了字段的内容,从而降低查询性能。-在商品名称字段上创建索引,加速查询速度。正确。解析:正确,索引可以优化商品名称的查询,从而提高自定义函数的整体性能。-将自定义函数转换为存储过程,通过参数传入商品名称。错误。解析:存储过程与自定义函数在本题性能上没有区别。-直接使用商品名称字段查询价格,不使用自定义函数。错误。解析:直接查询也可以实现功能,但题目要求是优化给定的自定义函数。30.SpringBoot中,关于扫描装配Bean使用的`@Component`和`@ComponentScan`注解说法正确的是?A、`@Component`是表明采用何种策略去扫描装配BeanB、`@ComponentScan`是表明哪个类被扫描进入SpringIoC容器C、`@Component`和`@ComponentScan`作用一样D、`@ComponentScan`会扫描当前类所在的包及其子包【正确答案】:D解析:`@Component`和`@ComponentScan`作用不一样,`@ComponentScan`是表明采用何种策略去扫描装配Bean,`@Component`是表明哪个类被扫描进入SpringIoC容器31.方法头中abstract修饰符的含义是?A、方法体为空B、定义的方法没有形参C、该方法属于类的方法D、方法的返回值不能参加算数运算【正确答案】:A解析:方法体为空32.下列选项中,哪个选项是静态库的优点?A、静态函数库编译成的文件比较大B、编译后的执行程序需要外部的函数库支持C、编译后的执行程序不需要外部的函数库支持D、静态函数库改变了,程序必须重新编译【正确答案】:C解析:静态库的优点:编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。33.Java中,以下哪段代码能够正确地判断字符串str是否以子串sub开头,并返回相应的布尔值?A、```Stringstr="HelloWorld";Stringsub="Hello";booleanstartsWithSub=str.substring(0,sub.length()).equals(sub);System.out.println(startsWithSub);```B、```Stringstr="HelloWorld";Stringsub="Hello";booleanstartsWithSub=str.startsWith(sub);System.out.println(startsWithSub);```C、```Stringstr="HelloWorld";Stringsub="Hello";booleanstartsWithSub=str.contains(sub);System.out.println(startsWithSub);```D、```Stringstr="HelloWorld";Stringsub="Hello";booleanstartsWithSub=str.indexOf(sub)==1;System.out.println(startsWithSub);```【正确答案】:B解析:```Stringstr="HelloWorld";Stringsub="Hello";booleanstartsWithSub=str.startsWith(sub);System.out.println(startsWithSub);```使用了String类的startsWith()方法,该方法直接判断字符串是否以指定的前缀开头,并返回布尔值。这是判断字符串是否以子串开头最直接且高效的方法。34.SpringCloud中,Sentinel组件的限流规则中表示限流阈值类型的是?A、resourceB、countC、gradeD、limitApp【正确答案】:C解析:grade:限流阈值类型,QPS或并发线程数35.下面对PFCOUNT命令描述不正确的是?```PFCOUNTkey[key...]```A、返回给定HyperLogLog包含的唯一元素的近似数量,又称近似基数B、当命令作用于单个键时,返回储存在给定键的HyperLogLog的近似基数,如果键不存在,那么返回0C、当命令左右多个键时,返回多个key的HyperLogLog的近似基数之和D、命令返回的可见集合(observedset)基数并不是精确值,而是一个带有0.81%标准错误(standarderror)的近似值【正确答案】:C解析:当命令左右多个键时,先获取多个key的并集,在从并集中获取基数近视值36.```Listlist=newArrayList();list.add(1);list.add(2);list.add(3);list.add(4);Objectobj=Collections.max(list);System.out.println(obj);```以上结果会输出什么A、1B、2C、3D、4【正确答案】:D解析:Collections.max(list)求出最大值,进行输出,结果是:437.关于Mybatis延迟加载理解正确的是:1.可以通过配置是否启用延迟加载lazyLoadingEnabled=true|false控制2.association关联对象和collection关联集合对象可以延迟加载3.可以通过```<selectlazyLoad="true">```的方式配置延迟加载A、1、2、3B、2、3C、1、2D、1、3【正确答案】:C解析:正确答案是1、2原因:```<select>```标签没有lazyLoad属性,且Mybatis仅支持association关联对象和collection关联集合对象的延迟加载38.在一般情况下,每个Sentinel(哨兵)进程会以多少一次的频率向集群中的所有Master主服务器、Slave从服务器发送INFO命令?A、每10秒B、每20秒C、每30秒D、每60秒【正确答案】:A解析:在一般情况下,每个Sentinel(哨兵)进程会以每10秒一次的频率向集群中的所有Master主服务器、Slave从服务器发送INFO命令。39.@Service注解的作用A、将java类标记为bean,是任何Spring管理组件的通用构造型。B、将一个类标记为SpringWeb控制器,会自动导入到IoC容器中。C、组件注解的特化,在服务层类中更好指定了意图。D、将DAO导入IoC容器,使未经检查的异常有资格转换为SpringDataAccessException。【正确答案】:C解析:@Service:此注解是组件注解的特化。它不会对@Component注解提供任何其他行为。您可以在服务层类中使用@Service而不是@Component,因为它以更好的方式指定了意图。40.下列语句序列执行后,i的值是多少?```inti=16;do{i=2;}while(i>3);```A、16B、8C、4D、2【正确答案】:D解析:=是复合赋值运算符,i=2相当于i=i2;while循环计算直至i值小于3,故结果为2。41.LoadBalancer负载均衡有哪几种实现策略?1.随机(Random)2.轮询(RoundRobin)3.一致性哈希(ConsistentHash)4.哈希(Hash)A、1、2、3、4B、2、3、4C、1、2、3D、3、4【正确答案】:A解析:正确答案是:1、2、3、442.定时过期键删除策略的问题是?A、CPU负载过高B、无法及时删除过期键C、无法删除所有过期键D、网络带宽负载高【正确答案】:A解析:定时删除策略对所有的过期键都设置了定时器,所以CPU负载很高,一般不用43.MySQL中,当你设计一个存储用户信息的表时,user_info,以下哪个字段设计最不适合作为主键(PrimaryKey)?A、user_id(INT,AUTO_INCREMENT)B、email(VARCHAR(255),UNIQUE)C、username(VARCHAR(50),UNIQUE)D、password(VARCHAR(255),NOTNULL)【正确答案】:D解析:password(VARCHAR(255),NOTNULL)-这不适合作为主键。首先,密码本身不应该是公开的,因此它不应该用于唯一标识用户。其次,密码通常会被哈希处理,哈希后的值可能会由于哈希冲突而不再是唯一的。此外,密码可能会因安全原因而更改,但这不应该影响主键的值。44.通过设置一个maven项目并添加正确的依赖项来开始一个SpringBoot项目,下面无关的步骤是哪一步?A、在IDE中,使用文件-新建Maven项目来创建一个新SpringBoot项目B、添加依赖项,添加Maven插件C、安装Tomcat作为web容器D、添加SpringBoot应用程序类【正确答案】:C解析:Springboot内置了tomcat,SpringBoot本质是Java应用,一定要有容器来运行。但是Tomcat还是Netty都可以,不需要我们再单独配置,Springboot是使用tomcat或者jetty当做他内置的容器,不需要打成war包,直接打成jar包然后java-jar就可以运行了。所以安装Tomcat作为web容器不是必备的一步。45.下列不属于用Hystrix组件进行请求合并方式处理雪崩效应使用的注解的是?A、@EnableCircuitBreakerB、@HystrixCommandC、@HystrixCollapserD、@EnableCaching【正确答案】:D解析:@EnableCircuitBreaker-开启断路器使用注解@HystrixCollapser来描述需要合并请求的方法,并提供合并方法使用注解@HystrixCommand来描述。当合并条件(@HystrixCollapser)满足时,会触发合并方法(@HystrixCommand)来调用远程服务并得到结果46.关于AIO的说法,下列描述正确的是?A、适用于连接数比较多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂B、适用于连接数比较少且连接比较短的架构,充分调用OS参与并发操作,编程比较简单C、AIO也是会阻塞的D、使用AIO能够加快IO,不需要等执行完就可以通知【正确答案】:A解析:适用于连接数比较多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂47.在Redis中,下列关于事务的一些描述,正确的是?A、`Redis`的事务是一组命令的原子性操作B、`Redis`的事务支持跨多个数据库的操作C、`Redis`的事务在执行期间可以修改其他客户端的数据D、`Redis`的事务是保证并发安全的,无需考虑并发冲突【正确答案】:A解析:"`Redis`的事务是一组命令的原子性操作"。是本题正确答案。Redis的事务是一组命令的原子性操作,要么全部成功执行,要么全部失败回滚,不存在部分执行成功和部分执行失败的情况。在一个事务中,如果任何一个操作失败或出错,所有已经执行的操作都会被回滚,事务的状态会回滚到执行事务前的状态。"`Redis`的事务支持跨多个数据库的操作"。该选项不是正确答案。Redis的事务只能在同一个数据库中进行操作,不支持跨多个数据库的操作。"`Redis`的事务在执行期间可以修改其他客户端的数据"。该选项不是正确答案。Redis的事务在执行期间是排他的,其他客户端无法修改数据,只有当前事务执行完毕后才能进行修改。"`Redis`的事务是保证并发安全的,无需考虑并发冲突"。该选项不是正确答案。Redis的事务并不自动处理并发冲突,需要应用程序在事务中处理并发问题,比如使用WATCH命令来监视某个键,防止其他客户端在事务执行过程中修改该键。48.Redis在什么时候会开启多个进程?A、bgsaveB、多路复用C、内存加锁D、更新key对应的value【正确答案】:A解析:在bgsave时,Redis会fork一个新的进程来后台完成快照的生成49.有如下一段代码,连续4次调用executeAsync方法,最终程序输出的内容是?```@Configuration@EnableAsyncpublicclassThreadPoolConfig{@BeanpublicTaskExecutortaskExecutor(){ThreadPoolTaskExecutorexecutor=newThreadPoolTaskExecutor();设置核心线程数executor.setCorePoolSize(4);设置最大线程数executor.setMaxPoolSize(8);设置队列容量executor.setQueueCapacity(10);设置允许的空闲时间(秒)executor.setKeepAliveSeconds(keepAlive);设置默认线程名称executor.setThreadNamePrefix("thread-");设置拒绝策略rejection-policy:当pool已经达到maxsize的时候,如何处理新任务CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行executor.setRejectedExecutionHandler(newThreadPoolExecutor.CallerRunsPolicy());等待所有任务结束后再关闭线程池executor.setWaitForTasksToCompleteOnShutdown(true);returnexecutor;}}@ServicepublicclassAsyncService{@Async("taskExecutor")publicvoidexecuteAsync(){try{System.out.println("当前运行的线程名称:"+Thread.currentThread().getName());}catch(Exceptione){e.printStackTrace();}}}```A、```当前运行的线程名称:thread-1当前运行的线程名称:thread-2当前运行的线程名称:thread-3当前运行的线程名称:thread-4```B、```当前运行的线程名称:thread-1当前运行的线程名称:thread-1当前运行的线程名称:thread-1当前运行的线程名称:thread-1```C、```当前运行的线程名称:thread-1当前运行的线程名称:thread-1当前运行的线程名称:thread-2当前运行的线程名称:thread-2```D、```当前运行的线程名称:thread-1当前运行的线程名称:thread-1当前运行的线程名称:thread-2当前运行的线程名称:thread-3```【正确答案】:A解析:线程池处理线程任务采用轮询,连续调用4次在控制台输出的结果是:```当前运行的线程名称:thread-1当前运行的线程名称:thread-2当前运行的线程名称:thread-3当前运行的线程名称:thread-4```50.以下关于构造方法的说法,正确的是?A、一个类的构造方法,可以有多个B、构造方法在类定义时被调用C、构造方法只能由对象中其他方法调用D、构造方法可以和类同名,也可以和类不同名【正确答案】:A解析:一个类的构造方法,可以有多个51.MySQL、Oracle、SQLServer这些数据库软件支持标准SQL,也就是通过SQL可以使用这些软件,不过每一个数据库系统会在标准SQL的基础上扩展自己的SQL语法。SQL是一种用于操作数据库的语言,SQL适用于()数据库?请问括号处填写什么类型的数据库最佳?A、关系型B、非关系型C、列类型D、行类型【正确答案】:A解析:SQL适应于关系型数据库,大部分的NoSQL数据库有自己的操作语言,对SQL支持的并不好。52.对于Apache服务器,提供的子进程的缺省的用户是______。A、rootB、apachedC、httpdD、nobody【正确答案】:D解析:对于Apache服务器,提供的子进程的缺省的用户是:nobody。53.`@Controller`注解的功能是:A、将java类标记为bean,是任何Spring管理组件的通用构造型。B、将一个类标记为SpringWeb控制器,会自动导入到IoC容器中。C、组件注解的特化,在服务层类中更好指定了意图。D、将DAO导入IoC容器,使未经检查的异常有资格转换为SpringDataAccessException。【正确答案】:B解析:`@Controller`:这将一个类标记为SpringWebMVC控制器。标有它的Bean会自动导入到IoC容器中。54.有如下一段代码,运行代码控制台输出的结果是?```java@DatapublicclassStudentBean{privateStringuserName;privateStringuserCode;privateStringpassworld;}@ComponentpublicclassFactoryBeanDemoImplimplementsFactoryBean<StudentBean>{@OverridepublicStudentBeangetObject()throwsException{returnnewStudentBean();}@OverridepublicClass<?>getObjectType(){returnStudentBean.class;}}@TestpublicvoidspringTest7(){获取spring上下文对象ApplicationContextapplicationContext=newClassPathXmlApplicationContext("spring-application.xml");StudentBeanstudentBean=(StudentBean)applicationContext.getBean("factoryBeanDemoImpl");System.out.println(studentBean);FactoryBeanDemoImplfactoryBeanDemo=(FactoryBeanDemoImpl)applicationContext.getBean("&factoryBeanDemoImpl");System.out.println(factoryBeanDemo);}```A、```javaStudentBean(userName=null,userCode=null,passworld=null)com.bean.factoryBean.FactoryBeanDemoImpl@6d6bc158```B、```javanullcom.bean.factoryBean.FactoryBeanDemoImpl@6d6bc158```C、```javaStudentBean(userName=null,userCode=null,passworld=null)null```D、抛出ClassCastException【正确答案】:A解析:getBean("factoryBeanDemoImpl")获取的配置的对象newStudentBean();getBean("&factoryBeanDemoImpl")获取的是对象本身的实例com.bean.factoryBean.FactoryBeanDemoImpl@6d6bc15855.下列代码对DeserializeDemo程序进行了反序列化,其执行结果是?-Employee类```javapublicclassEmployeeimplementsjava.io.Serializable{publicStringname;publicStringaddress;publictransientintSSN;publicintnumber;}```-序列化Demo代码```javaimportjava.io.*;publicclassSerializeDemo{publicstaticvoidmain(String[]args){Employeee=newEmployee();="ReyanAli";e.address="PhokkaKuan,AmbehtaPeer";e.SSN=11122333;e.number=101;try{FileOutputStreamfileOut=newFileOutputStream("tmpemployee.ser");ObjectOutputStreamout=newObjectOutputStream(fileOut);out.writeObject(e);out.close();fileOut.close();System.out.printf("Serializeddataissavedintmpemployee.ser");}catch(IOExceptioni){i.printStackTrace();}}}```-反序列化Demo```javaimportjava.io.*;publicclassDeserializeDemo{publicstaticvoidmain(String[]args){Employeee=null;try{FileInputStreamfileIn=newFileInputStream("tmpemployee.ser");ObjectInputStreamin=newObjectInputStream(fileIn);e=(Employee)in.readObject();in.close();fileIn.close();}catch(IOExceptioni){i.printStackTrace();return;}catch(ClassNotFoundExceptionc){System.out.println("Employeeclassnotfound");c.printStackTrace();return;}System.out.println("DeserializedEmployee...");System.out.println("Name:"+);System.out.println("Address:"+e.address);System.out.println("SSN:"+e.SSN);System.out.println("Number:"+e.number);}}```A、```javaDeserializedEmployee...Name:ReyanAliAddress:PhokkaKuan,AmbehtaPeerSSN:0Number:101```B、```javaName:ReyanAliAddress:PhokkaKuan,AmbehtaPeerSSN:0Number:101```C、```javaDeserializedEmployee...Name:ReyanAliAddress:PhokkaKuan,AmbehtaPeerSSN:101Number:0```D、```javaDeserializedEmployee...Name:ReyanAliSSN:0Number:101```【正确答案】:A解析:这里要注意以下要点:readObject()方法中的trycatch代码块尝试捕获ClassNotFoundException异常。对于JVM可以反序列化对象,它必须是能够找到字节码的类。如果JVM在反序列化对象的过程中找不到该类,则抛出一个ClassNotFoundException异常。注意,readObject()方法的返回值被转化成Employee引用。当对象被序列化时,属性SSN的值为111222333,但是因为该属性是短暂的,该值没有被发送到输出流。所以反序列化后Employee对象的SSN属性为0。56.假设你有一个名为products的表,它有两个列:name和description,分别存储产品的名称和描述。表中的数据如下:|name|description|||||电视|一台高清晰度的电视机||冰箱|一台大容量的冰箱||洗衣机|一台智能的洗衣机|你想用SELECT语句查询表中的数据,并按照描述中包含的汉字的数量降序排序。下列选项正确的是:A、`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(description)DESC;`B、`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGutf8))DESC;`C、`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGgbk))DESC;`D、`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGlatin1))DESC;`【正确答案】:C解析:`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(description)DESC;`这个选项错误,因为LENGTH函数和CHAR_LENGTH函数都返回字符串的字符长度,而不是字节长度。`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGutf8))DESC;`这个选项错误,因为utf8字符集中一个汉字占用3个字节,而不是2个字节。`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGgbk))DESC;`这个选项正确,因为gbk字符集中一个汉字占用2个字节,所以LENGTH函数返回的字节长度减去CHAR_LENGTH函数返回的字符长度就是汉字的数量。`SELECTname,descriptionFROMproductsORDERBYLENGTH(description)-CHAR_LENGTH(CONVERT(descriptionUSINGlatin1))DESC;`这个选项错误,因为latin1字符集不能正确表示汉字。57.SpringBoot传播行为中,`PROPAGATION_REQUIRED`传播属性代表什么?A、支持当前事务,如果当前没有事务,就新建一个事务B、支持当前事务,如果当前没有事务,就以非事务方式执行C、支持当前事务,如果当前没有事务,就抛出异常D、新建事务,如果当前存在事务,把当前事务挂起【正确答案】:A解析:PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。58.Redis中的TTL命令用于以下哪一项?A、获取键的值B、设置键的值C、删除键D、获取键的剩余过期时间【正确答案】:D解析:Redis中的TTL命令用于获取键的剩余过期时间。例如,假设我们在Redis中设置了一个键值对,键为"mykey",值为"myvalue",并且设置了过期时间为60秒。使用TTL命令可以获取键"mykey"的剩余过期时间。示例:1.设置键值对:```SETmykeymyvalueEXPIREmykey60```2.获取键的剩余过期时间:```TTLmykey```返回结果将是60,表示键"mykey"还有60秒的剩余过期时间。其他选项:-获取键的值应该使用GET命令,而不是TTL命令。-设置键的值应该使用SET命令,而不是TTL命令。-删除键应该使用DEL命令,而不是TTL命令。59.Spring针对Bean管理创建对象提供注解,下面与此无直接关系的是哪一项注解?A、`@Component`B、`@Service`C、`@Controller`D、`@SpringBootApplication`【正确答案】:D解析:`@SpringBootApplication`:是SprnigBoot项目的核心注解,目的是开启自动配置,不是管理创建对象。60.下列关于SpringCloudAPI网关服务描述正确的是:1.SpringCloudAPI网关服务主要是保证对外服务的安全性2.SpringCloudAPI网关服务无法定义路由规则3.SpringCloudAPI网关服务可以加权限校验机制,比如对用户登录状态的校验A、1、2、3B、1、2C、2、3D、1、3【正确答案】:D解析:正确答案是1、3原因:SpringCloudAPI网关服务可以定义路由规则61.Sentinel组件服务熔断降级使用的@SentinelResource注解中对应处理异常的函数名称的属性是?A、ValueB、EntryTypeC、BlockHandlerD、Fallback【正确答案】:C解析:BlockHandler:对应处理LockException的函数名称,可选项。BlockHandler函数访问范围需要是Public,返回类型需要与原方法相匹配,参数类型需要和原方法相匹配并且最后加一个额外的参数,类型为BlockException。BlockHandler函数默认需要和原方法在同一个类中。若希望使用其他类的函数,则可以指定BlockHandlerClass为对应的类的Class对象,注意对应的函数必须为Static函数,否则无法解析。62.delete元素的statementType的值不包括?A、PREPAREDB、STATEMENTCALLABLED、CALLBACK【正确答案】:D解析:正确答案是:CALLBACK63.以下关于使用继承类的方式创建多线程的描述错误的是?A、一个类继承了Thread类就可以称之为线程类B、继承Thread必须重写run方法,否则线程无法启动C、继承Thread类的方式可以直接使用Thread类的run方法D、创建Thread类的子类对象调用start启动线程【正确答案】:B解析:run方法是执行线程任务的核心方法,继承Thread类的方式,如果不重写只不过无法设置线程任务,会继承Thread类中的run方法,不影响线程的启动和运行64.在Redis中,下面关于`EXPIRE`,`PEXPIEAT`,`PEXPIREAT`等描述正确的选项是哪个?A、`EXPIRE`与`PEXPIEAT`都是设置`key`的过期时间,都可以接收秒数作为参数B、`PEXPIREAT`设置`key`的过期时间以`ms`计C、`TTLkey`返回当前`key`的过期时间,如果没设置,将返回`0`D、`PEXPIRE`设置`key`的过期时间的时间戳(`unixtimestamp`),以`s`计算【正确答案】:B解析:-EXPIRE接收秒设置key的过期时间-PEXPIREAT接收时间戳为参数,比s计算-PEXPIRE设置key的过期时间以ms计算-PEXPIREAT设置key过期时间的时间戳,以ms计算-当key不存在时,ttl返回-265.下面对于Sentinel工作原理,描述错误的选项是哪一个?A、Sentinel通过线程池隔离的方式,来对资源进行了隔离B、对主流框架提供适配或者显示的API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。C、根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel提供开放的接口,方便用户定义及改变规则。D、Sentinel提供实时的监控系统,方便用户快速了解目前系统的状态。【正确答案】:A解析:Hystrix通过线程池隔离的方式,来对依赖(在Sentinel的概念中对应资源)进行了隔离。Sentinel用2个方法:通过并发线程数进行限制,针对慢调用和异常对资源进行降级66.当进程的控制终端被挂起时,哪个信号会被触发?A、SIGHUPB、SIGINTC、SIGKILLD、SIGPIPE【正确答案】:A解析:当挂起进程的控制终端时,SIGHUP信号将被触发67.Linux系统有几个运行级别(runlevel)?A、7B、6C、5D、4【正确答案】:A解析:Linux系统有7个运行级别(runlevel)68.Springmvc进行业务逻辑处理后,返回的对象是A、ModelAndViewB、ViewResolverControllerD、HandlerMapping【正确答案】:A解析:Controller进行业务逻辑处理后,会返回一个ModelAndView。Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。视图对象负责渲染返回给客户端。69.```javapublicstaticvoidmain(String[]args){intx=20;System.out.println(x);}static{intx=10;System.out.println(x);}```上述代码的输出结果为?A、```1020```B、```2010```C、```1010```D、```2020```【正确答案】:A解析:考察静态代码块、构造函数、代码块在程序中执行的顺序。70.```publicclassDemo{{System.out.print("A");}static{System.out.print("B");}publicDemo(){System.out.print("C");}publicstaticvoidmain(String[]args){newDemo();}}```执行完上述代码,输出的值是多少?ABCBACCBAD、BCA【正确答案】:B解析:考察静态代码块、构造函数、代码块在程序中执行的顺序71.SPRINGWeb层中提供模型视图控制(MVC)和RESTWeb服务实现的模块是?A、Web模块B、Web-MVC模块C、Web-Socket模块D、Web-Portlet模块【正确答案】:B解析:Web-MVC模块为web应用提供了模型视图控制(MVC)和RESTWeb服务的实现。Spring的MVC框架可以使领域模型代码和web表单完全地分离,且可以与Spring框架的其它所有功能进行集成。72.以下代码如果被运行,将会输出什么?```inta=3,c=0;if(a>0){if(a>3){c=2;}else{c=3;}}else{c=4;}System.out.print(c);```A、1B、2C、3D、4【正确答案】:C解析:先进入a>0的语句,然后等式成立,判断a>3,不成立,进入else,a=373.测试Redis的连通性的命令是A、pi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论