自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 不规范使用CountDownLatch引发的线程异常等待超时

JUC编程遇到的问题

2022-07-15 14:47:38 7575 7

原创 LeetCode 翻转字符串里的单词

翻转字符串里的单词因为前几天一直在做数组的题,所以看到这个题的第一反应就是把字符串通过切割变成字符串数组,然后再循环颠倒位置。代码如下public static String reverseWords(String s) { s = s.replaceAll("\\u00A0", ""); String[] strs = s.split(" "); for (int i = 0; i < strs.length / 2; i++) {

2021-09-15 09:50:00 160

原创 LeetCode 最长公共前缀

最长公共前缀先看题目这是一道字符串的题,但是处理起来感觉还是和数组处理类似。在我的解法中,都用到了通过下标的操作。我的解法思路是,把字符串数组先按照长度进行排序,然后取出最后一个,也就是最长的字符串,把它作为标杆来做比较。取字符串第 i 位的字符后,循环去取字符串数组中后几个字符串相应 i 位的字符串,然后放入map,key是字符,value则是字符出现数量中,通过map的containsKey方法进行判断,看是否存在该数组,如果存在,则value自增,不存在的话,则新put一个key。等 i 位

2021-09-02 17:24:20 187

原创 LeetCode 零矩阵

零矩阵先看题目这道题还是一道比较简单的题,我看到这道题的第一反应是遇到0,就把0的行和列进行更新,但是一想发现不对,如果这样做的话,输出出来的矩阵就是个全0矩阵了。我想肯定有朋友是跟我一样的想法。于是我就换一个一个思路,把矩阵中0的位置记录下来,然后再进行循环,把0的行和列中的数组赋值为0。贴代码 /** * 这道题的坑是发现0后不能立即把n行n列全部置为0,否则整个矩阵就都是0了。避免了这个问题,这道题就迎刃而解了 * @param matrix */

2021-08-31 14:30:21 208

原创 LeetCode 搜索插入位置

搜索插入位置这也是数组系列的一道题,先看下题目。题目要求时间复杂度O(log n),而且相关标签页提示了用二分查找。在没做题前,O(log n)这种算法就是时间减半,说白了就是二分查找法。那么既然思路已经确定了,那么就差实现代码了。来看看我的代码public int searchInsert(int[] nums, int target) { // 起始位置 int start = 0; // 结束位置 int end = nums.l

2021-08-26 15:25:42 115

原创 LeetCode 寻找数组中心索引

引言这是第一篇我刷LeetCode的记录,趁着热乎劲,把自己的思路,和学习到的思路都总结一下寻找数组中心索引看到这个题的时候,首先我想的就是循环计算每个index左右两边的和,并且计算的时候不能包括index对应的数字,然后再做比较。先贴下代码。public int pivotIndex(int[] nums) { // 默认没有 int centerIndex = -1; for (int i = 0; i < nums.length; i

2021-08-25 15:39:55 83

原创 Nginx功能总结

Nginx能做哪些事:Nginx是俄罗斯一大佬在02年写的,过去这么长时间了,Nginx也早已广泛的用在了我们大大小小的项目中,也证明了它是一款不错的软件,如果还不了了解它都能干什么,那么就往下看一看吧。Nginx主要可以做的事情有反向代理负载均衡HTTP服务器(包含动静分离)正向代理反向代理:应该是nginx做的最多的一件事情了,那什么是反向代理呢?百度上面说:反向代理(Revers Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络服务器

2021-08-24 14:58:52 280

原创 出现OutOfMemory的8种案例

1 Java堆空间发生频率:5颗星造成原因:无法在Java堆中分配对象吞吐量增加应用程序无意间保存了对象引用,对象无法被GC回收应用程序过度使用finalizer。finalizer对象不能立刻被GC回收。finalizer由结束队列服务的守护线程调用,有时finalizer线程处理能力无法跟上结束队列的增长解决方案:单位对应:GB -> G,g; MB -> M,m; KB -> K,k使用 -Xmx 增加堆大小修复应用程序中的内存泄露2 GC开销超过限

2021-07-29 22:12:56 176

原创 注解实现重复请求过滤

前言:很多时候我们都需要在接口上对重复请求进行拦截,就比如下单接口,如果前端未做重复点击处理,有可能在很快的情况下,请求了多次,那么很有可能落入数据库中的就是2条或多条记录了,生产上也就出现了本不应该出现的脏数据了。再比如一些重要的查询接口,如果被黑客盯到,使用脚本或其他攻击方式刷你的接口,那么很有可能会因为巨量的请求无法全部处理,而导致消息积压,最后导致宕机,在微服务架构中,也可能因为这一处被攻破,而导致整个集群出现雪崩。过滤重复请求,也成为了我们从业人员必须要考虑的事情,这样,我们代码的健壮以及安

2021-07-27 16:57:59 817

原创 避免空指针的方法

什么是空指针?避免空指针是一个老生常谈的问题,在这篇帖子中,介绍一下之前总结的几种方法。当一个变量的值为 null 时,在 Java 里面表示一个不存在的空对象,没有实际内容,没有给它分配内存,null 也是对象成员变量的默认值。所以,一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现空指针异常。空指针是运行时异常,编译时无法被察觉到。Object obj = null;String Str = obj.toString();上述代码就会发生空指针的现象解决之道

2021-07-26 21:19:14 869

原创 几种索引失效的原因

索引失效的原因今天上海台风,认认真真的收拾了下家里,又做了个香香的饭,也没剩太多时间,就简简单单的把总结的索引失效的原因分享给大家。本篇是前提是建立在Oracle基础上,当然部分情况MySQL也适用。没有查询条件,或查询条件没有建立索引查询数量是大表的大部分,应该在30%以上组合索引中,在查询条件上没有使用引导列索引本身失效查询条件使用函数在索引列上,或对索引列进行计算,包括 + - * /对小表查询提示不使用索引(这个应该是Oracle才有)CBD计算索引花费过大的情况(CBD也应该

2021-07-25 22:54:48 205

原创 Java重发机制的实现

前言:在上一篇文章 用rabbitmq实现消息重发功能 中,使用了外部的rabbitmq来实现了消息重发的功能,但是使用rabbitmq来实现并不适用于所有的场景,在这篇文章中,我再扩展两种仅用java本身就能实现的方法。Retryer@Retryable实现过程:RetryerRetryer是谷歌 Guava 库下的工具,用 Retryer可以封装成util类,只需要几行代码,就能完成一个很简单的重试功能了。首先是导包<dependency> <grou

2021-07-23 16:32:44 1362 1

原创 用rabbitmq实现消息重发的功能

前言:在开发工作中,有很多时候会遇到要把数据同步给其他部门或三方的场景,这个时候光写一个同步接口是不太稳定的,因为有很多因素会导致同步接口运行失败或未运行,比如调接口之前的代码出现了bug,异常被throws或被catch,没有往下走。再比如对方接收代码出现问题,或者网络问题,接口没通,同步失败。遇到上面同步失败的情况,就会影响到业务的正常使用了,本文只讨论第二种调用失败的情况(第一种情况可以把同步代码封装起来,提供一个接口出来用于手动调用hhhh,很笨但是很救命的办法),所以必须要加入重发机制,来让程

2021-07-22 15:42:10 3886 2

原创 @RequestBody取不到值?报请求体为空怎么办

ss

2021-07-21 15:24:23 5237 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除