自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 web工程师必备知识(所有文章总目录个人总结持续更新)

一、java那些事String s1 = "abc"; String s2 = "abc";创建了几个对象?以及字符串常量池设计模式(单例模式)线程的6种状态(NEW,RUNNABLE,BLOCKED,WAITING,TINED_WATING,TEMINATE)常见的数据结构(栈、队列、数组、链表和红黑树)java中静态方法为什么不可以调用非静态方法将一个数组中所有的奇数...

2019-01-11 12:52:13 515

原创 高频面试题:说一下线程池吧?(线程池原理,核心参数,创建方式,应用场景都要说到才能让面试官心服口服)

本文全面解析Java线程池面试要点,重点介绍了线程池的创建方式、核心参数及执行流程。推荐使用ThreadPoolExecutor构造函数创建线程池,详细讲解了七大核心参数的作用及配置建议,包括核心线程数、任务队列和拒绝策略等。文章还提供了线程池底层工作原理图解、监控方法和优雅关闭方案,并给出生产环境最佳实践:使用有界队列、合理设置线程数、自定义线程工厂等。最后强调要根据业务场景压测调优,建议通过配置中心动态管理线程池配置。全文内容详实,适合Java开发者面试准备和实际应用参考。

2025-08-26 23:14:01 861

原创 场景题:(下)redis挂了怎么办?(这次必须挂了,然后说一下解决方案)上一篇是如何保证redis不挂,这一篇是真的挂了如何处理

Redis高可用方案:从故障处理到架构设计 摘要:Redis作为关键组件,宕机会直接影响系统可用性。本文系统介绍了Redis故障的应急处理方案:检查进程状态、分析日志、降级策略。同时深入剖析了常见故障原因(内存不足、持久化阻塞、大Key等)及排查方法。重点提出了高可用架构设计建议,包括部署Redis集群、合理配置持久化、资源限制和监控告警。针对Java应用,提供了异常捕获、熔断降级、多级缓存等容灾设计方案。最后总结了Redis故障管理的全流程原则:事前预防、事中应急、事后恢复,强调监控和演练的重要性。

2025-08-25 10:25:01 1546

原创 场景题:Redis是单线程的,为啥那么快呢?(这个问题必须要 吊打一下面试官,记不住背下来!)

Redis以单线程实现高性能的关键在于:1)纯内存操作,2)高效数据结构,3)单线程避免锁竞争,4)I/O多路复用技术。其核心命令处理保持单线程,仅网络I/O使用多线程提升吞吐。Redis6.0后引入多线程仅处理网络读写,命令执行仍单线程串行。通过精巧设计,Redis在简单可控的单线程模型下实现极致性能,为高并发系统设计提供了重要启示。

2025-08-24 16:11:40 633

原创 场景题:内存溢出 和 内存泄漏 有啥区别?

内存溢出是指程序在申请内存时,没有足够的内存空间供其使用,JVM 无法再分配所需内存,从而抛出错误。内存泄漏是指程序中已经不再使用的对象,由于某些原因无法被垃圾回收器(GC)回收,导致这些对象一直占用内存,随着时间推移,内存占用越来越高,最终可能引发内存溢出。🔍关键点:对象“无用但可达” → GC 无法回收。术语关键理解开发建议内存泄漏无用对象未被回收→ 内存被“悄悄吃掉”写代码时注意引用生命周期,避免长期持有内存溢出内存不够用→ JVM崩溃合理设置堆大小,监控内存使用,及时排查泄漏💡。

2025-08-22 18:40:22 1234

原创 406 Not Acceptable问题解决

最近在学习全栈的时候,写好的后端接口,用apifox调用,返回406,感觉很奇怪,下面是解决思路和方案思路:先调查406是什么原因?说人话:就是客户端请求的数据格式和服务端响应的数据格式不一致。仅此而已。

2025-08-22 10:24:20 1269

原创 全栈工程师之VsCode常用插件安装

VS Code提供了非常丰富的插件功能,根据你的需要,安装对应的插件可以大大提高开发效率。

2025-08-18 15:16:54 784

原创 记录一下公司真实的RabbitMQ 消费者消息挤压问题

摘要:开发团队在发版后遭遇线上OOM故障,新功能线程未关闭导致内存溢出。应急处理快速回滚版本恢复业务,通过日志定位到异常代码位置。原因在于多线程未妥善处理异常情况,解决方案是在finally块中确保线程关闭。事故警示:要敬畏生产环境,充分自测、代码审查,避免小问题引发大故障。新手开发者更应谨慎,必要时借助AI检查代码。回复888可领取最新面试题。(149字)

2025-07-31 16:13:18 448

原创 CentOs7 安装docker教程

uname -r确保您的系统内核版本为3.10或更高版本,否则Docker可能无法正常运行。

2025-03-06 17:02:24 452

原创 rabbitMq创建队列和交换机不成功的问题(解决方案和排查问题思路)

