- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 实用jar启动参数配置
在某些环境中,不完全支持IPv6或存在IPv6兼容问题,可以避免因IPv6相关问题而导致的连接失败或性能下降等问题。G1收集器:会尝试调整区域划分和GC策略去尽可能接近设定的目标暂停时间。Parallel Scavenge(PS)收集器:做关键参数控制暂停。保留日志文件数,多出来会覆盖最旧的文件,保持固定数量的日志文件。根据物理机总内存的百分比设置jvm堆大小。如果有容器,则受限于容器的大小。该参数并非硬性约束,指导目标。初始化堆75%(物理机)GC时的最大目标暂停时间。单个GC日志最大为1M。
2024-10-03 09:41:51
340
原创 过滤器filter和拦截器Interceptor的区别
过滤器(Filter):在Java Servlet API中,过滤器是一个更底层的概念,它是在网络请求的生命周期中的特定点进行处理的,比如在请求到达业务逻辑之前(即Pre-Request Filter)、请求完成(Post-Response Filter)。拦截器(Interceptor):在Spring MVC等框架中,拦截器是一种预处理器,通常用于对每个HTTP请求在其进入控制器之前或之后添加额外的行为。总结来说,拦截器更偏向于高层逻辑的定制,而过滤器则适用于更基础的网络请求处理过程。
2024-09-25 16:07:05
410
原创 系统调优实战--查询优化
3.分析:单用户下tps下降明显,说明是数据库问题,先执行awrrpt.sql查看是否有满sql。再通过addmrpt.sql确定诊断结果,最后再通过awrsqrpt.sql得到慢sql的执行计划。根据执行计划得知最耗时的主表中使用了全表扫描,同时与相关表的关联字段没有做成索引。2.步骤:单用户,主表数据在150w+,用jmeter测试,tps到5。1.背景:某查询功能随着用户人数的增加,数据量不断上升,做性能测试。4.解决:将表中对应的查询条件做成索引,tps升到100。
2024-09-24 09:34:48
261
原创 SQL优化(代码层面)
(2)如果使用EXISTS,那么只要查到一行数据满足条件就会终止查询,不用像使用IN时一样扫描全表。连接表至少能用到一张表的id列上的索引。(1)如果连接列(id)上建立索引,那么查询B表时不用查实际的表,只需要查索引就可以了。存在联合索引col1,col2,col3(√标识使用到索引,×标识没有用到索引)最左匹配原则:联合索引的第一列必须写在查询条件的开头,并且索引中列的顺序不能颠倒。Oracle数据库中,如果使用建有索引的列,即使使用IN也会先扫描索引。在索引列上做+,-,*,/运算会导致索引失效。
2024-09-24 09:31:06
327
原创 HashMap源码
HashMap是一种基于哈希表的 Map 接口实现,它存储键值对(key-value pairs),并允许使用键来快速检索值。在 Java 中,HashMap是java.util包的一部分,它不是同步的,这意味着它不是线程安全的。如果你需要线程安全的版本,可以使用。以下是HashMapHashMapnullHashMapHashMapHashMapHashMapHashMapHashMap以下是 Java 中HashMap在这个示例中,我们创建了一个HashMap实例,并添加了一些键值对。
2024-09-21 11:31:42
449
原创 系统性能调优
jps -l #显示主类全名jps -m #输出传给main函数的参数jps -v #输出进程启动时,jvm的参数jstack -l #除堆栈外,显示关于锁的附加信息jstack -F #强制输出线程堆栈jstack -gcutil #输出gc信息jmap -dump #生成java堆转储快照 -dump:format=bfile= < filename > jmap -heap #显示java堆详细信息jps -l #显示主类全名jps -m #输出传给main函数的参数。
2024-09-01 20:03:03
598
原创 Nginx运维规范及安全配置
要求使用应用用户启动Nginx,将nginx.conf主配置文件第一行“#user nobody;在上面的例子中,自定义了一个名为"main"的日志格式,包含了请求的详细信息。不仅将TCP/UDP协议的请求进行转发,同时HTTP协议也会转发,并且不能进行URL过滤,存在安全隐患。删除默认html文件,例如nginx/html目录(默认文件50x.html,index.html)没有对url请求进行过滤,将所有请求转发到后台服务,会导致攻击类的URL被转发到后台,存在安全隐患。Nginx启动用户配置规范。
2024-08-31 15:20:16
1177
1
原创 GC日志查看及分析实例
File - Open Heap Dump[Overview] - Leak Suspects (有问题的对象) - See stacktrace(看堆栈信息)1.Weblogic的GC频繁报警分析:STATUS=Warning Eden=100 FGC=40 Old=99 YGC=0。File - Open Heap Dump[Overview] - Dominator Tree(对象里面的详细内容)特性:离线分析 需要得到JDK的内存镜像(heapdump)③ 验证服务是否正常(恢复正常)
2024-08-31 11:39:11
846
原创 Spring核心概念复习AOP
CGLIB 代理:当目标对象没有实现接口时,Spring AOP 会使用 CGLIB(Code Generation Library)来动态生成目标类的子类,并重写方法以实现代理。在代理模式中,一个对象(称为代理)被用来控制对另一个对象(称为目标对象)的访问。通知是切面中的代码,它定义了在切点定义的方法执行时需要执行的额外逻辑。增强代理类中的被增强方法。当代理对象的方法被调用时,会根据配置的切点和通知来执行相应的逻辑。容器为这些切面创建代理对象,代理对象会拦截对目标对象方法的调用。
2024-08-28 11:01:18
684
原创 常用的JUC(Java Util Concurrent)工具类
包下的原子类为Java并发编程提供了一组高效的、线程安全的原子操作类,它们主要用于在高并发环境下确保对共享变量的操作具有原子性,即在同一时刻只有一个线程能够修改这些变量的值,而不会出现因多线程并发导致的中间状态或数据竞争问题。当两个线程都到达交换点时,它们各自携带的数据会被互换,确保线程间的通信和协作。,等待其他线程也到达屏障。当所有线程都到达后,屏障动作执行,然后屏障重置,线程们继续进行下一次迭代,如此反复三次。的特性,它们各自操作的是独立的本地副本,因此输出结果互不影响,展示了线程间数据的隔离。
2024-04-14 22:35:32
2190
原创 微信小程序支付报错appid与mchid不匹配
微信商户平台地址:https://pay.weixin.qq.com/index.php。没有再微信商户平台配置 关联appid。
2024-03-31 18:55:06
364
原创 @RequestParam和@RequestBody区别
举个例子,在SpringMVC配置了HttpMessageConverters处理栈中,指定json转化的格式,如Date转成‘yyyy-MM-dd’,则参数接收对象包含的字段如果是Date类型,就只能让客户端传递年月日的格式,不能传时分秒。•POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用。因为不同的接口,它的参数可能对时间参数有不同的格式要求,所以这样做会让客户端调用同事对参数的格式有点困惑,所以说扩展性不高。
2024-03-11 21:11:32
453
原创 ‘userServiceImpl‘: Unsatisfied dependency expressed through field ‘baseMapper‘; nested exception is
springboot项目启动报错
2023-02-08 22:02:07
1395
原创 CentOS7安装docker时报container-selinux >= 2:2.74错误
CentOS7安装docker时报container-selinux >= 2:2.74错误
2022-06-25 19:53:53
1790
原创 docker操作
卸载dockeryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux
2021-06-23 17:12:30
103
原创 解决pdf名称包含特殊字符和中文时无法打开问题--使用工具objectpdf
先是通过url将pdf文件名传到openpdf页面:encodeURI(encodeURIComponent(url))//这个地方必须转义俩次//此处encodeURIComponent可以将url中的特殊字符一并转义为url可识别的%码到了openpdf页面,对传过来的url进行一次反转义:decodeURIComponent(fileUrl);最后通过objectpdf进行预览:PDFObject.embed(fileUrl);以上方法都无法搞定,此时需要考虑tomcat编码是否统
2021-05-24 09:19:28
2506
原创 Spring处理循环依赖思路?
大体思路:Spring中解决循环依赖使用了三个map,singletonObjects(一级缓存单例池)\earlySingletonObjects(三级缓存)\singletonFactories(二级缓存)class A{B b;}class B{A a;}A实例化—>属性注入B—> B实例化—>属性注入A(从singletonFactories中拿到半成品A)—>B初始化完成,下次循环将B注入A—>循环依赖完成class A{B b;}class B{A
2021-04-21 11:07:09
100
1
原创 @Value失效
@Value失效的四种原因:1.不能作用于静态变量;2.不能作用于常量;3.不能在非注册的类中使用;4.使用这个类时,只能通过依赖注入的方式,用new的方式是不会自动注入这些配置的。
2021-03-24 16:10:59
7696
原创 委派模式
委派模式委派模式(Delegate Pattern)不属于GoF23中设计模式。委派模式的基本作用就是负责任务的调用个分配,和代理模式相似但是代理模式注重过程而委派模式注重的是结果委派模式在spring中应用的非常多,比如我们熟悉的DispatcherServlet老板给项目经理下达任务,项目经理会根据实际情况把任务分配给每一个员工,等员工完成任务,再由项目经理向老板汇报这里的项目经理就是老板委派帮自己干活的人具体实现public interface IEmployee { public
2021-01-28 10:49:44
172
原创 模板模式
模板模式模板模式又叫做模板方法模式(Template Method Pattern),是指定义一个算法骨架,并允许子类为一个或者多个步骤提供实现。模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。如何把大象放进冰箱?打开冰箱门–>把大象塞进冰箱–>关闭冰箱门如何把长颈鹿放进冰箱?打开冰箱门–>把大象拿出来–>把长颈鹿塞进去–>关闭冰箱门上面的例子打开冰箱和关闭冰箱是固定的,可以提到抽象类中实现,抽象类的子类只需要实现中间不同
2021-01-27 11:32:46
205
2
原创 适配器模式
适配器模式适配器模式(Adapter Pattern)是指将一个类的接口转换成用户期望的另一个接口,使原本接口不兼容的类可以一起工作,属于结构型设计模式结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构可分为两种:类结构型模式:关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系对象结构型模式:关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。更符合“合成复用
2021-01-26 17:08:58
127
原创 原型模式
原型模式原型模式:(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象适用场景类初始化消耗资源较多使用new生成一个对象需要非常繁琐的过程(数据准备,访问权限等)构造函数比较复杂在循环体中产生大量对象具体实现浅克隆定义:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。浅克隆只是复制一个当前对象的引用出来,相当于在栈中开辟一块空间下面例子的运行结果:com.mashib
2021-01-25 21:13:45
94
原创 代理模式
代理模式介绍代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式的主要优点有:代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性其主要缺点是:代理模式会造成系统设计中类的数量增加在客户端和目标对象之间增加一个代理对象,会造成请求处理速
2021-01-21 10:56:20
179
1
原创 观察者模式
观察者模式模式的定义与特点观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。观察者模式是一种对象行为型模式,其主要优点如下。降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。目标与观察者之间建立了一套触发机制。它的主要缺点如下。目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。当观察者
2021-01-20 22:16:12
108
原创 装饰者模式
装饰者装饰模式的定义与特点装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。装饰(Decorator)模式的主要优点有:装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵守开闭原则其主要缺点是:装饰模式会增加许多子类,过度使用会增加程序得复杂性。装饰模式的应用场景前面讲解了
2021-01-19 10:23:14
137
原创 工厂模式
工厂模式工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple F
2021-01-18 13:36:23
232
原创 策略模式
策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍**意图:**定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。**主要解决:**在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。**何时使用:**一个系统有许多许多类,而区分它们的只
2021-01-15 11:16:14
131
原创 单例模式
饿汉式优点:逻辑简单,线程安全缺点:用不用这个对象,在类加载到jvm时都会创建出来。不用的话就是无故占内存public class Main1 { //类加载时创建对象 private static final Main1 INSTANCE=new Main1(); //私有化构造方法 private Main1() {} public static Main1 getInstance() { return INSTANCE; } public static void
2021-01-15 11:15:42
136
2
原创 架构设计原则
开闭原则开闭原则(Open-Closed Principle, OCP)是指一个软件实体(如类,模块和函数)应该对扩展开放,对修改关闭。优势:开闭原则强调用抽象构建框架,用实现扩展细节,可以提高软件系统的可复用性及可维护性。//我的课程(抽象出来)public interface ICourse { Integer getId(); String getName(); Double getPrice();}//java课程实现课程接口,新增python课程,我只需要
2021-01-15 11:15:06
197
1
PPT模版,可旋转式高级模版
2024-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人