木子雷
码龄7年
关注
提问 私信
  • 博客:162,889
    社区:137
    问答:4,211
    动态:10
    167,247
    总访问量
  • 48
    原创
  • 734,112
    排名
  • 139
    粉丝

个人简介:正在努力进阶中的渣渣!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-07-31
博客简介:

木子雷的博客

博客描述:
微信搜索【 木子雷 】公众号,Java原创干货;只有你想不到的,没有你找不到的!
查看详细资料
个人成就
  • 获得373次点赞
  • 内容获得98次评论
  • 获得1,046次收藏
  • 代码片获得531次分享
创作历程
  • 12篇
    2021年
  • 33篇
    2020年
  • 16篇
    2019年
成就勋章
TA的专栏
  • 数据结构+算法
    6篇
  • Java基础知识
    6篇
  • MySql数据库
    11篇
  • 系统优化
    3篇
  • 系统设计
    3篇
  • SQL优化
    1篇
  • MongoDB
    1篇
  • JVM 虚拟机
    1篇
  • 并发编程
    4篇
  • Dubbo分布式
    1篇
  • 源码解析
    3篇
  • 实战问题排查
    5篇
  • SpringBoot微服务
    3篇
  • 设计模式
    2篇
  • 工具类知识
    3篇
  • 实用工具
    3篇
  • 加密算法
    1篇
  • Linux
    4篇
  • 前端-图表结构
    1篇
  • 工作中遇到的问题
    5篇
  • 知识巩固
    5篇
  • 面试笔试题
    7篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

怎么把写好的java代码封装成软件?

答:

你好,希望下面的内容对你有帮助!

可以将java可执行的jar包使用exe4j工具将其打成 后缀为 .exe 可执行的文件;

在使用exe4j工具打exe文件时,将依赖的 jre 打进去,(保证jre文件夹和生成的exe文件在同一文件夹下即可),这样打成的exe文件可以在任何无java环境的电脑上直接运行,无需配置JDK环境;

exe4j工具可以去网上找资源进行下载;

exe4j工具的使用步骤如下:

注意:需提前使用 IDEA 将 java程序打成可执行的 jar 包;

1、

img

2、

img

3、

img

4、

img

5、

img

6、

img

7、

img

8、

img

9、

img

10、

img

11、
img

12、

img

13、

img

14、

img

最后就会生成一个 exe 可执行的文件,双击即可运行,并且也可以在无任何JDK环境上直接双击运行;

回答问题 2021.07.16

mapper正常运行没问题,运行JUnit测试时,mapper就报错了

答:

你好,修改 @RunWith注解为 @RunWith(SpringRunner.class) 试试

回答问题 2021.07.15

必须知道的SQL语句不走索引时的排查利器

前言:在索引优化时,经常会看到的一句话:如果索引字段出现隐式字符集转换的话,那么索引将失效,进而转为全表扫描,查询效率将大大降低,要避免出现隐式字符集转换;在此我想问问同学们:大家知道为什么隐式字符集转换会导致索引失效吗?实际场景中有没有遇到过隐式字符集转换导致索引失效的场景,具体排查的过程;本文主线:由上面的两个问题牵引出了本文的主线;简单描述下隐式字符集转换导致索引失效的原因然后模拟实际场景排查隐式字符集转换导致索引失效的过程隐式字符集转换导致索引失效的原.
原创
发布博客 2021.07.06 ·
735 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

java无法取消引用int怎么解决

答:

你的 this.year , this.month , this.day 的数据类型是基本数据类型,将其改为引用类型即可;
 

改为下面的即可,希望对你有帮助!

String year;
String month;
String day;

 

回答问题 2021.06.17

jmeter正则提取求指点

答:

你好希望对你有帮助!
 

正则表达式如下:

"endtime":"([0-9]*)-([0-9]*)-([0-9]*) ([0-9]*):([0-9]*):([0-9]*)"

模版: $1$$2$$3$$4$$5$$6$

 

然后使用JMeter配置正则提取即可:

模板,选择第一个匹配的字段,填$1$,用$$引用起来,如果在正则表达式中有多个匹配结果,则可以是$2$、$3$等等,表示解析到的第几个值给 data 。

如:$1$表示解析到的第1个值,并且也可以使用$1$$2$$3$等将匹配的结果进行拼接,然后将值赋给  应用名称 data 

 

 

回答问题 2021.06.16

DB2分页SQL优化(宝,我优化了分页,每分钟都想你的夜)

前言:最近,项目中的一个 DB2分页查询很慢 ,组长将此分页的优化分派给了我;然后一顿优化(乱操作)后,将DB2分页查询耗时降到了比较满意的情况,[ 开森 ];然后马上将结果报告了组长,组长查看我的演示后,发现分页查询确实快了很多,可以达到让人“接受的程度”,比优化之前的 页面一直转圈等待 相当可以了呀;注:优化后的演示环境与发现分页查询慢时的环境基本一致,包括库中数据量、DB2的配置、服务器的配置等。首先通过查看执行计划发现,SQL语句中的索引都利用上了,那么暂时就不是 索引 的问题了,最后发现.
原创
发布博客 2021.06.16 ·
1386 阅读 ·
1 点赞 ·
0 评论 ·
13 收藏

