【面经】亚信科技面试问题合集

news2025/1/20 1:41:26

下述内容经搜寻广大平台的面试经历,整理汇合得出,答案来自chatgpt,加黑的地方意味着出现多次。

1.自我介绍

2.介绍项目功能

3.==和equals的区别。八大基本类型(byte,char,int ,long,double,float,boolean,short)

  • == 是用于比较两个变量的值是否相等。

  • equals() 是用于比较两个对象的内容是否相等。在 Java 中,equals() 方法是用来比较对象的内容是否相等,而对于基本数据类型,equals() 方法与 == 是一样的作用。

4.hashmap和hashstable的区别

  • 线程安全性:Hashtable是线程安全的,所有的方法都是同步的,而HashMap不是线程安全的,如果需要在多线程环境下使用,可以使用ConcurrentHashMap来代替HashMap。

  • null值:Hashtable不允许键或值为null,会抛出NullPointerException异常,而HashMap允许键或值为null。

  • 继承关系:Hashtable是Hashtable类的子类,而HashMap是AbstractMap类的子类。

  • 迭代器:Hashtable的迭代器是通过Enumeration接口实现的,而HashMap的迭代器是通过Iterator接口实现的。

5.concurrenthashmap的原理

  • ConcurrentHashMap 使用分段锁(Segment)来确保线程安全,每个 Segment 有自己的锁,不同 Segment 的数据修改操作可以并发进行,提高了并发性能。

6.lambda表达式怎么写

  • Java 8引入的新特性,用于简化代码编写。它可以替代匿名内部类的语法,使代码更加简洁易读。

  • (int a, int b) -> a + b

  • 这个Lambda表达式表示一个函数,接受两个整数参数a和b,然后返回它们的和。

7.垃圾回收常见的算法

  • 常见的垃圾回收算法包括标记清除(Mark and Sweep)、复制(Copying)、标记整理(Mark and Compact)等

8.Linux的两个常见命令:查看内存大小,查看磁盘大小

  • 查看内存大小:free -h

  • 查看磁盘大小:df -h

9.springboot的常用注解

  • @SpringBootApplication: 启动SpringBoot应用的入口注解。

  • @Controller, @Service, @Repository: 分别用于标记Controller、Service和DAO层的类。

  • @Autowired: 自动装配依赖。

10.redis怎么设置过期时间

  • 使用命令 EXPIRE key seconds 来设置键的过期时间。

11.sql的索引和使用场景

SQL的索引是用来提高查询效率的数据结构,可以加快数据的检索速度。常见的使用场景包括:

  • 当某个字段经常被用作查询条件时,可以为该字段创建索引,提高查询效率。

  • 当某个字段经常用来进行排序或分组操作时,也可以为该字段创建索引。

  • 连接操作中,如果连接的字段没有索引,可能会导致性能问题,可以考虑为连接字段创建索引

12给出一张表,id,姓名,性别,年龄,问怎么实现分组查询

  • SELECT 性别, COUNT(*) FROM 表名 GROUP BY 性别;

13.给出两张表,一个表中有id和姓名,一个表中有id和年龄,问怎么联合索引。

  • 联合索引是指在多个字段上创建一个组合索引,以提高多个字段组合条件查询的效率。在给出的两张表中,可以通过以下SQL语句创建联合索引:

  • CREATE INDEX idx_name_age ON 表1(id);

  • CREATE INDEX idx_id_name ON 表2(id);

14.乐观锁和悲观锁

  • 乐观锁是指在更新数据时,先读取数据,然后在更新时检查数据是否被其他事务修改过,如果没有则更新成功,否则放弃更新并重试。

  • 悲观锁是指在操作数据之前先加锁,确保其他事务无法修改数据,操作完成后释放锁

15.mq的使用

  • MQ(消息队列)用于在不同组件或系统之间传递消息,常见的使用场景包括解耦、异步处理、削峰填谷等。常见的MQ系统有RabbitMQ、Kafka、ActiveMQ等。

16.断点上传的思路

  • 指在网络传输大文件时,如果中断了传输,可以从中断的地方继续传输,常见的实现思路是在客户端和服务端记录已传输的字节数,当传输中断时,下次传输时从中断的位置继续传输。

