自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 资源 (3)
  • 收藏
  • 关注

转载 Spring中的“三级缓存”(转)

根本原因是 Spring 解决循环依赖依靠的是 Bean 的 中间态 这个概念,而中间态指的是 已经实例化,但未初始化的状态。具体参见Scope接口。从上面代码可以看到,若构造函数之间发生循环依赖(A的构造方法中依赖B,B的构造方法中依赖A),程序会在运行时一直循环调用最终导致内存溢出。当获得对象的引用时,对象的属性是可以延迟设置的。注意:这里指的循环依赖不是方法之间的循环调用,而是对象的相互依赖关系。循环依赖不仅发生在多个类中,还可能发生在本类中,即 N = 1,这种事极限情况的循环依赖:自己依赖自己。

2023-11-14 15:34:32 135

转载 LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项(转)

大家在开发过程中必不可少的和日期打交道,对接别的系统时,时间日期格式不一致,每次都要转化!每次写完就忘记了,小编专门来整理一篇来详细说一下他们四个的转换的方法,方便后面使用!!需要注意的是,在使用时需要注意时区和时间戳的问题,否则可能会出现一些错误。总之,熟练掌握这些类型之间的转换方式可以提高我们的开发效率,也可以避免一些常见的错误,在实际开发中能够更加高效地处理日期时间相关的任务。如果对你有帮助,还请动一下您的发财小手,关注一下公众号哈!!!建了一个IT交流群,欢迎大家加入,过期加我拉你们进哈!

2023-10-27 15:04:00 191

转载 栈和栈帧(转)

(stack)又称为或,是计算机科学里,它按照)的原则存储数据。栈顶栈底下面是栈的示意图,从图中可以清楚的看到,不管是还是,都是在进行的,还有就是FILO原则,可以看到,如果你想取出B的值,那么你必须先要将B的上面的C取出,要取出C的值,就得取出C上面的值,以此类推。从技术上说,就是CPU寄存器里的。这里所说的“某个指针”通常位于x86/x64平台的ESP寄存器RSP寄存器,以及ARM平台的SP寄存器。操作栈的最常见的指令时PUSH(压栈)和POP(弹栈)。PUSH指令会对ESPRSPSP。

2023-10-27 10:49:43 130

转载 Java并发高相关

java并发

2023-10-27 10:36:15 70

转载 RabbitMQ消息丢失的场景,MQ消息丢失解决方案(转)

如果需要保证消息在整条链路中不丢失,那就需要生产端、mq自身与消费端共同去保障。生产端:对生产的消息进行状态标记,开启confirm机制,依据mq的响应来更新消息状态,使用定时任务重新投递超时的消息,多次投递失败进行报警。mq自身:开启持久化,并在落盘后再进行ack。如果是镜像部署模式,需要在同步到多个副本之后再进行ack。消费端:开启手动ack模式,在业务处理完成后再进行ack,并且需要保证幂等。通过以上的处理,理论上不存在消息丢失的情况,但是系统的吞吐量以及性能有所下降。

2023-10-23 14:48:49 129

转载 别再纠结线程池池大小、线程数量了,哪有什么固定公式 (转)

上面的例子,只是辅助,为了更好的理解线程数/程序行为/CPU状态的关系,来简单总结一下:一个极端的线程(不停执行“计算”型操作时),就可以把单个核心的利用率跑满,多核心CPU最多只能同时执行等于核心数的“极端”线程数如果每个线程都这么“极端”,且同时执行的线程数超过核心数,会导致不必要的切换,造成负载过高,只会让执行更慢I/O 等暂停类操作时,CPU处于空闲状态,操作系统调度CPU执行其他线程,可以提高CPU利用率,同时执行更多的线程。

2023-09-20 16:13:00 96

转载 注意避坑!Java 内部类持有外部类会导致内存泄露(转)

本文介绍 Java 内部类持有外部类导致内存泄露的原因以及其解决方案。为什么内部类持有外部类会导致内存泄露非静态内部类会持有外部类,如果有地方引用了这个非静态内部类,会导致外部类也被引用,垃圾回收时无法回收这个外部类(即使外部类已经没有其他地方在使用了)。若内部类持有外部类的引用,对内部类的使用很多时,会导致外部类数目很多。此时,就算是外部类的数据没有被用到,外部类的数据所占空间也不会被释放。本处在外部类存放大量的数据来模拟。