缓存命中率从正常降到0

答:

1、是不是缓存集中过期了,进而导致缓存命中率降为0

2、如果你的缓存使用的是 redis,可以使用 可视化工具监控下命中率 和 key的过期情况,可视化工具可以参考使用这个:https://github.com/ngbdf/redis-manager

回答问题 2021.06.10

springMVC中controller层中普通sout乱码问题

答:

解决方案:

修改 tomcat 下的 logging.properties这个文件 为 GBK 就好了。

参考:https://blog.csdn.net/weixin_42440768/article/details/98196400

 

#java.util.logging.ConsoleHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.encoding = GBK

回答问题 2021.06.10

SQL单表分组降序取第一条数据

答:

希望对你有帮助:

select b.* from
 (select businessid, max(indexs) as maxindexs from process GROUP BY businessid)a
 left join process b on a.maxindexs = b.indexs and a.businessid = b.businessid

回答问题 2021.06.08

代码中需要多次查询数据库,很耗时,如何优化

答:

1、通过你的描述发现不太清楚具体的流程,但是可以知道你是多次查询表数据,发现表中数据很多时查询非常慢;
 

解决方案:
 

1、进行分表,通过 一致性hash算法 + 分片字段 对查询SQL语句路由到分表后的某张表中,此时分表中的数据是未分表前的其中一部分,数据量偏小,查询会快很多

2、如果现有项目没有使用分表的话,那么从头添加分表会麻烦很多;所以如果你的数据库是MySql的话,可以手动开启查询缓存,然后增大innodb缓冲池大小及缓冲池中的查询缓存空间大小,通过查询缓存功能可以相对提升查询速度,但是这只是权宜之计;

注意:mysql8.0已经废弃了查询缓存功能

回答问题 2021.06.08

单元测试报错:org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader

前言:大家有没有遇到过这种情况,自己从网上拉取了一个开源项目代码,拉取下来后先将代码整体浏览了下,然后想跑下代码中自带的单元测试进行debug下,但是此时就突然报了一个奇怪的异常:org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader然后根据错误信息去网上一顿查询,并且根据好几个博客进行修改,但最终还是无法修复异常;一时让人苦恼,真他喵的烦 [::>_<::.
原创
发布博客 2021.06.04 ·
1639 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

我不知道系统何时进行分表,那我走?

前言:以交友平台用户中心的user表为例,单表数据规模达到千万级别时,你可能会发现使用用户筛选功能查询用户变得非常非常慢,明明查询已经命中了索引,但是,部分查询还是很慢,这时候,我们就需要考虑拆分这张user表了。如果此时,我们才去做分表,可能已经太晚了,为什么呢?我以最典型的应用场景:用户筛选功能,以查询年龄在18到24岁的100位女性用户为例:在单表的情况下,我们的SQL是这么写的:SELECT * FROM user WHERE age >= 18 AND age <= 2.
转载
发布博客 2021.05.26 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

两个程序员为 insert into select 着迷一晚,它到底有什么魔力?

一、前言:今天遇到一个事情,两个程序员对 insert into select 着迷一晚,这究竟是为神魔呢? 下面就简单说说原由;当天,在 MySql数据库 中,程序员A使用 insert into select 对某张表中的一部分数据做备份,然后同时程序员B使用程序对这张表做数据插入操作,最后出现了程序员B的插入操作失败的情况,然后他们就研究了这个问题一晚上,最终找到了导致问题出现的原因。下面就通过简单的模拟场景复现问题,然后并研究出现问题的原因,最后再找到避免问题出现的方法;本文主线:①、场.
原创
发布博客 2021.05.15 ·
417 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

IDEA中Debug调试的高级武功秘籍助你快速追踪BUG

前言:Java 中各种 IDE 的 Debug 功能,都是通过 Java 提供的 Java Platform Debugger Architecture (JPDA) 来实现的。借助 Debug 功能,可以很方便的调试程序,快速的模拟 / 找到程序中的错误。Interllij Idea 的 Debug 功能上说虽然看起来和 Eclipse 差不多,但是在使用体验上,还是要比 Eclipse 好了不少。Debug 中,最常用的莫过于下一步,下一个断点(Breakpoint),查看运行中的值几个操.
转载
发布博客 2021.04.02 ·
869 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

MySql中必须知道的至关重要的三种日志

前言:MySql 中有三种 log 是十分中要的,因为MySql之所以能支持 事务(实现持久化、回滚等)、数据库崩溃恢复、主从复制等,都是基于这三种日志的。至关重要的三种log:binlog 二进制日志redo log 重做日志undo log 回滚日志本文主线:简要介绍三种日志MySql事务处理中三种日志承担的角色简要介绍三种日志:1、binlog 二进制日志:binlog 二进制日志(归档日志),这个日志是由MySql的 server层 进行维护的;不管当前MySq.
原创
发布博客 2021.03.25 ·
246 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

一文带你了解MySql并发事务中的数据库锁、隔离级别、MVCC

前言:最近同事开发时遇到了一个事务阻塞的问题,通过网上查询发现关于MySQL事务、锁这一块的资料都比较絮乱,让人看的云里雾里,所以借着这个机会,刚好也对这一块内容做一个总结梳理,希望能比较全面去写一下MySQL的并发事务处理。本文主线:简述事务的特性与隔离级别聊聊MySql中各种类型的锁然后再聊聊MVCC是个什么东东接着再聊聊数据库锁的触发及升级,以及死锁最后说下出现锁问题时的常见排查命令简述事务的特性与隔离级别:在讲锁之前,必须要先聊聊 事务的特性与隔离级.
转载
发布博客 2021.03.05 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一文让你了解如何快速、优雅的实现导出Excel

前言:春节假期刚刚过去,大家是不是已经开始了搬砖生活啦,嘻嘻 o(∩_∩)o ,可我还在休假中呢 !好啦,咱们言归正传,开始聊聊正文。做过后端管理系统的同学,大概率都会收到过实现 导出Excel 的功能需求,因为这个功能在后台管理系统中是个必备功能。那大家是怎么实现这个功能的呢?使用Apache提供POI组件实现;使用现成的、简便的第三方工具库(避免重复造轮子)Hutool 工具库中的Excel工具类EasyExcel 阿里开源的基于Java的简单、省内存的读写Excel工具库.
原创
发布博客 2021.02.19 ·
678 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

用mysql实现加权平均单价计算

答:

注意:我给的答案也不是最终的答案,因为我值计算了入库数据,但是在出库时没有将其算入,所以有点小问题,但是希望对你有帮助。
 

sql:

select d.* from
(

	select c.transTypeName, c.ainvid, c.aamout, c.aprice, c.aqty, c.abilldate, (sum(c.bamount)+ c.aamout)/(sum(c.bqty)+ c.aqty) as avgValue from
	(
			select a.transTypeName as transTypeName , a.amount as aamout, a.invid as ainvid, 
						 a.price as aprice, a.qty as aqty, a.billdate as abilldate, 
						 b.amount as bamount, b.price as bprice, b.qty as bqty, b.billdate as bbilldate 
	from test1 a, test1 b where a.transTypeName='入库' and b.transTypeName ='入库' and a.invid = b.invid and a.billdate > b.billdate
	) c group by c.aamout

	union all

	select transTypeName,amount,invid,price,qty, min(billdate), price as avgValue  from test1 where transTypeName = '入库' GROUP BY invid

) d
order by d.abilldate

 

用到的 表结构和测试数据:

CREATE TABLE `test1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `transTypeName` varchar(255) DEFAULT NULL,
  `amount` varchar(255) DEFAULT NULL,
  `invid` int(11) DEFAULT NULL,
  `price` decimal(10,0) DEFAULT NULL,
  `qty` int(11) DEFAULT NULL,
  `billdate` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of test1
-- ----------------------------
INSERT INTO `test1` VALUES ('1', '入库', '828', '5', '207', '4', '2019-07-07 00:00:00');
INSERT INTO `test1` VALUES ('2', '入库', '200', '8', '10', '20', '2019-07-08 00:00:00');
INSERT INTO `test1` VALUES ('3', '入库', '2020', '5', '202', '10', '2019-07-09 00:00:00');
INSERT INTO `test1` VALUES ('4', '出库', '660', '5', '220', '3', '2019-07-10 00:00:00');
INSERT INTO `test1` VALUES ('5', '入库', '400', '5', '200', '2', '2019-07-11 00:00:00');
INSERT INTO `test1` VALUES ('6', '出库', '100', '5', '20', '5', '2019-07-12 00:00:00');
INSERT INTO `test1` VALUES ('7', '入库', '600', '5', '10', '60', '2019-07-20 00:00:00');

 

回答问题 2021.01.29

这段sql代表什么意思呢?

答:

由于只给出了SQL部分,所以猜测可能是下面这两个原因:

1、可能是用于检验 triage 表中是否存在 create_id 字段,当表中有字段时,执行成功,否则失败。

2、另一种可能是项目中使用的是SQL使用 #{ } 方式获取值,但是没有获取到值,所以就可能会出现上面的那种情况;但是如果没有值的也应该大概是 “ create_id =  ” 这样的。 

 

回答问题 2021.01.23

SQLserver计算平均值问题

答:

对了还有 date_format()  时间格式函数也换成 SQLserver 的;

回答问题 2021.01.22
加载更多