java工程师2024校招笔试题(二)

什么是自旋锁?

自旋锁是SMP架构中的一种low-level的同步机制。
当线程A想要获取一把自旋锁而该锁又被其它线程锁持有时,线程A会在一个循环中自旋以检测锁是不是已经可用了。

容器与主机之间的数据拷贝命令?

Docker cp命令用于穷奇与主机之间的数据拷贝

mv 命令

将 file1 重命名为 file2 ,如果 file2 存在则提示是否覆盖:mv -i file1 file2 。
-v 会输出重命名的过程,当文件名中包含通配符时,这个选项会非常方便:mv -v file1 file2 。

什么是B+树?

B树的变种,拥有B树的特点

Resource 是如何被查找、加载的?

Resource 接口是 Spring 资源访问策略的抽象,它本身并不提供任何资源访问实现,具体的资源访问由该接口的实现类完成——每个实现类代表一种资源访问策略。 Spring 为 Resource 接口提供了如下实现类:

MySQL分库分表了解过吗?

详见:https://baijiahao.baidu.com/s?id=1622441635115622194

ElasticSearch中的分片是什么?

在大多数环境中,每个节点都在单独的盒子或虚拟机上运行。
索引 - 在Elasticsearch中,索引是文档的集合。
分片 -因为Elasticsearch是一个分布式搜索引擎,所以索引通常被分割成分布在多个节点上的被称为分片的元素。

动态链接库与静态链接库的区别

静态库
静态库是一个外部函数与变量的集合体。静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与链接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件。而这个可执行文件与编译可执行文件的程序,都是一种程序的静态创建(static build)。

什么情况下一个 broker 会从 ISR 中被踢出去?

leader会维护一个与其基本保持同步的Replica列表,该列表称为ISR(in-sync Replica),每个Partition都会有一个ISR,而且是由leader动态维护 ,如果一个follower比一个leader落后太多,或者超过一定时间未发起数据复制请求,则leader将其重ISR中移除 。

HashMap与HashTable的区别?

HashMap没有考虑同步,是线程不安全的;Hashtable使用了synchronized关键字,是线程安全的;
HashMap允许K/V都为null;后者K/V都不允许为null;

中断与系统调用了解吗?

所谓的中断就是在计算机执行程序的过程中,由于出现了某些特殊事情,使得CPU暂停对程序的执行,转而去执行处理这一事件的程序。等这些特殊事情处理完之后再回去执行之前的程序。中断一般分为三类:

你们项目为什么选用 Maven 进行构建?

  • 首先,Maven 是一个优秀的项目构建工具。使用maven,可以很方便的对项目进行分模块构建,这样在开发和测试打包部署时,效率会提高很多。
  • 其次,Maven 可以进行依赖的管理。使用 Maven ,可以将不同系统的依赖进行统一管理,并且可以进行依赖之间的传递和继承。

什么是Java注释

定义:用于解释说明程序的文字

Maven 常用命令

  • mvn archetype:create :创建 Maven 项目。
  • mvn compile :编译源代码。
  • mvn deploy :发布项目。
  • mvn test-compile :编译测试源代码。
  • mvn test :运行应用程序中的单元测试。
  • mvn site :生成项目相关信息的网站。
  • mvn clean :清除项目目录中的生成结果。
  • mvn package :根据项目生成的 jar/war 等。
  • mvn install :在本地 Repository 中安装 jar 。
  • mvn eclipse:eclipse :生成 Eclipse 项目文件。
  • mvn jetty:run 启动 Jetty 服务。
  • mvn tomcat:run :启动 Tomcat 服务。
  • mvn clean package -Dmaven.test.skip=true :清除以前的包后重新打包,跳过测试类。
  • 用到最多的命令
    • mvn eclipse:clean :清除 Project 中以前的编译的东西,重新再来。
    • mvn eclipse:eclipse :开始编译 Maven 的 Project 。
    • mvn clean package :清除以前的包后重新打包。

在 Provider 上可以配置的 Consumer 端的属性有哪些?

1)timeout:方法调用超时
2)retries:失败重试次数,默认重试 2 次
3)loadbalance:负载均衡算法,默认随机
4)actives 消费者端,最大并发调用限制

消息队列积压怎么办

当消费者出现异常,很容易引起队列积压,如果一秒钟1000个消息,那么一个小时就是几千万的消息积压,是非常可怕的事情,但是生产线上又有可能会出现;

static注意事项

1、静态只能访问静态。 2、非静态既可以访问非静态的,也可以访问静态的。

Dubbo服务之间的调用是阻塞的吗?

默认是同步等待结果阻塞的,支持异步调用。

如何实现动态Zuul网关路由转发?

通过path配置拦截请求,通过 Serviceld到配置中心获取转发的服务列表,zuul内部使用 Ribbon实现本地负载均衡和转发。

说下你熟悉的排序算法

详见:https://www.cnblogs.com/onepixel/articles/7674659.html

数据同步

整个集群完成Leader选举之后,Learner(Follower和Observer的统称)回向Leader服务器进行注册。当Learner服务器想Leader服务器完成注册后,进入数据同步环节。

详细描述一下Elasticsearch索引文档的过程。

协调节点默认使用文档ID参与计算(也支持通过routing),以便为路由提供合适的分片。
shard = hash(document_id) % (num_of_primary_shards)
当分片所在的节点接收到来自协调节点的请求后,会将请求写入到Memory Buffer,然后定时(默认是每隔1秒)写入到Filesystem Cache,这个从Momery Buffer到Filesystem   Cache的过程就叫做refresh;
当然在某些情况下,存在Momery Buffer和Filesystem Cache的数据可能会丢失,ES是通过translog的机制来保证数据的可靠性的。其实现机制是接收到请求后,同时也会写入到translog中,当Filesystem cache中的数据写入到磁盘中时,才会清除掉,这个过程叫做flush;
在flush过程中,内存中的缓冲将被清除,内容被写入一个新段,段的fsync将创建一个新的提交点,并将内容刷新到磁盘,旧的translog将被删除并开始一个新的translog。
flush触发的时机是定时触发(默认30分钟)或者translog变得太大(默认为512M)时;

sleep() 方法和 wait() 方法的区别和共同点?

相同点:
两者都可以暂停线程的执行,都会让线程进入等待状态。

如何使用 Docker 技术创建与环境无关的容器系统?

Docker 技术有三中主要的技术途径辅助完成此需求:

高吞吐量下如何优化生产者和消费者的性能?

1)开发
同一group下,多机部署,并行消费
单个Consumer提高消费线程个数
批量消费。消息批量拉取,业务逻辑批量处理。

kafka的message格式是什么样的?

一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成。
header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。
当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性。
body是由N个字节构成的一个消息体,包含了具体的key/value消息。

保护SpringBoot应用有哪些方法?

  • 在生产中使用HTTPS
  • 使用Snyk检查你的依赖关系
  • 升级到最新版本
  • 启用CSRF保护
  • 使用内容安全策略防止XSS攻击

搭建mycat的核心配置文件有哪些?

schem.xml 配置参数:逻辑库,逻辑表,数据节点。节点主机

什么是shiro

Shiro是一个强大易用的java安全框架,提供了认证、授权、加密、会话管理、与web集成、缓存等功能,对于任何一个应用程序,都可以提供全面的安全服务,相比其他安全框架,shiro要简单的多。

Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值