
Java
文章平均质量分 58
sxlzs_
IT 大白
展开
-
将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 · 1543 阅读 · 0 评论 -
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 · 8667 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 1541 阅读 · 0 评论 -
Java 内存区域
程序计数器:记录当前线程执行字节码的行号信息,多线程切换时能回到原来的执行位置, 线程私有的Java虚拟机栈(线程栈):每一个线程有独立得栈空间,线程在方法的调用过程中会创建栈帧,伴随着栈帧的进栈 - 压栈 - 出栈(先进后出) 方法执行完成后销毁即出栈本地方法栈: 和虚拟机栈功能相似, 只不过虚拟栈是用来帮助虚拟机执行Java代码(字节码文件)的,而本地方法栈是帮助虚拟机执行native方法的堆:存放new出来的对象实力和数组, 线程共享区域方法区:存放常量、静态变量 线程共享区域...原创 2020-11-13 16:31:09 · 108 阅读 · 0 评论 -
zookeeper 的监听通知机制
zookeeper的监听通知机制: 客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端一、先启动一个本地zookeeper, 默认端口 2181二、创建一个节点 /mynode 并设置初始值为 node1三、用Java API 来操作 ① 先引入 pom <dependency> <groupId>org.apache.zookeeper...原创 2020-07-25 15:48:26 · 840 阅读 · 0 评论 -
JAVA中一些常用的注解
一、@ConditionalOnExpression 根据条件判断是否加载@Service@ConditionalOnExpression("false")public class CouponAndCardsServiceImpl implements CouponAndCardsService { @PostConstruct public void test () { System.out.println("============加载完成============"); }}原创 2020-06-14 16:23:11 · 294 阅读 · 0 评论 -
双色球号码生成和验证
一、生成号码/** * 生成六位蓝球 + 一位红球 * @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 阅读 · 0 评论 -
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 · 559 阅读 · 0 评论 -
Git 常用命令
一、cherry-pick (把某一分支的某一次提交移植到另外一个f)f原创 2020-04-15 11:09:46 · 412 阅读 · 0 评论 -
java1.8 流
流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码。 所在包java.util.stream.Stream现在我们有一个食物清单集合 menuList<Dish> menu = A...原创 2020-03-17 13:49:37 · 264 阅读 · 0 评论 -
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 阅读 · 0 评论 -
ThreadPoolExecutor 参数 RejectedExecutionHandler 各种策略分析
最近在学习线程池, 看到不同的饱和策略, 分析如下:ThreadPoolExecutor的构造方法如下:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTim...原创 2019-08-16 16:56:33 · 1164 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Redis 为什么快
正常情况下,Redis执行命令的速度非常快,官方给出的数字是读写性 能可以达到10万/秒,当然这也取决于机器的性能,但这里先不讨论机器性 能上的差异,只分析一下是什么造就了Redis除此之快的速度,可以大致归 纳为以下四点:1 、Redis的所有数据都是存放在内存中的,表1-1是谷歌公司2009年给出的 各层级硬件执行速度,所以把数据放在内存中是Redis速度快的最主要原因。...原创 2019-07-29 10:25:21 · 180 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
eclipse 上传jar到远程仓库
今天要提供一个dubbo接口给别人,写完后,别人找不到该文件,后来知道要把jar包推送到远程仓库才可以获取一、右击项目 => 选择Run As => 选择Run Configurations 出现下面界面二、右击Maven Build 选择 NewName 项目名称可以随便填,Base directory 项目路径,点击下面 Browse Workspace 选择自己的...原创 2019-05-22 16:57:07 · 1113 阅读 · 0 评论 -
{"$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 阅读 · 0 评论 -
用RestTemplate调用百度文字识别接口
1. 将RestTemplate加载到bean工厂@Configurationpublic class RestTemplateConfig { private Logger logger = LogManager.getLogger(getClass()); @Bean public RestTemplate restTemplate(ClientHttpReq...原创 2017-11-29 13:18:57 · 2701 阅读 · 0 评论 -
HashMap的负载因子
下面是HashMap的一个构造函数,两个参数initialCapacity,loadFactor这关系HashMap的迭代性能。 /** * Constructs an empty <tt>HashMap</tt> with the specified initial * capacity and load factor. * ...转载 2017-12-01 17:19:27 · 3073 阅读 · 0 评论 -
Java 生成特定区间的随机数
生成指定范围内的随机数,这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于:如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100;或者是:如何随机生成随机的3位整数?等等……以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个...转载 2018-01-03 10:23:14 · 3467 阅读 · 0 评论 -
pdf 中添加一个图片章
package com.zkingcai.scf;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.Image;import com.itextpdf....原创 2018-04-12 13:16:16 · 2882 阅读 · 2 评论 -
生成图片验证码
生成图片验证码的工具类package com.zkingcai.scf.core.utils;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOut...原创 2018-04-25 11:11:46 · 284 阅读 · 1 评论 -
简单实现有返回值的多线程
package com.zkingcai.pay;import java.util.Date;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.co...原创 2018-04-28 11:09:16 · 520 阅读 · 0 评论 -
哈希算法的简单理解
哈希算法存取之所以快,是因为其 直接通过关键字key得到要存取的记录内存存储位置试想这样的场景,你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是你到学校学生处找人,学生处的工作人员可能会拿出学生名单,一个一个的查找,最终告诉你,学校没这个人,并说张三丰几百年前就已经在武当山作古了。可如果你找对了人,比如在操场上找那些爱运动的同学,人家会告诉你,"哦,你找张三丰呀,有有有,我带你去。于是他把...转载 2018-05-07 16:39:32 · 1225 阅读 · 0 评论 -
ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
BigDecimal a = new BigDecimal(10);BigDecimal b = new BigDecimal(3);System.out.println(a.divide(b)); 在用 BigDecimal 做以上的除法运算时出现异常翻译是“非终结小数展开;没有精确可表示的十进制结果”其实 divide 方法还有很多重载的方法,比如下面一个divide (...原创 2018-07-30 16:49:56 · 653 阅读 · 0 评论 -
MongoDB 安装
1、下载地址 https://www.mongodb.com/download-center#community2 开始安装3、选择同意4、上面是自动安装,下面是自定义安装,这里选择下面5、选择安装的目录开始安装...原创 2018-08-10 14:00:07 · 142 阅读 · 0 评论 -
什么是高可用
一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑因素之一,它通常指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8....转载 2018-08-21 14:21:26 · 9229 阅读 · 2 评论 -
Linux常用命令大全(非常全!!!)
最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件...转载 2018-09-28 11:18:23 · 253 阅读 · 0 评论 -
eclipse 查看源码的插件安装
在开发中经常遇到想看下源码,点进去却是没有资源的尴尬,只要安装一个插件就可以解决这个问题1、Eclipse- - > 左上角Help - - > Install NewSoftware2、点击Add,地址:http://jd.benow.ca/jd-eclipse/update3、勾选,点击next4、选择同意,点击finish重启eclip...原创 2019-02-15 11:10:20 · 4476 阅读 · 0 评论 -
解析 xml
一 、DOM方式1 、xml文件<?xml version="1.0" encoding="UTF-8"?><players> <player id="1"> <name>kobe</name> <height>2.01m</height&a原创 2019-01-30 12:08:55 · 145 阅读 · 0 评论 -
Lambda 表达式
1.概念:Java 8中引入的新工具-Lambda表达式,它可以让你很简洁地表示一个行为或传递代码。现在你可以把Lambda表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。2.语法规则 Lambda表达式有三个部分,如图3-1所示。 参数列表 —— 接收传递的参数。 ...原创 2017-09-01 13:15:56 · 909 阅读 · 0 评论