- 博客(23)
- 收藏
- 关注
原创 篮球,超越界限的热血运动
它的魅力不仅仅在于比赛的结果,更在于参与其中的过程和享受其中的乐趣。在比赛的关键时刻,球员们需要克服困难和压力,不气馁,不放弃,努力争取胜利。最后,在全球化的背景下,篮球正成为一种不同文化间交流和融合的纽带。无论是NBA的明星球员,还是国际篮球赛事,都为球迷们提供了一个共同的语言和情感纽带。这种快节奏的游戏环境要求球员具备出色的身体素质和心理素质,以应对对手的挑战。无论你是孩子、青年还是老年人,无论你是男性还是女性,只要你热爱篮球并愿意付出努力,你就能够享受到篮球带来的乐趣和成就。
2023-10-10 13:25:56 107
原创 面试题JVM篇
线程私有的,每个线程一份,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。每个线程运行时所需要的内存,称为虚拟机栈,先进后出每个栈由多个栈帧(frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着正在执行的那个方法1.垃圾回收是否涉及栈内存?垃圾回收主要指就是堆内存,当栈弹栈以后,内存就会释放2.栈内存分配越大越好么?未必,默认的栈内存通常为1024K,栈帧过大会导致线程数变少。3.方法内的局部变量是否线程安全?
2023-08-10 15:57:51 279
原创 面试题常见集合篇
散列表又名哈希表/Hash表,是根据键(Key)直接访问在内存存储位置值(Value)的数据结构,它是由数组演化而来的,利用了数组支持按照下标进行随机访问数据的特性。JDK1.8之后采用数组+链表+红黑树,链表长度大于8且数组长度大于64则会从链表转化为红黑树。2.如果数组的索引从1开始,寻址公式中,就需要增加一次减法操作,对于CPU来说就多了一次指令,性能不高。由数组演化而来的,利用了数组支持按照下标进行随机访问数据。添加数据时,计算key的值确定元素在数组中的下标。数组的每个下标位置称之为桶或者槽。
2023-08-08 14:56:56 88
原创 最后一个单词的长度
由若干单词组成,单词前后用一些空格字符隔开。是指仅由字母组成、不包含任何空格字符的最大子字符串。最后一个单词是“World”,长度为5。
2023-08-07 20:44:44 65
原创 面试题消息中间件篇
消息未到达交换机,消息未到达队列,在队列中消息丢失,消费者未接受到消息这些都有可能导致消息丢失RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失,消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功消息失败之后如何处理呢?回调方法即使重发记录日志保存到数据库然后定时重发,成功发送后即刻删除表中的数据MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消息不丢失。1.交换机持久化2.队列持久化。
2023-08-07 16:49:33 55
原创 面试题微服务业务问题篇
面试题:你们项目中有没有做过限流?怎么做的?1.先来介绍业务,什么情况下去做限流,需要说明QPS具体多少我们当时有一个活动,到了假期就会抢购优惠券,QPS最高可以达到2000,平时10-50之间,为了应对突发流量,需要做限流。常规限流,为了防止恶意攻击,保护系统正常运行,我们当时系统能够承受最大的QPS是多少(压测结果)2.nginx限流控制速率(突发流量):使用漏桶算法来实现过滤,让请求以固定的速率处理请求,可以应对突发流量控制并发数,限制单个ip的链接数和并发链接的总数3.网关限流。
2023-08-07 14:49:08 59
原创 面试题微服务SpringCloud篇
如果检测到10秒内请求的失败率超过50%,就出发熔断机制,之后每隔5秒重新尝试请求微服务,如果微服务不能响应继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。:服务提供者每30秒会向eureka发送心跳,报告健康状态,如果eureka服务90秒魅接收到心跳,从eureka中剔除。:服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务器名称,ip,端口等等。服务降级是服务自我保护的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃。
2023-08-03 11:17:47 124
原创 二分查找实现相同字段
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。使用二分查找简单完成题目。
2023-08-03 08:40:56 49
原创 面试题Mybatis篇
Mybatis执行流程:1.读取Myabtis配置文件:mybatis-config.xml加载运行环境和映射文件2.构造会话工厂SqlSessionFactory3.会话工厂创建SqlSession对象(包含了执行Sql语句的所有方法)4.操作数据区的接口,Executor执行器,同时负责查询缓存的维护5.Executor接口的执行方法有一个MappedStatement对象封装映射信息6输入参数映射(java->数据库类型)7输出结果映射(数据库类型->java类型)
2023-08-02 14:45:31 63
原创 移除元素 (双指针)
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。的元素,并返回移除后数组的新长度。
2023-07-31 20:50:34 40 1
原创 删除有序数组中的重复项
如果相等,q 后移 1 位 如果不相等,将 q 位置的元素复制到 p+1 位置上,p 后移一位,q 后移 1 位 重复上述过程,直到 q 等于数组长度。的前两个元素被修改为 1,2 不需要考虑数组中超出新长度后面的元素。要求删除重复元素,实际上就是将不重复的元素移到数组的左侧。首先注意数组是有序的,那么重复的元素一定会相邻。1.比较 p 和 q 位置的元素是否相等。函数应该返回新的长度 2,并且原数组。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。返回 p + 1,即为新数组长度。
2023-07-27 14:34:38 122 1
原创 合并两个有序链表
递归的基本思想是某个函数直接或者间接地调用自身,这样原问题的求解就转换为了许多性质相同但是规模更小的子问题。求解时只需要关注如何把原问题划分成符合条件的子问题,而不需要过分关注这个子问题是如何被解决的。新链表是通过拼接给定的两个链表的所有节点组成的。,这个函数就叫递归函数,调用的过程叫做递归。将两个升序链表合并为一个新的。
2023-07-27 10:10:46 50 1
原创 有效的括号
2:栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom);3:根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。简单来说:栈就像是在排队,最里面的最后出,最外面的最先出。1: 栈是一个先入后出的有序列表;可以根据栈来解决这个问题。,判断字符串是否有效。
2023-07-26 14:44:23 43 1
原创 面试题MYSQL篇
索引(index)是帮助MySql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
2023-07-26 11:29:50 444 1
原创 最长公共前缀
依次遍历字符串数组中的每个字符串,对于每个遍历到的字符串,更新最长公共前缀,当遍历完所有的字符串以后,即可得到字符串数组中的最长公共前缀。如果在尚未遍历完所有的字符串时,最长公共前缀已经是空串,则最长公共前缀一定是空串,因此不需要继续遍历剩下的字符串,直接返回空串即可。可以先比较数组里面字符串的长度,找出最短字符串,然后逐个比较所有字符串的前缀是否都与最小长度字符串相等,更新最长公共前缀.然后需要遍历字符串,如果公共前缀为0同样跳出循环,返回空串。编写一个函数来查找字符串数组中的最长公共前缀。
2023-07-21 10:02:45 62 1
原创 Redis面试总结
1.允许延时一致的业务,采用异步通知使用mq中间中间件,更新数据之后,通知缓存删除利用canal中间件,不需要修改业务代码,伪装为mysql的一个从节点,canal通过读取binlog数据更新缓存2.
2023-07-20 20:38:59 136 1
原创 罗马数字转为整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。2.当小值在大值的左边,则减小值;3.当小值在大值的右边,则增加值;把一个小值放在大值的左边,就是做减法,反之为加法;1.罗马数字是由I,V,X,L,C,D,M构成;4.所以右边的值为正,最后一位必然为证。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。
2023-07-19 16:03:42 46
原创 Centos7 ,RabbitMq快速安装
2.添加 admin 用户为administrator角色 rabbitmqctl set_user_tags admin administrator。4.查看vhost(/)允许哪些用户访问 rabbitmqctl list_permissions -p /1.添加 admin 用户并设置密码 rabbitmqctl add_user admin admin。3.设置 admin 用户的权限,指定允许访问的vhost以及write/read。一、安装Erlang环境。二、安装rabbitMq。
2023-07-19 14:35:14 206
原创 算法之回文数
对于数字 1221,如果执行 1221 % 10 (1221对10进行取余)我们将会得到最后一位数字1 ,要得到倒数第二位数字,我们再对122进行取余得到2。如果我们再把最后一个数字乘10,再加上倒数第二位的数字,1*10+2=12,就得到了我们想要反转的数字。如果继续这个过程,我们将会得到更多位数的反转数字。然而数字的长度有可能是奇数也有可能是偶数我们可以通过去除中间的数字(长度为奇数反转之后中间的数字不影响最回文)。那么,我们应该如何知道反转数字的位数已经达到原始数字位数的一半?
2023-07-18 19:44:52 344 1
原创 Nginx
1、首先安装gcc (编译c程序)、 gcc-c++ (编译c++程序)、 wget (网络下载文件) 工具。CHANGES CHANGES.ru LICENSE README 都是Nginx服务器的相关文件资料。configure目录:Nginx自动安装脚本,用于检测环境,生成编译代码需要的makefile文件。auto目录:存放大量脚本文件和configure脚本程序相关。conf目录:存放Nginx服务器的配置文件。man目录:存放Nginx的帮助文档。src目录:存放Nginx的源代码。
2023-07-18 16:58:56 89 1
原创 初学稀疏数组
//创建一个原始的二维数组,11*11 //0:表示没有棋子 1:表示黑子 2:表示白子 int chessArr1[][] = new int[11][11]; chessArr1[1][2]=1; chessArr1[2][4]=2; //输出原始的二维数组 for(int[] row :chessArr1) { for(int data :row) { ...
2022-05-02 17:36:14 252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人