- 博客(79)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
原创 面向java程序员的良心网站收藏
包含: Java 基础, Java 部分源码, JVM, Spring, Spring Boot, Spring Cloud, 数据库原理, MySQL, ElasticSearch, MongoDB, Docker, k8s, CI&CD, Linux, DevOps, 分布式, 中间件, 开发工具, Git, IDE, 源码阅读,读书笔记, 开源项目...
2023-02-20 16:54:11
206
原创 stream分组求和
2、stream.collector.groupingby(分组字段,Collectors.reduce(bigdecimal.ZERO, 求和字段,Bigdecimal::add))1、stream.collector.groupingby(分组字段,Collectors.summeraizingxxx)如果是double求和会丢失精度,如果存在精度丢失的情况推荐方法二。
2022-11-01 11:51:55
4883
原创 享元模式在java Integer和String中的应用
因此,在某些情况下,如果对象的生命周期很短,也不会被密集使用,利用享元模式反倒可能会浪费更多的内存。所以,除非经过线上验证,利用享元模式真的可以大大节省内存,否则,就不要过度使用这个模式,为了一点点内存的节省而引入一个复杂的设计模式,得不偿失啊。享元模式的代码实现非常简单,主要是通过工厂模式,在工厂类中,通过一个 Map 或者 List 来缓存已经创建好的享元对象,以达到复用的目的。* 实际上,在一个文本文件中,用到的字体格式不会太多,毕竟不大可能有人把每个文字都设置成不同的格式。重构后的代码如下所示。
2022-09-20 20:43:04
190
原创 事务隔离级别
当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。在谈隔离级别之前,你首先要知道,你隔离得越严实,效率就会越低。因此很多时候,我们都要在二者之间寻找一个平衡点。SQL 标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializa
2022-03-31 11:22:00
287
原创 记一次前后端联调返回数据超时的问题
背景:子系统返回下载链接后上层系统会将下载链接进行转换成特殊下载链接,可是前端始终是接收不到返回值原因,上层系统做处理的时候相当于做请求拦截,将子系统请求结果拦截到之后做参数转换,由于返回结果变动了,导致原来的content-length和现在接到的结果长度不一致,浏览器判断出前后不一致,如果超过长度就会进行截断,如果不及长度就会等待直到超时。。。。3.http协议之Content-Length对于http的请求返回结果要进行内容的长度校验主要有两种方式,二者互斥使用:1.客户端在http头
2022-03-23 17:46:06
2430
原创 100层楼和两个玻璃球思路解析
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层??? 投掷次数分布不均。按最坏情况估计,这种方法就多做了几次。为了使最坏情况的投掷数最小,我们希望无论临界段在哪里,总的投掷数都不变,也就是说投掷数均匀分布。 接下来的解决方案就很容易想出了:既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的...
2021-10-20 14:25:11
2739
原创 K8S 将pod中的文件拷贝到本地命令
kubectl cp edu/edu-manage-testqa-799946574d-pw7j4:/home/apache-tomcat-8.5.39/webapps/ROOT/WEB-INF/classes/excelTemplate/training/studentImportTemplate.xlsx -c edu-manage /Users/jiangwentao/fuck.xlsx
2021-08-20 14:49:17
3537
转载 2021-08-02 分布式锁(redis/mysql)
转载链接https://juejin.cn/post/6844903591153500167单台机器所能承载的量是有限的,用户的量级上万,基本上服务都会做分布式集群部署。很多时候,会遇到对同一资源的方法。这时候就需要锁,如果是单机版的,可以利用java等语言自带的并发同步处理。如果是多台机器部署就得要有个中间代理人来做分布式锁了。常用的分布式锁的实现有三种方式。基于redis实现(利用redis的原子性操作setnx来实现) 基于mysql实现(利用mysql的innodb的行锁来实现,有两种
2021-08-02 16:20:53
340
转载 面试中的老大难-mysql事务和锁,一次性讲清楚!
https://juejin.cn/post/6855129007336521741MVCC解析
2021-07-19 15:15:27
139
转载 如何保证MQ消息不丢失
转载:https://www.jianshu.com/p/8ed16edc73e41.mq原则数据不能多,也不能少,不能多是说消息不能重复消费,这个我们上一节已解决;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业务,那么这种场景是一定不能丢失数据的。2.丢失数据场景丢数据一般分为两种,一种是mq把消息丢了,一种就是消费时将消息丢了。下面从rabbitmq和kafka分别说一下,丢失数据的场景,(1)rabbitmqA:生产者弄丢了数据生产者将数据发送到rabbitmq
2021-04-21 19:02:32
934
原创 SpringBoot+AOP+MybatisPlus实现多数据源动态切换遇到关于sqlSessionFactoryBean的坑
多数据源动态切换需要自定义实例化sqlSessionFactoryBean然后自定义的需要手动设置setMapperLocations、setTypeAliasesPackage不然执行sql时会报org.apache.ibatis.binding.BindingException:* Invalid bound statement (not found)…原因以及解决方案如下:@Bean @ConfigurationProperties(prefix = "mybatis") p
2021-04-20 19:37:09
2693
原创 .gitignore文件用法与配置不生效解决方案
通常我们希望放进仓库的代码保持纯净,即不要包含项目开发工具生成的文件,或者项目编译后的临时文件。但是,当我们使用git status查看工作区状态的时候,总会提示一些文件未被track。于是,我们想让git帮助我们忽略这些文件,不再提醒。庆幸的是,git已经考虑到这点了。我们可以在项目的根目录下建立一个.gitignore的文件,该文件用来配置哪些文件或者目录不被track的。规则很简单,就在该文件中,写下你不想被track的文件,一行一个。空行和#开头的行将被过滤掉。下面给出一个小例子来说明.giti
2021-04-09 17:28:56
246
原创 Locksupport.park() unpark() 总结
用Locksupport锁阻塞线程的总结:a、unpark可以加载park之前, unpark相当于获取一个通信证书(信号量)只能叠加一次,连续多次unpark只有一次的效果b、两个条件存在其中一个park都不会阻塞1、中断标志位存在(Thread.interrupt、wait、join、sleep)2、_counter为1(park之前调用了unpark或者interrupt)...
2021-02-23 17:04:32
229
原创 mybatis-plus 聚合函数使用的时候 自动分页时total 不准或者获取失败解决办法
参考博客:https://blog.youkuaiyun.com/seantdj/article/details/99949281我在写一个条件分页查询时,使用mybatis-plus遇到一个问题,这是我的sql代码这里我使用了ifnull聚合函数结果reviewStatus 作为条件查询,分页查询时报错:在进入paginationInterceptor queryTotal找不到clounm...
2020-02-22 16:03:21
4395
原创 两张表有不同的字段 可以用union吗
可以,但需要吧另一张表没有的字段用null 或者''代替如:select col1,col2,nullas col3 fromt1unionselect col1,col2,col3 from t2
2020-02-04 18:32:17
12249
1
原创 LinkedHashMap应用场景及例子
LinkedHashMap 通常提供的是遍历顺序符合插入顺序,它的实现是通过为条目(键 值对)维护一个双向链表。注意,通过特定构造函数,我们可以创建反映访问顺序的 实例,所谓的 put、get、compute 等,都算作“访问”。这种行为适用于一些特定应用场景,例如,我们构建一个空间占用敏感的资源池,希望可 以自动将最不常被访问的对象释放掉,这就可以利用 LinkedHashMap 提供的机制...
2020-01-04 15:29:22
5886
1
原创 为什么重写equals方法时必须重写hashcode方法
java编程里有关约定:如果两个对象根据equals方法比较是相等的,那么调用这两个对象的任意一个hashcode方法都必须产生相同的结果。因为没有重写hashcode而导致违反了这一条约定。举个栗子。在学校中,是通过学号来判断是不是这个人的。下面代码中情景为学籍录入,学号 123 被指定给学生 Tom,学号 456 被指定给学生 Jerry,学号 123 被失误指定给 Lily。...
2020-01-04 14:41:50
212
原创 java 获取项目路径
String propertyUrl = System.getProperty("user.dir");输出例子:/Users/jiangwentao/Repo/edu-manage
2020-01-02 14:20:37
126
原创 idea导入的项目不显示src等package结构,只有默认配置文件的解决办法
1、2、3、4、然后选择自己想导入的项目,选择自己项目的构建方式(Gradle、Maven)就行了
2019-12-26 15:40:14
4717
转载 lombok @Builder 注解使用
@Builder: 被注解的类加个构造者模式通过@Builder注解,lombok还可以方便的实现建造者模式。参考文章链接https://blog.youkuaiyun.com/weixin_41540822/article/details/86606562作者:济空...
2019-12-25 15:48:25
146
原创 sort 、 uniq 命令
Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。uniq 可检查文本文件中重复出现的行列。语法uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]参数:-c或--count 在每列旁边显示该行重复出现的次...
2019-12-25 11:38:07
294
编写“显示指定教师信息”的匿名块。
2017-10-15
求助jsp的问题 http500
2017-06-19
a标签是这么传递li标签的值的吗
2017-06-19
a标签传值问题,我点击添加名片这个按钮说我键入有问题,请问该怎么解决
2017-06-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人