17.spring、springmvc,springboot的区别

  • Spring是一个综合性的框架,提供了依赖注入、AOP、事务管理等功能;Spring MVC是基于Spring的MVC框架,用于Web开发;Spring Boot是用于简化Spring应用开发的框架,提供了自动配置和约定优于配置的特性。

  • Spring Boot是一个快速开发框架,提供了自动配置和约定优于配置的方式,开发者只需关注业务逻辑而不用过多配置;而Spring MVC是用于构建Web应用程序的一个模块,需要更多的配置和设置。

  • Spring Boot可以快速搭建一个独立的、自包含的应用程序,包括内嵌的服务器,使得应用程序可以直接运行;而Spring MVC通常需要结合其他的容器(如Tomcat)来运行。

  • Spring Boot提供了很多开箱即用的功能,如健康检查、监控、日志等,使得开发者更容易实现这些功能;而Spring MVC需要开发者自己配置这些功能。

18.spring事务

  • Spring事务管理支持声明式事务和编程式事务两种方式,可以通过@Transactional注解或编程式API来实现事务管理,保证数据库操作的一致性。

19.springboot的自动配置

  • Spring Boot的自动配置是指Spring Boot根据项目中的依赖和配置自动配置Spring应用程序的特性。通过约定大于配置的方式,可以减少开发人员的配置工作,提高开发效率。

20集合的数据结构有哪些

  • List:列表,有序集合,可以重复元素。

  • Set:集合,无序集合,不允许重复元素。

  • Map:映射,键值对集合。

  • Queue:队列,先进先出的数据结构。

  • Stack:栈,后进先出的数据结构。

  • Linked List:链表,通过指针进行连接的数据结构等。

21.mysql中innoDB的底层原理

  • 事务:InnoDB支持ACID事务,采用多版本并发控制(MVCC)来实现事务的隔离性。

  • 行级锁:InnoDB使用行级锁进行并发控制,提高了多用户并发操作时的性能。

  • 聚簇索引:InnoDB的表数据存储采用聚簇索引,将数据和索引存储在一起,加速数据检索。

  • 事务日志:InnoDB采用事务日志(redo log)来保证事务的持久性和恢复能力。

  • 缓冲池:InnoDB使用缓冲池(Buffer Pool)来缓存数据,减少对磁盘IO的访问,提高性能。

22.B树和B+树

  • B树:B树是一种多路平衡查找树,用于实现关系型数据库中的索引结构。B树的特点是每个节点有多个子节点,且每个节点都对应一个区间范围,适合数据库中范围查询操作。

  • B+树:B+树是在B树的基础上优化而来,所有关键字都在叶子节点上非叶子节点只存储索引信息,使得范围查询更加高效。B+树通常用于数据库索引

23.线程池的原理

线程池是一种管理和复用线程的机制,其原理包括以下几个方面:

  • 线程复用:线程池中的线程可以被重复利用,减少线程创建和销毁的开销。

  • 线程管理:线程池可以控制线程的数量,避免创建过多线程导致资源浪费。

  • 任务队列:线程池通常包含一个任务队列,用于存放需要执行的任务,线程从队列中获取任务执行。

  • 线程调度:线程池会根据线程的状态、任务队列的情况等因素来决定如何调度线程执行任务。

24.讲讲线程,多线程,创建线程的方式(项目中哪些业务场景会用到线程)

线程:线程是操作系统能够进行运算调度的最小单位,一个进程可以包含多个线程,各线程之间共享进程的资源。

多线程:多线程指的是一个进程内包含多个线程,多线程可以提高程序的并发性和响应速度。

创建线程的方式

  • 继承Thread类:创建一个类继承Thread类,并重写run()方法。

  • 实现Runnable接口:创建一个实现了Runnable接口的类,并将其作为参数传递给Thread类的构造方法。

  • 实现Callable接口:创建一个实现了Callable接口的类,并结合ExecutorService实现。

并行处理大量数据,提高处理速度。

异步执行一些耗时任务,提高系统的响应速度。

实现定时任务、轮询等功能。

25.redis的数据结构有哪些,使用场景

