中科软面试题
1、用户注册登录这一块用了哪些技术?数据库主要涉及那些表?
用了BCrypt加密算法,jwt生成token,网关实现全局过滤器校验token,还用了拦截器,获取在网关是指到请求头的userid存到threadlocal里面,涉及到的表有用户信息表。
2、token过期时间?token过期了怎么办?
token过期时间设置的是30分钟,过期了的话,会返回401错误信息,让当前浏览页强行跳转到登录页面,让用户手动更新token
3、数据库的三大范式
1.属性不可再分,及每一个列不可再分
2.表中不存在部分依赖,非主键列要完全依赖主键
3.不存在传递依赖
4、索引的类型有哪些?常用的是哪些?
主键索引、唯一索引、普通索引、联合索引、聚集索引、非聚集索引、hash索引、树索引
5、如何创建索引?
1.自动创建,通过约束,系统创建
2.手动创建,create index
3.使用alter语句修改索引
6、索引失效场景
1.违反最左前缀法则
2.范围查询右边的列不能使用索引
3.不要在索引列上进行运算操作,索引将失效
4.字符串不加单引号,造成索引失效(类型转换)
5.以%开头的模糊查询
7、说一下对Spring的了解
Spring是一个开源框架,为简化企业级应用开发而生。Spring可以简化开发,进行框架整合,可以进行模块化开发,实现各层之间的解耦合关系。Spring的核心是IOC、DI、AOP
8、IOC、DI和AOP是什么?
IOC是控制反转,将主动new对象,转换成了IOC来创建对象,bean与bean在IOC容器中的依赖关系通过DI来实现,有setter注入和构造器注入,AOP面向切面编程,就是在不改变源代码的情况下,对方法进行增强。主要用于权限控制、事务管理、记录日志等,底层是基于动态代理的,如果是接口,就用JDK动态代理,如果是类,就用CGLIB实现动态代理。
9、Spring的设计模式?含义?
1.工厂模式:Spring使用工厂模式,通过BeanFactory和ApplicationContext来创建对象
2.单例模式:Spring的bean默认为单例模式
3.策略模式:例如Resource的实现类,针对不同的资源文件,实现了不同方式的资源获取策略
4.代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术
5.模板方法
6.适配器模式
7.观察者模式
8.桥接模式
10、集合有哪些?
List、Set、Map
11、List集合下面有哪些?
ArrayList、LinkedList、Vector
12、ArrayList和LinkedList的区别?
ArrayList是由数组实现的,所以查询效率高,增删慢
LinkedList是由双向链表实现的,所以增删效率高
13、java的基本数据类型
byte、short、int、long
char、float、double、boolean
14、String转char怎么转
String——》char:charAt(index),toCharArray()返回char类型的数组
char——》String:String.valueOf(‘c’)效率最高
15、项目中为什么用SpringCloud,SpringBoot,底层原理了解多少?
首先微服务架构是现在的主流架构,springboot是构建在spring框架基础上的嘛,可以简化常用的工程配置,比如:端口,访问路径啥的,它还有一些辅助功能,比如内置服务器,能快速部署,学习成本低,springboot的起步依赖也可以简化依赖的配置,把依赖的管理交给了springboot,不用去关注不统一来的不同版本是否存在冲突,然后springCloud继承了各种微服务功能组件,并且基于springboot实现了自动装配,开箱即用,springcloud是为服务架构的一站式解决方案。
16、为什么用springcloud不用dubbo
springcloud的定位是微服务架构下的一站式解决方案,dubbo主要是在于服务的调用和治理。
springcloud依托的是spring平台,具备更完整的生态系统,dubbo一开始只是用来做RPC远程调用
17、看你写了MinIO,解释下是用到了啥
将资讯的详情页和一些素材存储到了Minio
18、kafka都能干什么
kafka是一个消息中间件,吞吐量很高,不仅可以发布、订阅消息,还可以做流式计算
19、SpringBoot配置文件有哪些
minio、网关、端口号、spring、nacos、mongodb、数据库的配置
20、介绍下ES,哪些项目中用到es,干了什么?
es是一款开源的搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能,项目中使用es做了资讯搜索功能,并且对搜索的结果进行高亮显示
21、redis热点数据怎么实现,怎么完成排序
在使用redis之前,统计上报,修改业务代码,在操作redis之前,加入key使用次数的统计,定时把收集到的数据上报到统一的服务进行聚合运算
1.Redis集群扩容,增加分片副本,分摊客户端发过来的读请求
2.使用二级缓存,即本地jvm缓存,减少redis的读请求
22、redis的数据结构有哪些
String、List、Hash、set、zset
23、分布式锁是怎么实现的,锁哪些东西
基于数据库实现,版本号控制(mp:@Version标记、向容器中配置乐观锁的拦截器)、redis的setnx命令实现,setnx和设置过期时间不能实现原子性操作,可以使用set的拓展命令,set key value ex nx;
在延迟任务服务的任务信息表中,加了version字段,控制版本,在延迟任务刷新的方法中,用setnx加了分布式锁,防止任务重复刷新
24、springcloud的注册中心用的什么?配置中心?
注册中心和配置中心用的都是nacos
25、网关用的什么?
gateway
26、feign调用怎么使用,服务方没有feignclient能被调用吗?
1.引入feign依赖
2.编写feign客户端接口,用@FeignClient注解标注
3.在服务提供者中实现feign客户端接口
4.在服务消费者的启动类上用@EnableFeignClient开启feign调用,使用feignclient中定义的方法。
feignclient也可以写在服务消费端上
27、讲一讲什么是熔断
雪崩问题:微服依靠服务器来创建线程,而服务器的性能有瓶颈,当请求一致阻塞时,会导致服务器资源耗尽,也就会导致服务不可用,依赖于当前服务的其他服务也会不可用,形成了级联失败,就是雪崩。
熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求
28、mybatis,$和#的区别
#,表示占位符,相当于jdbc的?,底层是PreparedStatement,sql只编译一次,没有sql注入的问题,#中传入的是基本类型+String,可以随便写,建议写成接口方法的参数名。
$,相当于字符串拼接,底层是Statement,会重新编译sql,有sql注入的问题。当传入的是简单类型的时候,只能写value
29、数据的四大特性
原子性、一致性、隔离性、持久性
30、事务的隔离级别
读未提交、读已提交、可重复读(mysql默认)、串行化
31、多线程的实现方式,线程池实现原理,线程池回收
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口
4.利用线程池创建
工作线程启动后,就进入了runworker方法,里面是一个while循环,循环判断任务是否为空,若不为空,执行任务,若取不到任务,或发生异常,退出循环,执行,processworkerExit,在这个方法里把工作线程移除掉。
线程池创建线程,工作线程从任务队列中,获取任务,执行完任务,将线程归于线程池管理
线程池7大参数:核心线程数、最大线程数、线程存活时间、时间的单位、任务队列、创建线程的工厂、拒绝策略
32、mysql搜索引擎
MyISAM类型不支持事务处理,而InnoDB类型支持。MyISAM类型强调的是性能,其执行速度比InnoDB类型更快,而InnoDB提供事务支持以及外键等高级数据库功能。
33、B+树的底层
1.有两种节点,一种是索引节点,一种是叶子节点
2.索引节点不会保存记录,只用于索引,所有数据都保存在B+树的叶子节点
3.B+树的所有叶子节点会形成一条链表,叶子本身也是按照索引值从小到大排序的,更方便范围查找
3.B+树的索引值一定会全部出现在叶子节点
34、线程池的好处
1.降低资源的消耗
2.提高响应的速度
3.提高线程的可管理性
35、线程的数据如何保持独立
可以使用ThreadLocal,Threadlocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量
36、使用包装类的好处
封装了基本类型的操作,创建集合对象,可以对元素的数据类型用泛型进行限定,而泛型类型只能是引用类型,那么基本类型就用不了了,就要使用对应的包装类
37、sql优化
1.不要用select *
2.用in代替or
3.禁止不必要的order by排序
4.尽量避免使用子查询
5.使用批量插入
6.使用limit
7.优化group by语句
38、缓存什么时候设置淘汰策略
在Redis Memory占用超过我们配置的阈值的时候触发策略执行
39、消息队列丢失情况
生产者消息确认机制、消息持久化、消费者消息确认机制、消费消息失败重试机制
相关文章:

中科软面试题
1、用户注册登录这一块用了哪些技术?数据库主要涉及那些表? 用了BCrypt加密算法,jwt生成token,网关实现全局过滤器校验token,还用了拦截器,获取在网关是指到请求头的userid存到threadlocal里面,…...

(五)PostgreSQL的管理工具pgAdmin
PostgreSQL的管理工具pgAdmin pgAdmin 是一款流行的开源图形界面管理工具,用于 PostgreSQL 数据库的管理和开发。它提供了一个易于使用的界面,允许用户执行各种数据库任务,如创建和修改数据库对象(表、视图、索引等)、…...

wsl 2在windows11上的设置
详细参考:Manual installation steps for older versions of WSL | Microsoft Learn 1.系统组件要打开 分别是:Hyper-V、虚拟机平台、适用于Windows的Linux子系统 2.以管理员方式运行命令行,逐步执行下面的命令 update to WSL 2, you must…...

常用API时间Arrays
常用API MATH 代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。 方法名说明public static int abs(int a)获取参数绝对值public static double ceil(double a)向上取整public static double floor(double a)向下取整public stati…...

CentOS7.9.2009安装Kibana7.11.1
本文章使用CentOS7.9.2009服务器安装kibana7.11.1软件 1.服务器信息 [root@elasticsearch ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@elasticsearch ~]# 2.kibana安装 2.1.创建kibana用户 创建kibana用户和组 命令: useradd kibana [r…...

