- 博客(98)
- 资源 (5)
- 收藏
- 关注
原创 自如电费均摊问题
这里假设一个月30天, 3室,先只住了A居住3天满,B在第27天来,假设1-26日电费费用为900RMB,27-30,3日电费费用为100RMB,如果根据实际情况的算法来,B用户只需要交付他来的那3天里100元的一半,也就是50元。按照该算法来,如果2个人同时住满30天,那么则是 (900+100)/ (30 + 30) * 30 = 1000 / 2;3月份搬了次家,嫌麻烦租了自如,第一个月的电费账单出来了,由于我是中途搬进去的,于是乎就好奇他会如何计算均摊,这个月电费账单出来了,算了下发现了点东西。
2024-04-19 12:02:16 726
原创 Java 调用 Groovy 脚本的简单案例
Groovy和Java都是使用 JVM 虚拟机进行解释执行的。工作中会遇到一些场景,需要对特殊的业务进行解耦。那段业务可能会经常变动,如果直接在Java代码里写业务的话就会涉及频繁的发包服务重启这类情况,那么如果我门把那段业务变成脚本的形式,单独做一个界面把它做成类似可以在线配置更改的情况,那么业务变动后直接在线改代码,而且立刻生效,这样是不是就特别方便。例如定时任务里的xxx-job。
2024-03-14 17:01:07 553 1
原创 JAVA使用POI向doc加入图片
刚来一个需求需要导出一个word文档,文档内是系统某个界面的各种数据图表,以图片的方式插入后导出。一番查阅资料于是乎着手开始编写简化demo,有关参考poi的文档查阅网上大多数是XXX模板占位然后插入图片,那种方式需要内置模板且图片需要转base64,并不是我想要的,我的需求很简单只要无脑插入导出即可。先上demo效果图。注意:代码中宽高的单位一定要使用Units.toEMU(XXX)处理一下,否则就会出现插进去了但是你看不到效果的情况。
2023-12-08 18:49:03 939
原创 MySQL字符集大小写不敏感导致的主键冲突问题记录
数据入库的时候报了个主键冲突的error,很是纳闷于是乎开始排查摸索起来,发现是字符集导致字段值大小写不敏感导致的问题。记录一下加深映像又或者如navicat创建时显示指定。平时我并没有太在意,只知道MySQL的utf8是个假的utf8 ,mysql中的utf8最多只能支持3bytes长度的字符编码,对于一些需要占据4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行。对于排序规则我一般都用脑子里只知道它对大小写不敏感,此次遇到的问题就和排序规则有关。
2023-10-09 16:51:37 667
原创 fastDFS 6.0.9 单机安装案例
发现fastdfs安装部署这块内容网上还是比较多的但是版本啥的都已经比较老旧了,于是乎搜了下官方公众号最近的一次推荐部署版本 V6.09,就准备开干了。网上搜了下已经有大哥部署过该版本了centos7上单机安装fastdfs6.0.9,我就结合官网的install和大哥的手册跟着来了一遍,全程没卡壳很顺利。
2023-07-19 11:32:46 747
原创 Nginx 专题-热部署平滑升级
热部署(Hot Deployment)是指在应用程序运行过程中,无需停止应用程序,直接将修改后的代码部署到应用程序中,并立即生效的一种部署方式。
2023-04-02 17:47:27 419
原创 Mybatis-Plus3.5.1版本 代码生成器使用
代码生成器,解放双手。mybatis-plus的代码生成器功能强大,使用方便,这里记录一下案例。
2023-03-06 23:28:14 406
原创 并发编程学习案例-ReentrantReadWriteLock非公平的情况下读锁插队和写锁插队场景复现
Java是的实现类,可以分出2把锁,读锁和写锁。我们知道读读之间可以共享,读写、写写是互斥的,这样并发度比这种互斥锁更高。在公平的场景下,多个线程会排队按顺进行加锁和释放锁;在非公平的场景下如果排队中的线程在唤醒期间还未唤醒时,此时如果有其它写线程加入则无需进入对列等待可插队获取到锁;如果在唤醒期间还未唤醒时,排队的队列里头节点是读线程,此时如果有其它读线程加入则无需进入对列等待可插队获取到读锁;。这里复现读锁在特定的场景下插队的场景复现。
2023-02-03 23:47:32 501
原创 并发编程学习案例-单线程和多线程1加到1000W耗时对比
从1开始每次加1 加1000万次,你会怎么使用多线程的方式来加快计算速度,并且保证结果一致?
2023-02-02 11:43:38 356
原创 并发编程学习案例-具有暂停功能的线程池
使用钩子函数扩展线程池,使其具有暂停线程的功能自定义线程池类,继承自ThreadPoolExecutor对其进行扩展(添加暂停、恢复的函数),同时重写beforeExecute()函数。
2023-01-11 11:56:35 232
原创 并发编程学习案例-停止线程池
对停止线程池的一些函数示例,体验关闭期间池子对任务的不同处理方式,主要对一下方法进行熟悉演练shutdownisShutdownisTerminal。
2023-01-10 23:29:08 101
原创 并发编程学习案例-模拟Executors.newFixedThreadPool内存溢出
JUC里的线程池,使用可以创建线程数的线程池,细看其源码,其实它调用的是核心线程数和最大线程数相等的线程池,并且使用的工作队列类型是 LinkedBlockingQueue(无边界),也就是说负载及其大的情况下,队列中的任务可以无限堆积,那么就很容易会造成OOM。下面模拟一下这种情况造成的OOM。
2023-01-10 18:29:36 826
原创 并发编程学习案例-模拟抢红包
再来系统动手学习一下Java并发编程。的发令枪使用模式;红包均分,最后一个分不完的解决方法抢红包的需求,每个红包均分,最后一个除外1. 设置红包总额2. 设置红包的个数3. 模拟抢红包的人数 (细节:涉及余额分配 10元3个人抢,得把钱分完)4. 抢红包,同一时间多个人可以同时开始 (细节:要保证同时开始)
2023-01-09 23:05:58 861
原创 elasticsearch实战
最近项目里需要对某块功能的查询支持全文检索功能,于是乎使用到了专门的搜索引擎 elasticsearch来实现。通过2周左右的官网资料查询,成功在项目中引入并使用,这里记录部分使用内容。es官网的刷新速度很慢,我是通过把官网的页面下载到本地后,需要时再挨个打开浏览。学习es 主要还是先学习其基础的语法,在kibanna里先熟悉命令行的方式,以及操作的返回数据格式,再去熟悉Java 客户端,再容易不过了。此次字段类型主要用到了es的 text类型,keyword类型,number类型,data类型;查询
2022-12-27 16:04:02 1867
原创 解决maven 父工程依赖传递导致的 java.lang.NoClassDefFoundError: org/elasticsearch/xcontent/ToXContentObject
在学习elasticsearch,在使用elasticsearch Java 客户端时,出现了写问题,主要就是报各种的 `NoClassDefFoundError`如:`java.lang.NoClassDefFoundError: org/elasticsearch/xcontent/ToXContentObject`,出现这种 NoClassDefFoundError 的问题基本上就是maven 依赖错误或者版本不对,于是顺着这个思路排查,摸到了问题所在。
2022-12-06 11:50:10 5487
原创 IDEA设置和相关快捷键记录汇总
Java 开发 现在基本都是使用 IDEA 作为开发工具,IDEA 有很多设置和常用的快捷键,熟悉之后能更好的提高开发效率,这里总结了下从慕课网的内容,摘录做成笔记,方便查阅。
2022-11-26 17:57:24 943 1
原创 excel导入导出demo笔记
excel 导入导出的算是项目里很常见的一个功能,以前都是使用POI来,一直知道阿里有个这次尝试去了解了下,感觉确实很方便,上手容易。这里记录下方便后续来捞代码。
2022-11-24 11:28:49 466
原创 FastJson 枚举自定义序列化成枚举属性值
类中如果有使用枚举,fastjson序列化不做处理时就会被序列化成 枚举的名字,今天刚好遇到,记录一下使用自定义序列化,反序列化的方式使得 枚举序列化时使用枚举里的属性,而不是枚举的名称。pom
2022-11-22 20:05:47 2839
原创 IntelliJ IDEA 多行TODO注释
IntelliJ IDEA 2018 以后 支持多行TODO注释,现在第一行和所有后续的TODO注释行在编辑器中突出显示,并在TODO工具窗口中列出。只需从多行TODO注释的第二行开始添加缩进,IDE就会将其与普通注释区分开来。
2022-11-19 00:25:22 463
原创 JSON序列化与反序列化做深拷贝对象
开发中经常会遇到值传递和地址传递的情况,有时候想传入一个对象去某个方法中进行处理,地址传递在该方法内部会做一些处理会导致对象内存中的内容有所变化,这样就会出现不是自己想要的情况,常做的方式就是拷贝一个当前对象的副本传入进去处理,这样就不会影响原对象,这就涉及到深拷贝和浅拷贝。这里分享通过JSON序列化和反序列化的方式得到一个深拷贝的对象。
2022-11-17 10:10:30 550
原创 Spring boot 整合 Swagger使用swagger-bootstrap-ui
记录一下 Spring boot 整合增强版的 swagger-ui, 有了这个,基本可以省去postman调用了,极其方便。
2022-11-15 20:01:04 1099
原创 Spring boot 读取YAML 到配置类
一直对yaml 语法不是很熟悉,恰巧这次抽空熟练一下,结合配置类做个映射。含日期的处理 date,dateTime, localDate, localDateTime。需要注意日期格式的映射,还有就是Key 大小写的问题。
2022-11-15 15:16:30 302
原创 MySQL text 能存多少个字符
今天测试给提了个bug, 排查原因是插入数据时字段长度不够导致。我使用的是MySQL8的数据库,在给某个表新增一条数据,其中一个字段submit_info使用的是text的类型预设用来存储大的json字符串。之前对text到底能存多长的字符串没概念,恰好这次预到问题决定调查一下。这里记录一下。
2022-10-27 17:57:53 8259
原创 《透视 HTTP 协议学习》摘录
1989 年,任职于欧洲核子研究中心(CERN)的**蒂姆·伯纳斯 - 李()**发表了一篇论文,提出了在互联网上构建超链接文档系统的构想。这篇论文中他确立了三项关键技术。
2022-10-25 23:30:37 911
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人