1.Springboot+Rabbitmq项目启动后不能自动创建交换机和队列2.消费者和生产者是在2个不同微服务中3.先启动生产者的模块, 启动成功, 但是交换机和队列没有创建, 然后启动消费者一直启动失败4.生产者的微服务配置了交换机队列和绑定key的声明, 消费者直接监听了队列,没有填写配置信息开发阶段为啥没发现这个问题:1. 本地idea链接开发的Rabbitmq服务器, 然后运行启动和debug启动, Rabbitmq可以创建交换机和队列;

2025-02-21 09:27:46 1446

原创 深入解析 TCP、UDP、HTTP 与 HTTPS 网络协议(后面附面试话术)

面试官: 给我说一下tcp和udp的区别? 以及http和https的区别吧?

2025-02-15 11:47:24 1360

原创 通过用户登录案例,详细说明线程的7种状态

通过以上示例,你可以清楚地看到线程在不同阶段的生命周期转换。

2025-02-15 10:58:30 239

原创 通过idea创建一个springboot 并执行案例

使用阿里云的地址, 可以选择低版本的spring boot版本。1服务url选择阿里云,国内地址速度会更快。然后选择自己对应的maven安装位置和相关配置。artifact的名称通常是项目名称。出现这个就是项目创建成功了。

2025-01-07 16:34:12 491

原创 Error creating bean with name ‘org.springframework.security.filterChainProxy‘ 异常处理

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener。九月 26, 2024 5:55:40 下午 org.apache.catalina.core.StandardContext listenerStart。这个标签不能简写,要写完整;

2024-09-26 18:09:24 844

原创 配置tomcat报错Warning the selected directory is not a valid tomcat home汇总网络其他方法,和自己解决方案

网上找了半天,其他方案,比如修改文件权限(我是windos系统啊,本来就是所有权限啊)1.进入tomcat官网,https://tomcat.apache.org/2.选择对应的版本,然后下载,我又试了试,可以了,就是包的问题。3.去官网下载最新的tomcat包(我用这个解决了)2.优先选择tomcat home路径。1.修改tomcat权限。如何下载tomcat。

2024-09-14 10:10:58 1172

原创 jvm-证明cpu指令是乱序执行的案例

执行结果: 第1661256次 (0,0)证明了,cpu指令的确是乱序执行的;

2024-07-19 09:58:46 481

原创 3.spring源码:refresh()第一个方法prepareRefresh()

prepareRefresh()方法作用?1.主要目的,是为了容器刷新前,做一些准备工作,具体准备工作如下.2.设置容器启动时间(每次项目启动成功后,日志会打印启动时间,就是这里开始计时的)3.设置活跃状态true(表示容器正在工作,是活跃状态)4.设置关闭状态为false5.获取Environment对象,并加载当前系统的属性值到Environment对象中6.准备监听器和事件的集合对象,默认是空的。

2024-05-31 17:11:54 320

原创 2.spring源码:之了解setConfigLocations方法

setConfigLocations(configLocations)方法作用?1.解析xml文件的名字,如果名称中存在占位符号,需要进行替换工作2.设置配置信息,标准环境创建等。

2024-05-30 18:01:04 285

原创 0.spring源码:概述图以及整体学习路线目录(后续更新)

加载文件->读取文件->bean定义信息->前置处理器(扩展增强)->实例化->初始化->设置属性->设置aware接口->后置处理器:before->后置处理器:after->完整对象。

2024-05-30 14:37:09 219

原创 1.spring源码:初步认识

【代码】1.spring源码:初步认识。

2024-05-29 17:51:21 256 1

原创 spring源码环境搭建问题解决

安装后需要配置国内下载镜像(否则下载超级慢,我下载了一个上午没下载好,修改国内镜像后,几分钟好了)解决build.gradle->搜configurations.all 添加。

2024-03-13 16:30:26 283

原创 idea工作常用插件收藏

空了在整理吧,先截图。

2024-02-27 14:43:20 208

原创 java项目启动脚本shell脚本

6. 为了防止java程序被启动多次,这里增加反复检查进程,反复杀死的处理(递归调用stop)。#5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed]#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行。#5. 如果步骤4的结果$?#2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid。#2. 如果程序已经启动($psid不等于0),则提示程序已启动。#1. 首先调用checkpid函数,刷新$psid全局变量。

2023-12-26 11:32:53 246

原创 nexus 私服 拉不了 jar 包,报 Not authorized

如果你排查了所有情况,并且确定账号密码都没问题,路径也正确,并且setting.xml都配置正确了。可以看下是不是这个原因。

2023-09-21 16:53:32 490

原创 工厂方法模式【Factory Method Pattern】

实例化对象,用工厂方法代替new操作(重点)工厂模式包括工厂方法模式和抽象工厂模式抽象工厂模式是工厂方法模式的扩展。

2023-08-16 13:51:36 359

原创 代理模式【Proxy Pattern】

什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。

2023-08-14 15:34:51 1058