Linux nfs 环境搭建
1.开发背景 nfs 即网络文件共享,主要通过 tcp、udp 等网络通讯的方式实现不同机器间的文件共享 2.开发需求 搭建 ubuntu 下的服务端,嵌入式开发板共享 ubuntu 的某个文件夹 3.开发环境 ubuntu20.04 嵌入式开发板 4.实现步骤 4.1 搭建 ubuntu 服务器…...

中移物联网 OneOS 操作系统环境搭建和工程创建
一、官网 OneOS Lite是中国移动针对物联网领域推出的轻量级操作系统,具有可裁剪、跨平台、低功耗、高安全等特点,支持ARM Cortex-A和 Cortex-M、MIPS、RISC-V等主流芯片架构,兼容POSIX、CMSIS等标准接口,支持Javascript、MicroPyt…...

AI技术创业机会之教育科技
教育科技领域正因人工智能(AI)技术的创新与发展而焕发全新活力,为创业者开辟了众多革新教育模式、提升教学效果的创业机会。以下详述了教育科技中AI技术的具体创业机会及其细节与内容,以助力有志于投身此领域的创业者全面了解市场前景与潜在机遇。 一、个性化学习平台 1.…...

【备战蓝桥杯】2024蓝桥杯赛前突击省一:图论模版篇
2024蓝桥杯赛前模版突击:图论篇 图论在蓝桥杯中一般考的不难,如果有图论的题,就基本是模板题,知道板子就有分了。 邻接表 本文使用方法1的方式实现邻接表 邻接表1 static int[] dist new int[N],st new int[N]; static int…...

GEE数据集——2019—2023年全球固定宽带和移动(蜂窝)网络性能(更新)
简介 全球固定宽带和移动(蜂窝)网络性能 全球固定宽带和移动(蜂窝)网络性能,分配给缩放级别 16 的网络 mercator 瓷砖(赤道处约 610.8 米乘 610.8 米)。数据以 Shapefile 格式和 Apache Parque…...

ChatGPT 写作秘籍:指导您如何利用ChatGPT撰写学术论文
ChatGPT无限次数:点击直达 ChatGPT 写作秘籍:指导您如何利用ChatGPT撰写学术论文 作为CSDN网站的作者,您可能经常面临不同类型的写作任务,包括学术论文的撰写。在这篇文章中,我们将探讨如何利用ChatGPT这一强大的文本生成工具来辅…...

【原创】springboot+mysql宠物管理系统设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...

Android app如何禁止运行在模拟器中
禁止 Android 应用程序在模拟器上运行涉及到在运行时检测应用是否在模拟器上运行,并根据情况做出相应的处理。以下是一种方法,通过判断设备的某些特征来检测模拟器: 创建一个用于检测模拟器的方法: public static boolean isEmu…...

libcurl 简单实用
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等…...

华为OD技术面试-有序数组第K最小值
背景 2024-03-15华为od 二面,记录结题过程 有序矩阵中第 K 小的元素 - 力扣(LeetCode) https://leetcode.cn/problems/kth-smallest-element-in-a-sorted-matrix/submissions/512483717/ 题目 给你一个 n x n 矩阵 matrix ,其…...

