- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 Java 策略模式(二)-实战
现在有个功能是根据工单的不同类型做对应的业务逻辑处理。二、定义具体的策略实现类,下面贴出一个详细代码。三、 引入策略类, 根据工单类型选择具体实现。第一个方法是业务逻辑处理。第二个方法是返回工单类型。一个策略模式就搞定了。一、抽象出一个策略类。
2025-04-02 20:41:17
376
原创 线上cpu飙高排查
然后点进去分析发现是这块加载缓存数据值很大,缓存了所有网点的数据, 每次都要转化成集合,集合内的对象也比较复杂,导致耗时很高。log.info("直营规则判断 耗时分析:" + stopWatch.prettyPrint());线上cpu告警, 用cat定位到接口,但是接口内流程很长,不确定是那一步出问题。解决办法就是改缓存, 缓存到具体网点, 这样就解决了。观察 StopWatch 日志可以看到是第二步出了问题。用 StopWatch 分析每一步耗时。
2025-04-01 14:47:55
128
原创 将excel里的某些字段批量导入到sql中
在开发中,我们经常会遇到要将 excel 中大量的数据导入到数据库中,如下我要将地区码值映射导入到数据库中1、首先找出我们导入的sqlINSERT INTO k_finance_district_mapping (id,financial_code,district_code,district_name,financial_district_code,financial_district_name,is_deleted,`type`) VALUES (uuid(),'SXJZL_SH'
2022-03-10 16:46:56
1541
原创 ApplicationContext.publishEvent ——Java异步调用的一种方式
一、先抽象出来一个事件类继承 ApplicationEvent ,定义一个 execute 业务执行方法/** * @author sukang */public abstract class AbstractEvent extends ApplicationEvent { public AbstractEvent(Object source) { super(source); } /** * 事件执行方法 */ protected abstract void execu
2022-01-14 16:56:00
8660
原创 Spring 的 Autowired的一些问题
一、当我们以下面这种方式注入时,会把IDemoService 的所有实现类注入到map中 @Autowired private final Map<String, IDemoService> map = new HashMap<>();package com.ceair.mutms.coupon.service;import org.springframework.stereotype.Service;/** * @Description: * @Auth.
2021-09-03 15:36:57
295
原创 Java 定位CPU100%问题
一、用top命令去定位到占用CPU比较高的进程,查到进程ID二、根据ps -mp pid -o THREAD,tid,time 命令查到该进程下所有线程的占用cup情况三、根据jstack 5118 >sxl.txt 命令生成进程快照文件四、打开文件,就可以根据tid(要进行进制转换)找到具体的线程对应的Java类,定位具体问题...
2021-08-26 20:02:56
229
原创 面试题 四 (蚂蚁保险)
主从同步,lock的重入数据库dubbo底层协议sentinal限流算法桶数据库隔离级别的区别。多线程线程池。使用了线程池的拒绝策略里面哪个方法?索引如何优化???微服务之间的调用?????如何调用?fegin?restful??如何优化?mq强制走索引。for indexdubbo的了解。Volitile能否保证百分百安全。如果百分百安全。automtic类有没有用lock的重入如何实现???底层的协议????限流??的算法桶网关的安全问题,如何实现安全??。协议,安全。.
2021-06-25 17:13:13
360
原创 多线程一定快吗?
不一定看下面代码public static void main(String[] args) throws InterruptedException { test(); test2 (); } public static void test () throws InterruptedException { long timeStart = System.currentTimeMillis(); int count =
2021-04-29 16:08:52
374
原创 面试题三 (得物)
得物面试Dubbo spi机制公平锁非公平锁怎么实现 优缺点Rocketmq nameserver作用zookeeper与eruka优缺点Sycnized是重量级锁吗Cas常见问题 aba问题解决Feigh工作原理redis锁订单防重复提交 用什么做key
2021-03-24 13:38:15
5616
4
原创 Java Aop 环绕通知 监控 controller 层
我们项目中一般需要去监控controller 层, 校验参数、加密、日志打印等等。一、首先是写个切面,定位所有controller 层的方法@Aspect@Component@Slf4jpublic class MutmsAspect { @Value("${spring.application.name}") private String appName; @Autowired private ExeService exeService; @Aroun..
2020-11-26 16:46:49
1540
原创 Java 内存区域
程序计数器:记录当前线程执行字节码的行号信息,多线程切换时能回到原来的执行位置, 线程私有的Java虚拟机栈(线程栈):每一个线程有独立得栈空间,线程在方法的调用过程中会创建栈帧,伴随着栈帧的进栈 - 压栈 - 出栈(先进后出) 方法执行完成后销毁即出栈本地方法栈: 和虚拟机栈功能相似, 只不过虚拟栈是用来帮助虚拟机执行Java代码(字节码文件)的,而本地方法栈是帮助虚拟机执行native方法的堆:存放new出来的对象实力和数组, 线程共享区域方法区:存放常量、静态变量 线程共享区域...
2020-11-13 16:31:09
108
原创 Java 面试题 二
2020年七月份朋友面试总结:叮咚买菜一面:1、参与的项目介绍;2、服务调用:dubbo 的运行原理; dubbo整合第三方功能;dubbo的SPI机制,与jdkSPI机制的区别;3、mybatis是否看过源码,mybatis的原理;4、spring的事务传播机制;5、spring的循环依赖解决方案;6、springboot的自动装配的原理;7、是否了解springCloud, springcloud 接口的调用方式有哪些?8、HashMap的底层原理;9、HashSet的底层原理;
2020-07-29 19:22:02
1137
原创 Java 面试题
2019年8月份面试总结:一、简单介绍自己二、说说最近做过的一个项目(项目中有哪些特色, 用到哪些技术)三、Redis 部分① redis 支持的数据类型 Sting list hash set zset② redis 持久化方式 rdb (特点和执行流程) aof (特点和执行流程)③ redis 如何保证高可用 哨兵(sentinel)④ redis 集群 节点握手,分配槽,根据key进行取余算法确定保存在那台机器上⑤ 分布式锁实现 zset命
2020-07-29 19:20:05
169
原创 zookeeper 的监听通知机制
zookeeper的监听通知机制: 客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端一、先启动一个本地zookeeper, 默认端口 2181二、创建一个节点 /mynode 并设置初始值为 node1三、用Java API 来操作 ① 先引入 pom <dependency> <groupId>org.apache.zookeeper...
2020-07-25 15:48:26
838
原创 JAVA中一些常用的注解
一、@ConditionalOnExpression 根据条件判断是否加载@Service@ConditionalOnExpression("false")public class CouponAndCardsServiceImpl implements CouponAndCardsService { @PostConstruct public void test () { System.out.println("============加载完成============"); }}
2020-06-14 16:23:11
294
原创 双色球号码生成和验证
一、生成号码/** * 生成六位蓝球 + 一位红球 * @author SUNXIULONG * @date 2020年5月28日 */public static List getNumber () { Random rand = new Random(); int nextInt; List<Integer> one = new ArrayList<>(); // 随机生成六位红球 for (int i = 0; i < 6; i++) { ne
2020-06-04 14:10:38
1561
原创 spring 容器加载完成后执行
一、实现ApplicationListener 类重写onApplicationEvent 方法package com.ceair.mutms;import javax.annotation.PostConstruct;import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent;import org.spri...
2020-05-14 10:47:51
558
原创 Java策略模式 (学习总结)
假设一种业务场景:会员有normal VIP SVIP三种等级,每种等级对应不同的价格优惠根据会员信息去计算最终的价格。package com.ceair;public class Member { // 会员名称 public String name; // 会员类型 --- normal VIP SVIP public String type; public Me...
2020-04-09 23:53:42
582
原创 java1.8 流
流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码。 所在包java.util.stream.Stream现在我们有一个食物清单集合 menuList<Dish> menu = A...
2020-03-17 13:49:37
264
原创 Socket编程学习
一、建立Socket服务端,循环监听客户端发送来的请求package com.ceair.mutms;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;public class SocketServer { public static void main(String[]...
2019-12-10 13:55:34
374
原创 Nginx 二 负载均衡
前言:nginx目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。upstream backserver { server 192.168.0.14; server 192.168.0.15;}2、指定权重指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。u...
2019-11-29 14:22:06
205
原创 Nginx 一 反向代理
一、下载Nginx 地址:http://nginx.org/en/download.html 下载的压缩包二、解压nginx 三、启动并访问 1、双击nginx.exe 2、任务管理器出现两个图标 3、访问localhost:80端口(nginx默认端口为80),出现欢迎页面, nginx启动成功...
2019-11-29 09:11:07
136
转载 java编译与反编译
记录学习编译与反编译知识,并且使用cfr反编译工具,深入了解java常用语法糖一.编程语言二.编译 1.编译过程 2.JIT hotspot三.反编译四:如何防止反编译五.反编译实践 1.switch 2.String "+" 3.lambda 4.枚举 5.自动拆装箱 6.try-with-resource...
2019-11-27 09:10:03
359
原创 ThreadPoolExecutor 参数 RejectedExecutionHandler 各种策略分析
最近在学习线程池, 看到不同的饱和策略, 分析如下:ThreadPoolExecutor的构造方法如下:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTim...
2019-08-16 16:56:33
1164
原创 外观模式
外观模式:为子系统中的一组接口提供一个统一的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开,使得客户类只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。例子:业务类A/** * anji-allways.com Inc. * Copy...
2019-08-12 10:53:10
100
原创 模板方法模式
模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式包含如下两个角色:(1) AbstractClass(抽象类):在抽象类中定义了一系列基本操作(PrimitiveOperations),这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法的一个步骤,...
2019-08-12 09:08:45
102
原创 SpringMVC 请求执行过程
SpringMVC执行流程如下:1、用户发起请求到控制器 DispatcherServlet(前端控制器)2、前端控制器去handlerMapper查找Handler对象3、HandlerMapper返回HandlerExecutorChain 执行链(包含两部分内容:Handler ,拦截器集合)4、前端控制器,通过HandlerAdapter 适配器执行 Handler对...
2019-08-02 21:53:41
152
原创 Java 反射
最近了解了一下Java反射用法,下面是一些简单的总结一 、反射首先要获取类的class文件,获取Class文件的三种方法1 、User.getClass()2 、User.class3 、Class.forName("boot.demo.invoke.User")二 、反射中经常用到的方法获取到Class类的对象之后,可以解析出这个class文件中对应的成员,解析出来的所有...
2019-07-31 17:49:24
162
原创 Redis 为什么快
正常情况下,Redis执行命令的速度非常快,官方给出的数字是读写性 能可以达到10万/秒,当然这也取决于机器的性能,但这里先不讨论机器性 能上的差异,只分析一下是什么造就了Redis除此之快的速度,可以大致归 纳为以下四点:1 、Redis的所有数据都是存放在内存中的,表1-1是谷歌公司2009年给出的 各层级硬件执行速度,所以把数据放在内存中是Redis速度快的最主要原因。...
2019-07-29 10:25:21
179
原创 Java 常用的正则表达式
最近做功能遇到很多正则校验, 分享一下package com.souche.md.util;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexUtils { /** * 验证Email * * @param email email地址,格式:zhangsa...
2019-07-12 09:56:18
228
原创 continue break return 区别
今天写代码遇到嵌套循环如果跳出的问题, 自己测试了几个结果如下:测试代码package com.souche.mrp.base;public class Demo { public static void main(String[] args) { for (int i = 0; i < 2; i++ ) { for (int j = 0; j < 5; j+...
2019-06-26 19:34:09
124
原创 Spring 根据条件灵活装配bean
在用spring框架开发中, 我们会遇到一种场景, 如果满足一个条件就装配一个bean,如果不满足就不装配该bean, 这种场景不太多, 但是也会用到做法如下一、之前我们用Java config 装配一个beanpackage com.souche.erpinterface.server.config;import org.springframework.context.anno...
2019-06-13 17:07:05
462
原创 eclipse 上传jar到远程仓库
今天要提供一个dubbo接口给别人,写完后,别人找不到该文件,后来知道要把jar包推送到远程仓库才可以获取一、右击项目 => 选择Run As => 选择Run Configurations 出现下面界面二、右击Maven Build 选择 NewName 项目名称可以随便填,Base directory 项目路径,点击下面 Browse Workspace 选择自己的...
2019-05-22 16:57:07
1112
原创 {"$ref":".."} 重复引用问题
今天写代码时遇到一个重复引用问题public static void main(String[] args) { List<ResultVO> resultVOList = getResultVO(); ResultVO vo = resultVOList.get(0); vo.setItem(resultVOList); System.out.println(com.a...
2019-04-12 17:40:35
1655
原创 Spring 定时任务
最近写一个功能 ,需要定时去调用平台接口一 、xml 里添加定时器配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...
2019-04-02 17:52:21
154
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人