原创 策略模式【Strategy Pattern】

里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,用 JAVA 程序。嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子。刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,妙计是小亮同志给的,妙计是放置在锦囊。

2023-08-09 17:52:32 900

原创 Mysql on duplicate key update用法,注意三点就能上手

Mysql on duplicate key update用法,注意三点就能上手

2022-08-23 16:00:54 619

原创 (一分钟看懂4种拒绝策略) java多线程拒绝策略

一分钟看懂4种拒绝策略

2022-08-11 11:07:38 957

原创 class加载过程和双亲委派模型

2022-03-12 13:24:08 517

原创 根据变量名例用反射获取实体对应的值

/** * 根据变量名字,来获取实体对应字段的值 * @param element * @param o * @return */ public static Map<String, Object> getMapByEntityElement(String[] element, Object o){ try { Class aClass = o.getClass(); ..

2021-10-29 17:48:54 343

原创 idea快速修改git地址

方法一:直接修改文件找到项目所在目录文件->.git->config->把如图对应的地址改成新地址,然后重启idea方法二:用idea界面修改

2021-06-12 09:53:12 1566 1

原创 IDEA好用的插件

好用的插件

2021-05-26 20:45:48 334

原创 nginx

1 整体结构2常用配置#user nobody;#工作进程数(一般配置一个就足够了)worker_processes 1;events { #最大链接数 worker_connections 1024;}http { #资源类型 include mime.types; default_type application/octet-stream; #用于开启文件高效传输模式 sendfile on; .

2021-02-03 14:46:42 167

原创 微信支付对接记录,和遇到的坑,总结!并附带微信支付工具类,只需要替换几个参数就可以直接使用!

第一个坑,签名获取,微信是两次签名加密,要按照微信官方文档一步步查看参数是否正确.第二个坑,md5加密,我用到网上的md5加密方法,当小程序调起微信支付的时候一直报签名失败,最后发现是签名的md5加密的问题.第三个坑,两次签名加密如果用到时间戳和随机字符串,一定要保持一致,用同一个,否则也会报出签名异常.第四个坑,微信支付不能重复提交不一样的订单,比如:用户待付款,商家修改价格,然后提交就会出现订单重复问题.解决方案:就是业务订单号和支付订单号分开处理,每次支付都生成支付单号就也可以解决..

2020-12-26 17:06:29 633

原创 如果有人问你什么是多线程,你这样说,面试管肯定对你另眼相看!

什么是线程安全?我相信不少做了几年开发的人,面试都会遇到这个问题.不理解的人一般会说,线程安全就是指,线程的安全啊,这回答了等于没说!线程安全其实指的是内存的安全,为什么这么说呢?这还是和操作系统有关系!操作系统一般都是多任务的,就是多个进程同时进行(准确来说是cpu切换的速度太快了),所以每个进程之间访问的数据要保证安全,所以每个进程都只能访问自己的内存,不能访问别的进程,这个操作系统已经处理过了.但是每个进程除了自己私有的一个内存空间外,还有一个公共的区域,"堆"内存;进程中的所有线程都

2020-07-29 14:42:37 385

原创 记录一下郑州互联网公司的一次奇葩面试经历

关注公众号:码农脱贫(回复0728可以获取到大厂面试题)2020.6.30面试总结郑州**公司一面:一个人事面的,不懂技术,爱问一些乱七八糟的东西,就是为了判断你是否工作经验造假(培训班的估计不好进).感觉这个公司很奇葩,小公司,公司主要就是承接小活,没有自己的项目,适合作为跳板公司.很锻炼自己的能力.人事:你好,先自我介绍一下吧我:*******人事:你第一份工作是在南方,你为啥要去那么远啊?我:一个表哥在那里做主管,毕竟让毕业,内部推荐好进去,没费劲就工作了,拿的实习薪.

2020-07-28 13:56:11 639

原创 RedisTemplate的五种基本用法(nosql数据库)

/** * StringRedisTemplate继承了RedisTemplate但两者的数据并不互通 * 一共五种数据结构 * 1.redisTemplate.opsForValue() 字符串 * 2.redisTemplate.opsForHash() hash * 3.redisTemplate.opsForList() list * 4.redisTemplate.opsForSet() 无序set * 5.redisTemplate.opsForZSet() ..

2020-07-20 10:14:56 537

原创 黑马内部资料,不加密,直接看!快领取

回复0713可免费领取

2020-07-13 09:56:16 3485 12

原创 idea如何设置忽略文件不上传

如果没有找到.gitignore的文件设置就点击右边的绿色加号添加一个,并把下面的复制上去即可;*.classpath;*.hprof;*.idea;*.iml;*.myumldata;*.project;*.pyc;*.pyo;*.rbc;*.settings;*.yarb;*~;.DS_Store;.git;.hg;.myeclipse;.mymetadata;.svn;...

2020-04-11 21:30:31 1800

空空如也

空空如也

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

TA关注的人

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