idea如何debug看springsecurity的过滤器顺序
idea如何debug看springsecurity的过滤器顺序 先配置一个Spring启动对象,后续需要根据这个对象来获取SpringSecurity的过滤器链 设置一个输出信息,需要在输出信息这里打上断点,才方便查看过滤器链 public static void main(String[] args) {//此时不…...

【力扣】125.验证回文串
刷题,过了真的好有成就感!!! 题解: 根据题目要求,我们需要处理一下几个问题: 将大写字母转变成小写对原来的字符串进行处理,只要字母和数字考虑只有一个和字符串为空的情况 1、将…...

Fantasy Map Creator 2
Fantasy Map Creator 2是一组风格化的图像,用于在图形编辑器中创建完整的彩色地图或游戏位置,无需艺术技能或图形平板电脑。 Fantasy Map Creator 2是一组风格化的图像,用于在图形编辑器中创建完整的彩色地图或游戏位置,无需艺术技能或图形平板电脑。 现在,每个人都可以在…...

什么是云原生
什么是云原生 云原生的定义 aws: 云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。现代公司希望构建高度可伸缩、灵活和有弹性的应用程序,以便能够快速更新以满足客户需求。为此,他们使用了支持云基础设施上应用程序开发的现…...

为什么要“挺”鸿蒙?
鸿蒙到底是什么? 随着5G、物联网等技术的快速发展,智能终端设备的应用场景也越来越广泛。为了满足不同设备间的互联互通需求,华为在2019年推出了自主研发的操作系统——鸿蒙OS。值得关注的是,这也是首款国产操作系统。 要了解鸿…...

去掉el-date-picker弹窗默认回显当前月份的方法
打开日期弹窗,默认会显示当前月份,如图 会发现加了穿透::v-deep 样式也不生效 .el-month-table .today .cell {color: pink;font-weight: 400;}要让 popper-class“xclass” :append-to-body“false” 这俩配合着使用…...

绝地求生:PUBG×杜卡迪联名上线!参与投稿评论赢取精美好礼
PUBG杜卡迪联名活动游戏内现已正式上线!我们诚邀与您一起在开拓未知战场和书写新历史的过程中,与杜卡迪一同实现您的极速梦想! 在本次的杜卡迪工坊中,更是包含了具备标志性红色在内的6种颜色供您自由选择,一起自由驰骋…...

10个大型语言模型(LLM)常见面试问题和答案解析
今天我们来总结以下大型语言模型面试中常问的问题 1、哪种技术有助于减轻基于提示的学习中的偏见? A.微调 Fine-tuning B.数据增强 Data augmentation C.提示校准 Prompt calibration D.梯度裁剪 Gradient clipping 答案:C 提示校准包括调整提示,尽量减少产生…...

rollup 插件架构-驱动设计 PluginDriver
文章目录 GraphPluginDriver生成 PluginDriver 实例和 PluginCache 缓存创建插件上下文 pluginContext初始化 pluginContext 缓存设置、方法插件中使用缓存可替换的 replace pluginContextPluginDriver 提供 asyn、first、parallel 等类型 hookgetSortedPlugins 运行时收集并存…...

netty实现mqtt(IOT)
springbootnettymqtt服务端实现 springbootnettymqtt客户端实现 MQTT协议基本讲解(结合netty) 李兴华netty视频教程中mqtt讲解 EMQX官网、mqttx客户端 IOT云平台 simple(6)springboot netty实现IOT云平台基本的架构(mqtt、Rabbitmq&…...

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示汉字的功能
基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示汉字的功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍LCD1602字符型液晶显示器介绍一、LCD1602字符型…...

Springboot+Redis:实现缓存 减少对数据库的压力
🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …...

springboot组件的单例模式和分布式分析
springboot组件的单例模式和分布式分析 一、基本概念 在Spring Boot应用中,单例模式是非常常见的一种设计模式,它被广泛应用于Bean的生命周期管理。Spring容器默认会将所有的Component、Service、Repository和Controller注解标记的类作为单例对象进行实…...

Linux:zip命令介绍
简介 zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。 语法 zip [选项] [参数] 选项 -A:调整可执行的自动解压缩文件; -b<工作目录&g…...

远程桌面无法连接怎么办?
远程桌面无法连接是指在尝试使用远程桌面功能时出现连接失败的情况。这种问题可能会给工作和生活带来极大的不便,因此我们需要寻找解决办法。在讨论解决方案之前,我们先来了解一下【天联】组网的优势。 【天联】组网的优势有很多。它能够解决复杂网络环境…...