Redis支持的数据结构包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、位图(Bitmap)、HyperLogLog等。不同的数据结构适用于不同的场景,例如:

  • 字符串:缓存、计数器

  • 哈希:存储对象的属性

  • 列表:消息队列、最新消息列表

  • 集合:关注列表、共同好友

  • 有序集合:排行榜、优先队列

  • 位图:用户签到、在线状态

  • HyperLogLog:基数统计

26.mybatis为什么优化检索

  • 使用MyBatis缓存来减少数据库查询次数

  • 使用延迟加载来减少不必要的数据加载

  • 使用分页查询来限制返回结果集的大小

  • 使用动态SQL来减少不必要的条件判断

  • 使用MyBatis的一级缓存和二级缓存来提高检索性能

27.数据库为什么要创建索引,加索引的本质是?索引的作用

数据库创建索引的主要原因是为了提高查询效率,加快数据检索的速度。索引的本质是一种数据结构,它通过存储数据的排序顺序或者哈希值来加速数据的查找。索引的作用包括:

  • 减少查询时需要扫描的数据量

  • 加速数据的查找和排序

  • 提高数据库的性能和响应速度

28.什么情况下索引不能用

索引不能用的情况包括:

  • 对于小表,使用索引可能会降低性能

  • 查询条件中使用了函数或表达式,无法使用索引

  • 对于高基数列(取值多样性很高的列),索引可能不起作用

  • 索引列上有大量的更新操作,可能会导致索引失效

29.sql语句中#和$的区别

在SQL语句中,#和$通常用作参数的占位符:

  • #表示参数是预编译的,可以防止SQL注入,但可能会受到SQL注入攻击

  • $表示参数是直接拼接到SQL语句中的,可能会有SQL注入风险,但性能更好

30.什么情况下使用redis

  • 需要高性能的缓存解决方案

  • 需要存储键值对数据的场景

  • 需要实时计数器、排行榜等功能

  • 需要发布/订阅消息或实现消息队列

  • 需要分布式锁或分布式限流控制

31.事务了解吗,它的原理

事务是一组操作单元,要么全部成功提交,要么全部失败回滚。事务的四个特性为ACID,即原子性、一致性、隔离性和持久性。事务的原理是通过数据库的事务日志和事务管理器来保证数据的一致性和可靠性。

32.springmvc的工作原理,执行流程

  • 客户端发起请求,请求被DispatcherServlet拦截

  • DispatcherServlet根据请求路径找到对应的HandlerMapping,将请求分发给对应的Controller

  • Controller处理请求并返回ModelAndView对象,包含视图名和模型数据

  • ViewResolver解析视图名,找到对应的视图模板

  • View渲染模型数据并生成

33.事务的四大隔离级别

  • 读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。

34.Mysql索引失效形式

  • 全表扫描、索引列上有函数操作、索引列不在联合索引的最左侧、使用"!="或"不等于"、模糊查询中使用通配符开头、对索引列进行数学运算等。

35.项目中用到哪些数据结构

  • 可能会用到的数据结构包括数组、链表、栈、队列、树、图、堆、哈希表

36.java中有哪些操作字符串的值,区别是什么?

  • Java中操作字符串的方式包括使用"+"连接字符串、使用StringBuffer和StringBuilder类进行字符串拼接。区别在于StringBuffer是线程安全的,而StringBuilder则是非线程安全的。

37.表索引,数据量大怎么办

  • 当表索引数据量大时,可以考虑对索引进行优化,使用合适的数据类型、调整索引顺序、添加覆盖索引或者使用分区表等方式来提升查询性能。

38。分布式锁

  • 用于在分布式系统中实现数据的并发访问控制的技术,可以通过ZooKeeper、Redis等工具实现分布式锁

39.CAS算法

  • CAS(Compare And Swap)算法是一种乐观锁技朧,通过比较并交换内存中的数值来实现并发控制,常用于无锁编程和并发数据结构的实现。

40.ArrayList遍历的几种形式

  • 可以通过for循环、forEach循环、迭代器等多种形式进行,选择不同的遍历方式可以根据具体的需求和场景来决定。

