![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
九城风雪
这个作者很懒,什么都没留下…
展开
-
美团一面:碰到过OOM吗?你是怎么处理的?
如果面试被提到了OOM相关的问题,那么面试官主要在意的有哪些呢?转载 2024-05-22 11:07:46 · 14 阅读 · 0 评论 -
什么是线程安全? 如何保证线程安全?
随着硬件技术的快速发展(比如多核处理器,超线程技术),我们通常会在代码中使用多线程(比如线程池)来提高性能,但是,多线程又会带来线程安全问题。因此,本文将深入探讨Java中的线程安全问题。转载 2024-05-22 10:19:24 · 113 阅读 · 0 评论 -
Spring Boot整合MybatisPlus逆向工程快速生成代码
MyBatis-Plus是MyBatis的增强工具,Generator通过MyBatis-Plus快速生成Entity、Mapper、Mapper XML、Service、Controller等模块的代码,方便快捷,并且支持MySQL/PostgreSQL。原创 2024-05-11 11:18:15 · 417 阅读 · 0 评论 -
java http长连接_记录一次http网络超时的排查过程
最终我们发现商户是三台服务器一起请求的,而三台服务器应该是经过nat后是同一个ip,那么很可能是触发了tcp中的一个时间戳的限制,也就是如果同一个ip的请求会记录其时间戳并进行比较,下次发送握手报文的时候,如果时间戳比上一次请求时间小,那么会将该握手报文丢弃,如果同一个ip是同一个机器一般不会有问题,然而三台机器相同ip但是时间戳可能不相同,如果在大批量发送请求的时候很可能会触发该规则。经过排查后,都不是上面两个原因,目前现象ping包是正常的,执行以下nc命令 ,偶尔会失败,大部分时候成功。转载 2023-12-27 11:33:32 · 172 阅读 · 0 评论 -
分分钟搞懂布隆过滤器,亿级数据过滤算法你值得拥有!
布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器(Bloom Filter)本质上是由长度为 m 的位向量或位列表(仅包含 0 或 1 位值的列表)组成,最初所有的值均设置为 0,如下图所示。向布隆过滤器中添加 key 时,会使用多个 hash 函数。转载 2023-12-05 16:13:56 · 182 阅读 · 0 评论 -
什么是SPI,SPI和API有什么区别?
什么是SPI,SPI和API有什么区别?转载 2023-10-24 09:58:03 · 121 阅读 · 0 评论 -
# EasyExcel mac或者windows下读取EXCEL正常,Linux服务器下报ExcelAnalysisException:java.lang.AbstractMethodError 异常
网上搜了很多帖子,有说poi依赖冲突的,有说linux上无对应字体的,但是都不生效。最新 3.3.2,更新pom依赖,重新部署到Linux 服务器上问题就解决了。原创 2023-09-15 15:46:07 · 233 阅读 · 0 评论 -
Stream流畅编程:优雅而高效的代码创作
而映射操作本身的优点在于,可以通过简单的函数变换实现对原始数据的转换,减少了繁琐的循环操作,提高了代码的可读性和维护性。需要注意的是,过滤操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,映射操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,排序操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,截断操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。转载 2023-08-30 23:29:10 · 57 阅读 · 0 评论 -
一个SpringBoot 项目能处理多少请求?
这篇文章是基于“一个 SpringBoot 项目能同时处理多少请求?”这个面试题出发的。但是经过我们前面简单的分析,你也知道,这个问题如果在没有加一些特定的前提条件的情况下,答案是各不一样的。比如我再给你举一个例子,还是我们的 Demo,只是使用一下 @Async 注解,其他什么都不变:再次启动项目,发起访问,日志输出变成了这样:同时能处理的请求,直接从 Tomcat 的默认 200 个变成了 8 个?因为 @Async 注解对应的线程池,默认的核心线程数是 8。之前写过这篇文章。转载 2023-07-31 12:20:16 · 58 阅读 · 0 评论 -
SpringBoot 项目打成 .exe 程序
近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇文章的人,按照我的步骤走,能少踩坑。转载 2023-01-02 20:56:22 · 190 阅读 · 0 评论 -
使用 synchronized、 wait、 notify实现带阻塞的线程安全队列
使用 synchronized、 wait、 notify实现带阻塞的线程安全队列。原创 2022-12-18 20:13:04 · 166 阅读 · 0 评论 -
Java中的long类型和Long类型比较大小
Java中Long和long的区别Java的数据类型分为两种:**1、基本类型:byte(8),short(16),int(32),long(64),float(32),double(64),char(16),boolean(1)2、对象类型:Byte,Short,Integer,Long,Float,Double,Character,Boolean上面的对象类型分别是基本类型的包装类,例如Byte是byte的包装类.Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象转载 2021-11-24 17:10:44 · 9702 阅读 · 0 评论 -
Process的waitFor死锁问题及解决办法
Process的waitFor死锁问题及解决办法一、问题概述最近在项目开发中,遇到一个问题, java主线程使用Runtime.exec调用子线程执行shell脚本命令,子线程一直阻塞,而主线程调用process.waitfor()等待子线程返回执行结果,主线程迟迟等不到子线程的返回结果,程序一直阻塞。示例代码如下:import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader;import java.io.InputStream;原创 2021-11-10 16:11:36 · 541 阅读 · 0 评论 -
【java集合系列】手写HashMap
前言HashMap,键值对的一种数据结构,给定唯一的key,获取value。之前2篇文章说过ArrayList在随机访问的时候效率特别高。LinkedList做随机插入删除时候效率高。而jdk中的HashMap集成了这2种优点。话说现在jdk11出来了。但我们工作中大多用的是jdk7。本人写的这一篇HashMap是在看了jdk7与jdk8后写的。2者的思想都有参考。(参考了jdk思想。并不是对jdk源码的讲解,希望不要对你造成误会。)题外话:另外,希望还在用jdk8以下的,新开的项目尽量使用jdk8吧转载 2021-10-07 22:21:05 · 355 阅读 · 0 评论 -
Docker 简介
一、Docker简介什么是 DockerDocker 最初是 dotCloud 公司创始人 Solomon Hykes (opens new window)在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源 (opens new window),主要项目代码在 GitHub (opens new window)上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(转载 2021-10-05 11:33:09 · 265 阅读 · 0 评论 -
HashMap的底层原理
HashMap的底层原理上图中,白色部分是接口,黄色部分是要重点了解的,最好是看一遍源码,绿色部分已经过时,不常用了,但是面试中可能会问到。这里先简单的说一下这几个Map,TreeMap是基于树的实现,HashMap,HashTable,ConcurrentHashMap是基于hash表的实现,下文我们会介绍hash表。HashTable和HashMap在代码实现上,基本上是一样的,和Vector与Arraylist的区别大体上差不多,一个是线程安全的,一个非线程安全,忘记了的朋友可以去看这篇文章,传送转载 2021-10-03 13:29:13 · 573 阅读 · 0 评论 -
tomcat重启机制
1.背景使用bin目录下的shutdown.sh和startup.sh脚本文件可以关闭和启动tomcat容器,tomcat容器关闭后,默认webapps中的应用不再接收新的请求,但是会等待应用进程中正在执行的任务执行完成后再杀掉进程。但是如果应用进程与外部应用由频繁的交互,此时执行shutdown.sh脚本后,应用进程不再接收外部新的请求,但是进程任务一直在执行,对外的效果就是,每次重启tomcat之前的进程一直都在。2.问题应用程序调用了基于quartz的schedule-job,由于schedul原创 2021-09-16 20:22:47 · 1047 阅读 · 0 评论 -
怎样理解阻塞非阻塞与同步异步的区别
作者:卢毅luis链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个调用时,在没转载 2021-07-22 23:07:46 · 246 阅读 · 0 评论 -
如何理解阻塞、非阻塞与同步、异步的区别
如何理解阻塞、非阻塞与同步、异步的区别平时谈论阻塞、非阻塞和同步、异步时,对概念总是理解的不是那么清晰。今天抽空查了一下资料,把查到的资料整理一下。主要参考知乎上的回答:怎样理解阻塞非阻塞与同步异步的区别? - 网络编程 - 知乎一、同步与异步同步与异步关注的是消息通信机制(synchronous communication/ asynchronous communication)。所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不反回。但是一旦调用返回,就得到返回值了。换.转载 2021-05-27 11:45:40 · 103 阅读 · 0 评论 -
httpclient使用实例
httpclient学习文档一、 httpclient 简介官网: http://hc.apache.org/ 使用版本: 4.5.13使用场景:爬虫、多系统之间接口交互二、JDK 原生api发送http请求2.1 HttpURLConnectionimport org.junit.jupiter.api.Test;import java.io.BufferedReader;import java.io.InputStream;import java.io..原创 2021-05-16 16:00:47 · 875 阅读 · 0 评论