2023-09-18 13:29:48 67

转载 一个 SpringBoot 项目能处理多少请求?(小心有坑) (转)

这篇文章是基于“一个 SpringBoot 项目能同时处理多少请求?”这个面试题出发的。但是经过我们前面简单的分析,你也知道,这个问题如果在没有加一些特定的前提条件的情况下,答案是各不一样的。比如我再给你举一个例子,还是我们的 Demo,只是使用一下 @Async 注解,其他什么都不变:再次启动项目,发起访问,日志输出变成了这样:同时能处理的请求,直接从 Tomcat 的默认 200 个变成了 8 个?因为 @Async 注解对应的线程池,默认的核心线程数是 8。之前写过这篇文章。

2023-09-15 13:38:09 72

转载 【深度思考】如何优雅的实现脱敏?(转)

如果上文中提到的每一步都正常操作了,但自定义脱敏注解还是不生效:那很可能是Spring Boot默认的消息转换器被替换成fastjson了,因为Spring Boot默认是使用jackson进行序列化的,上面的方案也是@Bean此时的解决方案是新建过滤器类,实现@Overridetry {if (!// 手机号脱敏// 车牌号脱敏// 身份证号脱敏// 银行卡脱敏// 自定义脱敏default:break;此时,上文中自定义的脱敏注解中,和。

2023-08-31 09:45:19 657

转载 钉钉消息已读、未读咋实现的嘞?(转)

一款app,消息页面有:钱包通知、最近访客等各种通知类别,每个类别可能有新的通知消息,实现已读、未读功能,包括多少个未读,这个是怎么实现的呢?比如用户A访问了用户B的主页,难道用rabitmq给B发通知消息吗?量大了成本受得了吗?有没有成本低的方案呢。

2023-08-31 09:29:24 173

转载 IDEA中如何使用Vue(转)

2.点击File-->Settings-->Editor-->Inspections-->HTML,展开HTML后找到 Unknown HTML tag attribute,然后点击其右边的拓展按钮。1.首先在File中打开Settings -->Editor-->File Types,然后再下拉选项中找到HTML,并且点击其加号添加后缀。3.上一步操作进行完后,点击Installed在其搜索框下搜索Vue插件并且进行勾选,勾选后点击Apply。二、让Vue的后缀文件(.vue)能够识别HTML格式。

2023-07-12 09:38:43 3778

转载 IDEA给【类】和【方法】设置作者和日期等注释(适合初学者)(转)

File--->Settings--->Editor--->Code Style--->Live Templates,里面有很多内置可修改的模板,创建一个属于自己的模板。第一步:File--->Settings--->Editor--->Code Style--->File and Code Templates。原文地址:https://blog.csdn.net/m0_61933976/article/details/127021176。第一步:创建一个模板组:myTemplates。

2023-07-11 16:13:36 1921

原创 线程池源码---循环中 retry标记的使用

此外,retry标记(只能在循环关键字之前进行标记for,while,do...while)位置后,只能在break,continue 后进行配对使用。此写法需要注意:retry(可以更换为其他)需要紧接着循环进行标记,中间不可以有其它代码。

2023-07-05 13:54:45 164

转载 Spring Boot 项目设计业务操作日志功能(转)

很久以前都想写这篇文章,一直没有空,但直到现在我对当时的情景还有印象,之所以有印象是因为需求很简单,业务操作日志的记录与查询的功能,但是具体实现真的很烂,具体的烂法会在反面示例里细说,领导以及客户层面很认可,一系列迷之操作,让我印象深刻。业务操作日志记录中包含了用户操作的功能名称、功能描述、操作人、操作时间和操作的参数报文,参数报文之所以选择存储在文件中,是因为正常情况下,是不需要知道具体的参数报文,只有在回滚操作的时候才会用到,可以根据上一次的参数报文逆向操作。

2023-06-29 10:59:23 121

转载 Spring MVC官方文档学习笔记(二)之DispatcherServlet(转)

(1) 前面已经提过了,DispatcherServlet会将实际的请求处理过程委托给那些特殊的组件来干,而它本身起一个统一分配与调度的作用,这些特殊的组件已经由Spring提供了默认的实现,但同时Spring也允许我们自己实现替换它们,下表列出了由 DispatcherServlet检测到的这些特殊的Bean类型。针对请求搜索恰当的handler,如果搜索到的话,与该handler相关的执行链(HandlerExecutionChain)将会被执行,以准备渲染模型(model)

2023-06-26 16:25:15 1246

转载 Spring MVC详解(转)

1.1介绍Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能Java Web开发者必须要掌握的技术框架1.2MVC是什么MVC是一种软件架构思想,把软件按照模型,视图,控制器来划分Model:模型层,指工程中的JavaBean,用来处理数据JavaBean分成两类:一类称为实体类Bean:专门用来存储业务数据,比如Student,User。

2023-06-26 13:42:38 10457 1

原创 @Autowired,@Bean 的区别

其实在启动spring IOC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource(是CommonAnnotationBeanPostProcessor后置处理器处理的)或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。注解的类里,也可以用在@Component注解(@Controller,@Service,@Repository)的类里。

2023-06-15 13:16:21 1186

转载 Quartz + SpringBoot 实现定时任务(多任务,多执行时间)代码模板(转)

quartz 是一款开源且丰富特性的Java任务调度库,用于实现任务调度和定时任务。它支持各种任务类型和灵活的配置选项,具备作业持久化、集群和分布式调度、错误处理和重试机制等功能。Quartz被广泛应用于各种应用程序中,提供可靠和灵活的任务调度解决方案。

2023-06-12 14:46:18 2351

转载 设计模式之订阅发布模式(转)

订阅发布模式(Publish-Subscribe Pattern)是一种行之有效的解耦框架与业务逻辑的方式,也是一种常见的观察者设计模式,它被广泛应用于事件驱动架构中。在这个模式中,发布者(或者说是主题)并不直接发送消息给订阅者,而是通过调度中心(或者叫消息代理)来传递消息。发布者(或者说是主题)并不知道订阅者的存在,而订阅者也不知道发布者的存在。他们彼此唯一的关系就是在调度中心注册成为订阅者或者发布者。当一个发布者有新消息时,就将这个消息发布到调度中心。调度中心就会将这个消息通知给所有订阅者。

2023-06-07 14:27:02 1586

转载 Redis问题详解(转)

先解释 Redis 基本概念RedisRemoteDictionaryServer) 是一个使用C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。简单提一下 Redis 数据结构Redis可以存储键和不同类型数据结构值之间的映射关系。键的类型只能是字符串,而值除了支持最基础的五种数据类型外,还支持一些高级数据类型一定要说出一些高级数据结构(当然你自己也要了解.. 下面会说到的别担心),这样面试官的眼睛才会亮。Redis 小总结与传统数据库不同的是Redis。

2023-06-07 10:08:40 67

转载 Redis延迟双删实例详解(转)

延迟双删策略是分布式系统中数据库存储和缓存数据保持一致性的常用策略,但它不是强一致。其实不管哪种方案,都避免不了Redis存在脏数据的问题,只能减轻这个问题,要想彻底解决,得要用到同步锁和对应的业务逻辑层面解决。

2023-06-07 09:32:26 1074

原创 RPC框架一,RMI远程调用实例

3,写个RMI服务端程序 RmiSeverTest.java(main方法,注意此类需要和RMI接口实现在同个包下,或者子包中,原因是接口实现的无参构造器是protected权限)将项目打包为rmi-sub-1.0.0.jar (去除其他文件,仅保留必须的MyRmiService.class,MyRmiServiceImpl_Stub.class两个文件)网上找了好久关于RMI调用的实例,大多都是本地调用的,远程调用的示例很少,所以自己整理一版。1,写个RMI接口 MyRmiService.java。

2023-04-13 11:07:28 375

转载 Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)