41.Springboot声明bean的注解应该怎么写

  • 可以使用@Component@Service@Repository等注解进行标记

42.Mybatis-plus做一个查询有哪几种写法

  • 使用selectByIdselectListselectMaps等方法;使用QueryWrapper进行条件查询;自定义SQL语句进行查询等。

43.为什么使用redission来作分布式锁

  • 提供简单易用的API、支持多种分布式锁实现、具有良好的性能等。

44.java的哪些框架

  • 包括Spring框架、Spring Boot、MyBatis等。

45.springboot的启动方式

  • 包括使用java -jar命令直接运行生成的可执行jar包,或者在IDE中运行主应用程序类。

46.springboot的核心注解

@SpringBootApplication@Controller@Service@Repository等。

47.mysql联合查询的几种方式

  • 包括使用JOIN语句、子查询、UNION操作符等。

48.list和set的区别

  • List是有序集合,允许元素重复;Set是无序集合,不允许元素重复。

49.spring中什么时候用到事务,事务用什么注解

  • 在Spring中需要保证一组操作要么全部成功要么全部失败时,需要使用事务。事务通常使用@Transactional注解来标记方法或类。

50.java反射

  • Java反射是一种机制,允许程序在运行时检查和操作类、对象、方法等的信息,可以通过反射获得类的构造器、字段、方法等信息,并动态调用它们。

img

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

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

相关文章

纷享销客BI智能分析平台常见问题QA

Q1在驾驶舱中查看图表时,图表间有什么动态交互吗? A:驾驶舱支持图表本身下钻,图表间联动,并且支持图表下钻的同时联动,可以基于驾驶舱的这个功能,实现图表间的动态交互。 Q2基于客户主题创建的统计图&…

短视频系列内容生产技能提升 沈阳短视频剪辑培训

优势:一、短视频系列化内容的优势 ①可持续性强 某一条视频效果很好(几十万点赞)时,按照相同格式继续输出非常容易成功: √不需要设计脚本; √不需要重新定制。 √稳定性强, ②节约时间成本和制作成本 举例对标账号&#xf…

Python | mkvirtualenv命令改变虚拟环境存储位置

文章目录 1、问题引入2、解决方式 1、问题引入 使用mkvirtualenv 命令创建虚拟环境时,默认创建位置在C:\Users你的计算机名目录下,采用下面的方式可以修改虚拟环境存储位置,默认创建位置是Python内置写好的,默认是这样的。 2、解…

Java项目:95 springboot班级回忆录的设计与实现

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本管理系统有管理员和用户。 本海滨学院班级回忆录管理员功能有个人中心,用户信息管理,班委信息管理,班级信息管理…

揭秘2024最新版会声会影旗舰版本功能,下载即享专业编辑

在如今这个数字化时代,视频编辑已经成为了许多人生活中不可或缺的一部分。无论是专业的影视制作人员,还是普通的短视频爱好者,都希望能够找到一款功能强大、操作简便的视频编辑软件。而今天,我要为大家介绍的这款产品——会声会影…

60秒,手把手教会你!做抖音小店怎么上架商品?

哈喽~我是电商月月 很多新手朋友做抖店,兴致冲冲选好商品结果傻眼了!不知道怎么上架操作啊! 别着急,今天月月就给大家讲一讲抖音小店是怎么上架商品的,其中有两点,一定要特别注意!【有违规的规…

Vue.js 动画与过渡效果实战

title: Vue.js 动画与过渡效果实战 date: 2024/6/4 updated: 2024/6/4 description: 这篇文章介绍了如何在网页设计中使用过渡动画和组件效果,以及如何利用模式和列表展示信息。还提到了使用钩子实现组件间通信的方法。 categories: 前端开发 tags: 过渡动画组件…

【力扣】不相交的线

一、题目描述 二、题目解析 根据上图及题目给出的示例,我们不难发现,我们其实要找的就是两个数组中的最长公共子序列的长度。 因此,本题我们就可以直接转化为求两个数组中的最长公共子序列的长度。 对于 最长公共子序列问题,可…

【Qt秘籍】[006]-Label实现Hello World程序-编程第一步

