当前位置: 首页 > news >正文

面试_常见大厂面试题

1. String对象值修改保持引用不变

String ss= “abc”,   如何将其修改成“abcd”, 并保证ss引用对象不变。

  public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {String ss = "1234567890";Field field =  ss.getClass().getDeclaredField("value");field.setAccessible(true);field.set(ss, "abcd".toCharArray());
}

2. 如何分词,分词器

IK分词器:基于Java实现的中文分词器

HanLP : 中文分词, 引入相应依赖

分词方式:基于字典、基于机器学习

3. 倒排索引

普通索引:ID -> 内容

倒排索引:内容 -> ID

示例:文章 -> 分词term -> 排序term dictionary -> term index -> Posting List(文章ID、在文章中出现的偏移量、权重信息TFIDF)

倒排索引好处:适合关键词检索;数据总量可以得到控制;提高查询效率

4. 二叉树

强平衡二叉树(AVL)、弱平衡二叉树(红黑树)

1. AVL相对红黑树平衡的程度更加严格,想通节点的情况下,AVL树的高度<= 红黑树

2. 红黑树中引入的颜色节点概念

3. AVL树的旋转操作比红黑树的旋转操作更耗时

二叉搜索树 与 平衡二叉树

1. 二叉搜索树:节点左边的节点值都比该节点小,右边节点的值都比该节点大

2. 平衡二叉树:也可以叫做平衡二叉搜索树,在二叉搜索树的基础上,规定了节点左右两边的节点的高度差的绝对值不能超过1

5. 设计模式

创建型、结构型、行为型

常用的:工厂模式、单例模式;过滤器模式;策略模式、模板模式

常见的框架或中间件使用的设计模式:

6. 图遍历

深度优先:从一个节点出发,一直沿着边向下深度去找节点,如果找不到则返回上一层找其他节点(类似二叉树的 左中右 遍历)

广度优先:从一个节点出发,向下先把第一层节点遍历完,再去遍历第二层节点,直到遍历到最后一层。(类似二叉树 层次遍历)

7. Maven命令

命令作用使用场景
mvn clean compile清理并编译检查代码是否能编译通过
mvn clean test清理并运行测试本地验证功能
mvn clean package清理并打包生成可部署的构件, 打成jar包或war包
mvn clean install清理并安装到本地仓库最常用,准备依赖给其他项目
mvn dependency:tree分析依赖树解决依赖冲突
mvn clean deploy清理并部署到远程仓库发布版本

8. liunx命令

查看:cd 、 ls 、pwd、file filename.txt、grep 

增删改:

  • mkdir xx 创建目录
  • touch file 创建文件
  • mv 、 rm 、cp
  • ln -s /path/target link_name 创建软链接

查看文件内容

  • cat、vim 
  • head -n 20 filename //查看前20行
  • tail -n 20 filename // 查看后20行

网络命令:

ps -ef | grep ''  、ping

压缩、解压

  • tar -czf archive.tar.gz /path # 压缩
  • tar -xzf archive.tar.gz # 解压

9. 聊项目

  • 项目及主要负责模块
  • 项目架构图,自己所处的模块
  • 聊聊最优成就感的项目
  • 自己最优挑战的项目、难点

10. ES写入数据和查询数据

ES架构简图

1. 客户端发写数据请求时,可以往任意节点发,这个节点就会成为coordinating node协调节点

2. 协调节点计算 要写入的分片(sharding):计算时采用hash取模的方式计算,按照文档id计算

3. 协调节点就会进行路由,将请求转发给对应的primary sharding所在的dataNode

4. dataNode节点上的primary sharding处理请求,写入数据到索引库,并且将数据同步到对应的replica sharding

5. 等primary sharding和replica sharding都保存到文档之后,返回客户端响应。

查询数据原理:

1. 客户端发请求可以给任意节点,这个节点成为协调节点

2. 协调节点将查询请求广播到每个数据节点,这些数据节点的分片就会处理查询请求

