- 博客(29)
- 收藏
- 关注
原创 Baidu && 搜狐面经
2、如果一个服务入参是JsonString,出参也是jsonString,这个服务可能用到什么注解?1、大对象和小对象都有的情况下,用CMS收集器还是G1收集器?5、如果想用懒汉式但是不加锁的情况下实现单例的初始化,可以有什么方法?7、介绍项目,流程,说说背景、项目中扮演的角色、遇到的挑战是怎么做的?3、lambda表达式除了简洁之外,相比传统的代码写法还有哪些优势?4、内部类有了解过吗?3、HSF的底层原理是否了解?5、生成瓦片的聚合函数的底层原理是怎样的?8、lambda的原理是什么?
2024-06-20 20:25:56
206
原创 几个阶段性的面试难点整理
1、如何排查CPU、内存飙升的问题?2、是否处理过线上问题?是怎么解决的?3、谈谈G1收集器对比CMS收集器的优点?什么情况下适合用G1?4、JVM调优的参数主要指哪方面的调优?5、堆、栈中分别存放了什么?6、什么对象可以用来做GC Root。
2024-06-11 23:40:10
504
原创 京东一面面经
4、SpringBoot中的常用注解有哪些?Spring怎么实现Bean的注入的?8、git版本管理在之前的公司是怎么做的?如果拉的分支含有想要回退的代码,用什么命令操作?2、mysql设计表需要注意哪些地方?6、SpringCloud和RPC框架有什么区别?7、微服务调用在分布式事务下应该如何设计?1、JVM调优怎么调,一般需要调哪些参数。5、微服务中的熔断和降级,简单说说。3、线程池关闭的时候需要做哪些?
2024-06-11 22:55:32
101
原创 五八 && 领岳科技面经 2024.06.06
1、多线程打印有多少种实现方式?2、ReentrantLock中的公平锁是怎么实现的?3、Redis用在什么场景下?分布式锁怎么设置?如何解锁?如果想要续锁应该怎么做?4、redis单线程怎么支持10w qps的并发?5、mysql读写怎么实现的优化?答分库分表6、怎么实现接口的幂等性?7、G1垃圾收集器和CMS有什么区别?如果内存空间特别大的情况下,用哪种垃圾收集器比较好?8、线上CPU飙升问题如何排查?9、kafka有用过吗?什么场景下用到?如果想要消息被下游全部接收到,有什么方法?
2024-06-06 23:46:10
862
原创 限流算法整理——滑动窗口限流算法
首先需要定义结构,因为在滑动窗口中,起到限流作用的应该是最大请求数和当前的小时间窗口(单位: 时间/ 毫秒),一开始的窗口起点应该是最新的当前系统时间//滑动窗口的单位(小)窗口长度//限流最大的请求数量。
2024-06-02 11:41:43
319
原创 【面试】嘀嘀一面面经(大概率凉)
几十个请求过来,lock方法如何保证同一时刻只有一个线程操作共享对象。线程的工作内存是JMM还是操作系统层面的?内存屏障是怎么实现的?体现在对象的哪部分?redis删除过期key的原理是什么?PgSql对比Mysql的优点在哪里。lock等方法是如何保证线程安全的。GC root是怎么选举出来的?CAS是怎么保证线程安全的?线上服务出现问题,怎么解决?2、买卖股票最多的利润。内存泄漏问题如何排查。有哪些垃圾回收算法?
2024-05-30 17:52:13
114
原创 【刷题日记】最长连续序列
2、当前元素的前驱不在,这个数字是开始的一个前驱,需要从这个数字向后遍历,用while循环判断是否在数组中有依序的后继元素。给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。1、当前元素的前驱是否在这个数组中,如果在,跳过这个执行下一个元素的判断。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
2024-05-24 23:38:18
245
原创 【转载】五种方式实现多线程循环打印问题
<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"> <link rel="stylesheet" href="https://csd
2024-05-19 18:46:49
333
原创 关于微服务的一点感悟和过往经验的思考
微服务架构是一种先进的架构模式,适用于大型、复杂的项目。它带来了很多好处,如降低开发难度和复杂度、提高系统的可扩展性和容错性等。但是,它也带来了一些挑战和复杂度,如服务划分难度、分布式复杂性、运维复杂度等。因此,在使用微服务架构时,需要仔细权衡其优缺点,并结合项目的实际情况进行选择。同时,需要不断学习和探索新的技术和方法,以应对微服务架构带来的挑战和复杂度。
2024-05-19 11:10:00
657
原创 【刷题日记】leetcode 76 最小覆盖子串
4、对于新加入的字符s[i],如果hs[s[i]] <= ht[s[i]],说明当前新加入的字符s[i]是必需的,且还未到达字符串t所要求的数量。因此当hs[s[j]] > ht[s[j]时,说明hs哈希表中s[j]的数量多于ht哈希表中s[j]的数量,此时我们就需要向右收缩滑动窗口,j++并使hs[s[j]]–,即hs[s[j ++ ]] --。3、每次向右扩展滑动窗口一步,将s[i]加入滑动窗口中,而新加入了s[i],相当于滑动窗口维护的字符数加一,即hs[s[i]]++。
2024-03-10 11:48:08
347
原创 【刷题日记】长度最小子数组
这里内层循环使用while的原因是防止【1,1,1,1,1,100】target =100 的情况,因为if的条件一旦发现满足大于等于,且走到了最后一个元素,就会停止尝试而继续做浪费时间的外层for循环遍历,使用while可以满足在内层判断中直接获取到最后一个长度为1的元素100。设置left为起始下标,通过right的移动判断是否满足大于等于target的值,发现大于等于之后更新下标的最小值,并且继续移动左指针(因为可能继续移动存在更短的窗口)移动的时候注意要减去已不在窗口内的nums下标。
2024-03-10 10:44:04
335
原创 【刷题日记】IP地址分割
这道题应该使用回溯法求解,因为每一层可以由上一层结果+ 子问题的结果组成,我们可以设置一个len作为执行的进度,然后基于这个len进度,向前推移的步长尾i,在循环里判断substring(len,i)是不是符合条件的,加入到预备结果集中。返回[“255.255.22.135”, “255.255.221.35”]. (顺序没有关系)现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。给出的字符串为"25525522135",
2024-02-18 15:16:26
370
原创 【刷题日记】最长无重复子数组
虽然移除set的队头不一定是移除重复的那个,但是只要set集合包含这个元素,就执行循环的移除,移除成功之后注意将新的元素加入,并且更新下标。如果遇到了重复的元素,需要将重复元素以及重复元素之前的元素全部移除,再将新的重复元素添加进结果集,在这个过程中继续判断长度是否超过限制。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组。给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。
2024-02-16 21:24:57
369
原创 【刷题日记】合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
2024-02-15 20:47:59
355
原创 【阿里健康】面试问题
有一张广告表:trace_ad_info,字段包含广告名称ad_name,广告图片pic_url,广告开始时间start_date,广告结束时间end_date,以及广告id ad_id;有一张广告接收规则表trace_ad_receiver_info,包含三个字段:广告id ad_id,接收类型receiver_type,接收id (receiver_id),这个表接收类型=1表示企业类型,接收类型=2表示区域;广告的接收类型为1且接收ID为1,或者接收类型为2且接收ID为’430000’。
2024-02-06 12:17:07
323
原创 【刷题日记】输出合法括号的全排列
我们先给出第一种解法,这道题按照思路可以用深度优先来解决,深度优先方法就像是构造一棵树,生成n对括号需要n个左括号和n个右括号,树根一定是左括号,加入n=1,就只有2种可能,一个是 “()”,另一个是 “((”;每个字符串都必须是合法的括号表达式。“()“是合法的括号表达式,”(”、“)”、“())”、"(()"等都不是合法的括号表达式。合法的括号表达式的定义是在任何位置,左括号的数量都大于或等于右括号的数量。1、可以顺着合法括号的特点:在任何位置,左括号的数量都大于右括号的数量。
2024-02-05 16:13:16
419
原创 【刷题记录1】最长回文子串
输入:一个字符串 s。你可以假设 s 的最大长度为 1000。经过测试,输出结果: qabbaq,说明是回文,判断成功。给你一个字符串 s,找到 s 中最长的回文子串。注意: “aba” 也是一个有效答案。输出:s 中最长的回文子串。输入: “babad”输入: “cbbd”
2024-01-31 23:21:38
362
原创 CompletableFuture 的知识与运用
super T,?super T> action)`: 当前阶段和另一个阶段中任意一个先正常完成,就将该阶段的结果作为参数传递给消费者`action`,并返回一个新的`CompletionStage`来表示`action`的完成。super T,?super T, U> fn)`: 当前阶段和另一个阶段中任意一个先正常完成,就将该阶段的结果作为参数传递给函数`fn`,并返回一个新的`CompletionStage`来表示`fn`的结果。
2024-01-28 16:36:13
1824
原创 Java重试机制
由于在日常工作中,简单的重试实现直接封装Util,因此直接自己编写逻辑代码就好,但是这么写毕竟不够优雅,因此有了其他实现重试的方式,首推就是CGlib的动态代理方式,参考:https://blog.csdn.net/sco5282/article/details/131390099 博客的3、4方法,实现代理对象的重试。整体实现重试的机制,可以加入根据重试次数或时间,笔者为了让重试方法执行成功,修改了while中的条件,实际情况下,重试机制可以将执行逻辑换成调用第三方接口服务;
2024-01-26 22:44:15
309
原创 Java 类初始化构造器的顺序问题整理
最后,在main方法中,再次创建类B的实例,重复上述的实例化过程,输出"A normal code block"、“new A”、“B normal code block"和"new B”。首先,加载类A和类B,执行静态代码块,因为静态代码块只在类加载时执行一次,所以输出"A static code block"和"B static code block"。类B的实例化过程中,首先会初始化父类A,所以执行A的普通代码块和构造函数,输出"A normal code block"和"new A"。
2024-01-25 22:21:26
637
原创 Java中反射的原理和基本方法示例
反射(Reflection)是Java语言提供的一种基础功能,它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性。通过反射,我们可以在运行时获得程序或程序集中每一个内部属性、方法或构造器的详细信息,并能直接使用这些信息。简单来说,反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。
2024-01-22 19:57:19
365
原创 多线程循环打印ABC/ 123的多种方法
需要明白这道题是考察我们对于线程的控制,所以如果没有丰富的多线程开发经验,手撕这道题是有一些难度的写这道题之前我们首先要知道多线程的几种实现方式。
2024-01-20 21:08:27
778
原创 Java基础面试问题
然后你可以实例化子类。StringBuffer: StringBuffer和StringBuilder的方法基本相同,但是StringBuffer是线程安全的,它的大部分主要方法都进行了同步,所以它适用于多线程环境下的字符串操作。它的内部实现是一个数组,当添加字符时可以直接在数组中添加,不需要创建新的对象,因此效率比String高。String: 在Java中,String是不可变的,也就是说你每次对String类型进行改变,实际上都是生成了一个新的String对象,然后将指针指向新的String对象。
2024-01-20 14:17:40
348
原创 2021-11-01
记录一次Mysql的查询优化一、背景查询需要日期区间和时间段区间参数#{dateBegin} #{dateEnd} #{hourBegin} #{hourEnd}日期传入和时间参数传入都是标准日期格式的截断笔者一开始想通过 DATE()、TIME() 函数实现时间的抽取,但是性能较低后来经过调查发现:substring_index(’’,’’,’’)函数直接对字符串操作,检索性能大约是时间函数的三倍只需按照空格截取二、使用介绍第一个参数是待截取的字符串,大都是表中的某个要进逻辑判断的字
2021-11-01 10:48:53
106
原创 面试问题整理(5)
1 geohash了解吗2 sql注入3 如何判断mysql是否走索引4 redis过期策略5 redis对比memcache的好处6 并发包中有哪些7 jdk的工具类了解吗8 十个g的url,找到其中一个url的手段9 上个问题,如果是10g的数字呢(堆排序)10 如何用并发包实现一个计数器11 如何查看cpu占用12 vi了解吗?linux的常用命令13 如果查询特别慢,有什么优化策略吗...
2021-10-22 09:53:39
84
原创 2020-10-26
1.3 业务用例1.3.1 C端用户业务用例1.3.2 B端商户业务用例1.3.3 整体业务功能用例1.4 关键业务流程2 系统设计2.1 系统整体架构2.1.1 业务架构2.1.2 系统架构2.2 领域模型2.2.1 商户、商品域领域模型2.3 应用系统依赖关系2.3.1 商户域ER图2.3.2 用户域ER图2.3.3交易域ER图2.4 时序图2.4.1用户域1 登陆/注册功能2 登陆验证3 登出功能2.4.2 商户域1.首页导购2
2020-10-26 17:40:02
447
原创 回调方法
回调方法介绍回调方法就是一个参数,将一个A方法作为参数传到B方法里面,当B方法执行完之后,再执行传进去的这个A方法,这个过程就叫做回调。程序示例下面用一个简单的Java类说明回调的作用:首先比如你准备吃饭,但是要等到一段时间之后才吃饭,也就是吃饭这个动作由你执行,但是时间上还要等待,所以你想要叫你的妈妈来叫你去吃饭。我们定义一个eat方法,它的入参包含了Mymother这个对象和一个long类型的时间public class Me { public void eat(Mymother m
2020-07-16 14:46:12
3659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人