随笔分类 - java
摘要:背景 分布式系统中最大的问题就是数据的不一致性,理解分布式系统中数据不一致性的产生原因和相关的解决方案对理解分布式系统和项目实战非常重要。 学习 参考博客:https://coolshell.cn/articles/10910.html#%E4%B8%80%E8%87%B4%E6%80%A7%E6%
阅读全文
摘要:背景 在jdk1.6以前synchronized的java内置锁不存在 偏向锁->轻量级锁->重量级锁 的锁膨胀机制,锁膨胀机制是1.6之后为了优化java线程同步性能而实现的。而1.6之前都是基于monitor机制的重量级锁。因为java内部对锁实现的封装,就算现在我们也只需要了解重量级锁就可以了
阅读全文
摘要:背景 多线程开发已经是java开发人员必备的技能。平常项目中都是一些简单的应用场景,使用JUC(java.util .concurrent)包里的一些类也就够用了。所以对多线程,并发,锁相关的概念都很零散模糊,不能形成一个完整的知识体系。最近看了一些文章,写篇博客记录对这些知识的整理和添加一些自己的
阅读全文
摘要:背景 之前做项目配数据源信息,一般是把用户名,密码这些都放在一个properties文件中。最近做了个项目是把用户名密码配置在了web容器(tomcat)启动选项里,然后通过${key}注入到properties文件中。 由此产生很多疑问 容器的启动选项是怎么注入到properties文件中的。 容
阅读全文
摘要:背景 需求要读取xml文件第一行识别文件类型,识别完文件类型后删除第一行数据然后对xml文件进行解析。 主要是文件内容操作,用BufferedReader 的readLine()就可以轻松完成读取第一行操作。但是要删除内容就很难,百度后发现,基于原始文件流操作来说,只能从第二行开始读,然后再把读出来
阅读全文
摘要:背景 项目一个更新功能,要求对之前有现在有的更新,之前没有现在有的添加,之前有当前无的删除。其实就是对原始集合和当前集合执行交集,并集,差集分类之后操作。 实现 之前利用双层for循环实现,很不优雅,代码也长。利用java8过滤功能可以很简单的实现。 具体参考: https://www.cnblog
阅读全文
摘要:背景 项目需求要读取xml文件,然后获取最内层节点的全路径。分析一下就是树形结构叶子节点的全路径遍历 解决 在网上发现一位大佬写的很好,直接参考他的就行。 https://www.cnblogs.com/hwtblog/p/10940692.html
阅读全文
摘要:背景 最近公司一个项目要迁移到oracle数据库,发现oracle与mysql操作有很多不同,记录一下 获取系统时间 mysql:new Date() sqlserver:SysDateTime() oracle:sysdate ORA-00911: 无效字符 在mybatis中写oracle sq
阅读全文
摘要:本文主要参考:https://blog.csdn.net/xu622/article/details/84326599 但是个人觉得这个博客里关于问题原因的解释有点问题。 背景 项目测试过程中,测试给我提了一个bug,新增一个BigDecimal类型数据的时候填入 12345678912345678
阅读全文
摘要:建表sql CREATE TABLE `tbl_demo` ( `id` varchar(255) COLLATE utf8_bin NOT NULL, `payer_name` varchar(255) COLLATE utf8_bin DEFAULT NULL, `amount` int(255
阅读全文