3. 每个分片进行数据查询,将符合条件的数据放到一个队列当中,并将这些数据的 文档ID、节点信息、分片信息都返回给协调点

4. 由协调点将所有的结果进行汇总,并排序

5. 协调节点向包含这些ID分片发送get请求,对应的分片文档数据返回给协调节点,最后协调节点将数据整合返回给客户端。

11. ES部署时优化

1、集群部署优化

  • 关于ES的参数,大部分情况下不需要调整,如果由性能问题,最好的办法是安排合理的sharding 布局并且增加节点数量
  • 调整ES的一些参数,path.data目录尽量使用SSD(固态硬盘), JVM堆内存大小

2、更合理的sharding布局

让sharding和对应的replica sharding尽量在同一个机房,但是有时候为了容灾的考虑,会特意部署在不同的机房

3、Liunx服务器上的优化策略

不要用root用户;修改虚拟内存大小;修改普通用户可以创建的最大线程数。

ES生态:ELK日志收集解决方案 - filebeat(读log日志) -> logstash -> ElaticsSearch -> kibana、Grafana、自研报表平台

ES使用场景:大数据量的搜索场景, 另外ES也有很强的计算能力,用户画像

12. ES概念

ES:是一个局域Lucene框架的搜索引擎产品。 you know for search, 提供了Restful风格的操作接口。

Lucene:是一个非常搞笑的全检检索引擎框架,java语言开发,提供的jar包。所以不太通用。

ES核心概念:

  • 索引index :  关系数据库的table
  • 文档document: 关系数据库的一行数据
  • 字段field  text\keyword\byte: 关系数据库的列
  • 映射Mapping : Schema
  • 查询方式DSL
  • 分片sharding 和副本 replicas

http://www.dtcms.com/a/398432.html

相关文章:

  • 网站地图怎么建设wordpress文章页样式修改
  • 网站如何做交互热门seo推广排名稳定
  • 【第29话:路径规划】自动驾驶启发式搜索算法(A星搜索算法( A* 搜索算法))详解及代码举例说明
  • React学习教程,从入门到精通,React Router 语法知识点及使用方法详解(28)
  • Docker Compose 从入门到实践
  • D3.js 与数据可视化
  • RNA-seq分析之最佳cutoff(TCGA版)
  • 浏览器直接进入网站的注意事项钢筋网片价格
  • scrapy-redis项目:爬取某网站图书信息
  • (论文速读)DiffBlender:可组合和通用的多模态文本到图像扩散模型
  • 第三方网站测试工具:【Postman使用基础指南】
  • Pytest+requests进行接口自动化测试5.0(5种assert断言的封装 + pymysql)
  • C# MVC 模型绑定全解析:从基础机制到自定义绑定器实战指南
  • 企业网站网页设计专业的团队网站建设
  • 网站建设可上传视频的wordpress 数据库类型
  • 广州南沙区建设和交通局网站个人建立网站要多少钱
  • Vue3 》》vite》》vite-plugin-mock mock 模拟数据 ,loadEnv
  • 宝塔面板搭建RustDesk教程:告别命令行,一键拥有私有远程桌面
  • Docker + IDEA 一键部署!
  • Rust开源HyperSwitch实战指南
  • Chrome性能优化指南
  • Chrome高危类型混淆0-Day漏洞(CVE-2025-10585)技术分析
  • 教做面点的网站广州百度竞价托管
  • 网站推广方案合肥房产网安居客
  • 【算法专题训练】24、单调栈
  • 【开题答辩全过程】以 IRWT考试预约系统为例,包含答辩的问题和答案
  • 在字典和列表相互嵌套的结构体中搜索指定元素
  • 文献阅读 | iMetaMed | FigureYa:一个标准化可视化框架,用于增强生物医学数据解释和研究效率
  • wordpress自由拖拽同ip网站做排名seo
  • 面向运动障碍患者的语音识别新突破:零样本实时专家混合自适应方法详解