Java8内存模型—永久代(PermGen)和元空间(Metaspace)一、JVM 内存模型  根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。  1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowErr

2022-02-28 14:02:55 365

转载 Java内存模型与指令重排(转)

Java内存模型与指令重排本文暂不讲JMM(Java Memory Model)中的主存, 工作内存以及数据如何在其中流转等等,这些本身还牵扯到硬件内存架构,直接上手容易绕晕, 先从以下几个点探索JMM原子性 有序性 可见性 指令重排 CPU指令重排 编译器优化重排 Happen-Before规则原子性原子性是指一个操作是不可中断的. 即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰.例如CPU中的一些指令, 属于原子性的,又或者变量直接..

2022-02-08 15:02:32 194

转载 浅谈IOC--说清楚IOC是什么(转)

1.IOC的理论背景2.什么是IOC3.IOC也叫依赖注入(DI)4.IOC的优缺点5.IOC容器的技术剖析6.IOC容器的一些产品7.参考博文本文旨在用语言(非代码)说清楚IOC到底是什么,没有什么高深的技术,园中的老牛、大虾们看到这里可以绕行了,以免浪费您宝贵的时间。IOC这个东西DebugLZQ早就想写了,但是出于对文章权威性的考虑(不能误人子弟- -!),本文主要内容来源于最近LZ看的一些国内外的关于IOC的博文、博问,所有引用到的文章,在参考博文中均已注明。1.IO