"Hello,World!" 中文意思是“你好,世界”。 因为 The C Programming Language 中使用它做为第一个演示程序,后来很多程序员在学习编程或进行设备调试时延续了这一习惯。 下面,我们也将演示利用Label显示Qt中的"Hello World!&q…

智慧公厕厂家+智能厕所小程序,构建数字化公厕新体系

在现代社会的诸多场景中,公厕扮演着重要却常常被忽视的角色。尤其是在传统的楼宇中,公厕存在着一系列痛点问题。 一、传统公厕问题 传统楼宇公厕常常面临着布局不合理的困境,导致使用者寻找困难,浪费时间和精力。卫生状况也是一大…

vue无需引入第三方, 将web页面内容直接下载为docx

vue无需引入第三方&#xff0c; 将web页面内容直接下载为docx 将web页面内容重绘 html &#xff0c;通过 a 标签直接下载 通过写行内样式&#xff0c;控制docx中的文字图效果 let echHtmlWithIf ;if (this.chartImg.length) {if (this.exceed10Min) {echHtmlWithIf <div…

数据觉醒时代,以“存力”激活数据资产潜能

近日&#xff0c;质汇“杨数浦”主题研讨会首场活动在杨浦滨江举行&#xff0c;是杨浦区筹推进数字经济与城市数字化发展的一大重要举措&#xff0c;各行业协会、科研院所及企业代表参加活动&#xff0c;共商行业发展新机遇。活动现场&#xff0c;优刻得董事长兼CEO季昕华被授予…

【devops】 Bytebase 一站式开源 数据库DevOps平台

初识 Bytebase 1、安装 安装地址 https://www.bytebase.com/docs/get-started/self-host/#docker 安装指令 docker run --init \--name bytebase \--publish 8080:8080 --pull always \--volume ~/.bytebase/data:/var/opt/bytebase \bytebase/bytebase:2.18.02、登录-dashboa…

责任链模式(行为型)

目录 一、前言 二、责任链模式 三、总结 一、前言 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;也叫职责链模式&#xff0c;是一种行为型设计模式&#xff0c;职责链模式使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦…

游戏UI设计秘诀:专家总结与实际案例解析!

随着游戏产业的不断发展&#xff0c;游戏UI界面设计变得越来越重要。一个好的游戏UI界面设计可以让玩家更容易理解游戏规则&#xff0c;提高游戏的可玩性&#xff0c;增加游戏的吸引力。在本文中&#xff0c;我们将讨论游戏UI界面设计的重要性和一些常见的设计原则。 1. 游戏U…

IntelliJ IDEA安装

IntelliJ IDEA 的安装、配置与使用-简化版 一、IntelliJ IDEA 介绍 1.JetBrains 公司介绍 IDEA(https://www.jetbrains.com/idea/)是 JetBrains 公司的产品&#xff0c;公司旗下还有其 它产品&#xff0c;比如&#xff1a; ➢ WebStorm&#xff1a;用于开发 JavaScript、HT…

映射网络驱动器自动断开的解决方法

如果将驱动器映射到网络共享&#xff0c;映射的驱动器可能会在定期处于非活动状态后断开连接&#xff0c;并且 Windows 资源管理器可能会在映射驱动器的图标上显示红色 X。&#xff0c;出现此行为的原因是&#xff0c;系统可以在指定的超时期限后断开空闲连接&#xff0c; (默认…

pyopengl 立方体 正投影,透视投影

目录 顶点和线的方式 划线的方式实现: 顶点和线的方式 import numpy as np from PyQt5 import QtWidgets from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton from OpenGL.GL import * from OpenGL.GLU import * import sys…

【一小时学会Charles抓包详细教程】Charles请求Filter(过滤)功能 (9)

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 Charles请求Fi…

房地产3d全景数字化看房成为转发的好工具

在短视频盛行的时代&#xff0c;某地产企业为了吸引客流&#xff0c;联合我们深圳VR公司定制了楼盘小区3D全景展示视频&#xff0c;不同于市面上常见的楼盘视频或3D电影&#xff0c;楼盘小区3D全景展示视频让您在小区建成之前&#xff0c;就能提前感受未来的生活场景。 无需昂贵…