2021-10-12 10:26:59 323

转载 Java中CAS详解(转)

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volatile不能保证原子性。因此对于同步最终还是要回到锁机制上来。独占锁是一种悲观锁,synchronized就是一种

2021-06-15 09:28:26 232

转载 Weblogic 禁用不安全的http请求(转)

网上搜了好多禁用http请求的方法,都是介绍tomcat容器下的相关配置,但是把web项目放到weblogic容器下会报错,无论如何也启动不起来,费了一番功夫找到一篇文章,问题解决初次使用Weblogic,因为之前是在Jboss或tomcat上部署的工程,运行正常,但是在weblogic上安装部署的时候,就出现了一个常见的问题:如下<2014-1-7 下午02时43分15秒 CST> <Error> <J2EE> <BEA-160197> &lt.

2020-12-31 15:55:02 1354

转载 缓存穿透、缓存雪崩和缓存击穿是什么?(转)

对于缓存穿透、缓存雪崩和缓存击穿常常出现在面试中,今天来看看它到底是啥吧?redis缓存穿透理解重在穿透吧,也就是访问透过redis直接经过mysql,通常是一个不存在的key,在数据库查询为null。每次请求落在数据库、并且高并发。数据库扛不住会挂掉。解决方案可以将查到的null设成该key的缓存对象。 当然,也可以根据明显错误的key在逻辑层就就行验证。 同时,你也可以分析用户行为,是否为故意请求或者爬虫、攻击者。针对用户访问做限制。 其他等等,比如用布隆过滤器(超大型has

2020-11-13 10:43:02 103

转载 关于oracle数据库中出现ORA-00907: 缺失右括号的解决方法(转)

关于oracle数据库中出现ORA-00907: 缺失右括号的解决方法原文地址:https://www.cnblogs.com/Olive116/p/5149680.htmlORA-00907: 缺失右括号前言最近在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了“ORA-00907: 缺失右括号”的问题,但是如果直接把sql语句直接在数据库或PL/SQL中执行时,却又能够正常查询,为了解决这个问题,折腾了半天,查找了一些资料,所以就对各种导致出现“缺失右括号”的情况进行了整理总结

2020-11-04 10:14:25 15448 1

原创 JAVA创建文件(包括空文件)

JAVA创建文件(包括空文件)最近没咋看JAVA代码了,发现基本的创建文件和空文件的方法都忘得差不多了~~public class Test { public static void main(String[] args) { File filePath = new File("D:/cpicapp/tmp"); if (!filePath.exists()) { // 写日志 System.out.printl...

2020-11-04 10:13:25 1641

转载 你是否还在写try-catch-finally?来使用try-with-resources优雅地关闭流吧(转)

前言开发中,我们常常需要在最后进行一些资源的关闭。比如读写文件流等,常见的,我们会在最后的finally里进行资源的关闭。但是这种写法是很不简洁的。其实,早在JDK1.7就已经引入了try-with-resources来关闭资源的方式,我们今天就来体验一下try-with-resources的简洁之处。原创声明本文首发于头条号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:(htt

2020-06-09 16:11:25 276

转载 不要把异常当做业务逻辑,这性能可能你无法承受(转)

不要把异常当做业务逻辑,这性能可能你无法承受一:背景1. 讲故事在项目中摸爬滚打几年,应该或多或少的见过有人把异常当做业务逻辑处理的情况(┬_┬),比如说判断一个数字是否为整数,就想当然的用try catch包起来,再进行int.Parse,如果抛异常就说明不是整数,简单粗暴,也不需要写正则或者其他逻辑,再比如一个字符串强制转化为Enum,直接用Enum.Parse,可能是因为对异常的开销不是特别了解,这种不好的使用习惯也许被官方发现了,后续给我们补了很多的Try前缀的方法,比如:int.Tr.

2020-05-20 10:42:28 315

转载 Java中String的长度限制(转)

关于String有没有长度限制的问题,我之前单独写过一篇文章分析过,最近我又抽空回顾了一下这个问题,发现又有了一些新的认识。于是准备重新整理下这个内容。这次在之前那篇文章的基础上除了增加了一些验证过程外,还有些错误内容的修正。我这次在分析过程中会尝试对Jdk的编译过程进行debug,并且会参考一些JVM规范等全方面的介绍下这个知识点。因为这个问题涉及到Java的编译原理相关的知识,所以通过视频的方式讲解会更加容易理解一些,视频我上传到了B站:https://www.bilibili.com/vide

2020-05-20 10:25:26 1157 1

转载 UNICODE与ASCII的区别(转)

UNICODE与ASCII的区别原文地址:https://blog.csdn.net/lx697/article/details/5914417最近的项目涉及到了国际化的问题,由于之前并没有接触到UNICODE编码,因此,在项目期间,收集了一些关于ASCII和UNICODE的资料。1.ASCII的特点ASCII 是用来表示英文字符的一种编码规范。每个AS...

2020-01-15 10:31:31 263 2

转载 前端的各种日期操作(转)

前言虽然现在处理日期方面已经有了很成熟的也很好用的库,例如(momentjs和date-fns),但是在实际开发中,我们有时候可能并不需要整个库。所以我就在下面整理了在前端开发时对日期时间的各种操作,也算是比较全的了。其中一部分来自自己,还有一部分来源于我们万能的网友~获取当前时间戳var timestamp = Date.parse(new Date()); //精确到秒va...

2020-01-15 09:44:35 300

转载 原生JS实现document ready以及和window onload的先后顺序(转)

原生JS实现document.ready以及和window.onload的先后顺序jQuery 里面的文档就绪用法在jQuery里面,我们可以看到两种写法:$(function(){}) 和 $(document).ready(function(){}),这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数,(注意,这里面的ready 是 DOM树加载完成,不是onlo...

2019-12-24 10:03:36 609

原创 struts action 与 jsp 页面数据交互实例

一直没用过struts,最近工作涉及到使用struts action 返回前端定义的枚举值问题,话不多说,直接上码。编辑Action类。public class FindXzattrAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServle...

2019-12-16 15:35:37 413

转载 常用的Java工具类库(转)

本文链接:https://blog.csdn.net/zzti_erlie/article/details/103102151Apache CommonsApache Commons有很多子项目,常用的项目如下项目 作用BeanUtils 对Java Bean进行各种操作,复制对象,属性Codec 处理常用的...

2019-11-29 10:04:02 111

原创 关于js端和java端AES加解密

js端AES加密:前置条件:引入aes.min.js文件 function aesMinEncrypt(word){ var _word = CryptoJS.enc.Utf8.parse(word), _key = CryptoJS.enc.Utf8.parse("csdnIsVeryGood_Key"), ...

2019-10-11 13:50:50 668

转载 程序员实用工具(转)

程序员实用工具网站感觉不错,谢谢博主分析。目录1、搜索引擎1.1、秘迹搜索1.2、小白盘2、PPT2.1、优品PPT3、图片操作3.1、图片无限变大4、文件共享4.1、拷贝兔5、应届生招聘5.1、应届生求职网6、程序员面试题库6.1、LeetCode(力扣)7、办公、开发软件7.1、我爱分享网8、高清图片、视频素材网站9...

2019-09-25 09:37:56 240

jd-gui-windows-1.2.0-官方正版.zip

1 就是-jd-jui 1

2019-05-23

struts2 jar包

使用struts2框架所必须的jar

2016-09-19

给JAVA初学者很好用的资料

适合java初学者使用,有知识理论解说 和实例说明

2014-11-22

空空如也

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

TA关注的人

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