- 博客(45)
- 收藏
- 关注
原创 反射的作用
例如,依据注解或配置信息动态生成并注入对象的需求场景,生成动态代理的需求场景。只要不是写死在程序里的对象的创建和调用,都可以用反射来实现。
2024-12-03 19:48:36
237
原创 CAS怎么保证操作原子性
在针对多处理器操作而设计的处理器中提供了一些特殊指令,用于管理对共享数据的并发访问。这些指令足以实现各种互斥体,而这些互斥体又可以实现一些更复杂的并发现象。现在几乎所有现代处理器都包含某种形式的原子读-改-写指令,例如CAS。OS和JVM使用这些质量来实现锁和并发的数据结构。解决并发问题的关键是保证读和写之间没有其他线程插一杠子执行写操作,即不会发生读(A)读(B)写(A)写(B)。怎么保证,写之前比较现在的值还是不是之前读到的值,是才写,即CAS。那又怎么保证CAS的原子性,硬件保证。
2024-11-16 12:22:36
146
原创 集群策略选择vs生产需求点(负载/可用性、灾备/安全性)
同步(主备,一定带同步功能。主从,一定带同步功能,典型:mysql-主从。主主,不一定带同步功能,带同步的典型:elasticsearch,不带同步的典型:rocketmq)。分片(同步的进阶版,典型elasticsearch、mysql-cluster)。
2024-11-12 21:05:14
347
原创 redis集群模式
故障时可自动更换主节点,分片克服单点内存容量和性能限制,且还可动态扩展节点。故障时可自动更换主节点,但受限于单点内存容量和性能。故障时无法自动更换主节点。
2024-11-09 11:04:51
30
原创 Android Studio安装完成后,启动时报Failed to create JVM:error code -1
最后查了两天,尝试删掉bin目录下的studio64.exe.vmoptions,再启动就可以了。错误提示说JAVA_HOME没配置,其实配置了,cmd里调用java -version也正常。
2024-04-18 09:49:08
901
1
原创 List相关(连续删除)
所以如果要连续删除,不能在foreach、Iterator中结合外部定义的index变量递增删除,因为这两者是从后往前遍历,同时执行删除时会造成索引变更,与外部定义的递增index对不上号。List 删除元素的逻辑是将目标元素之后的元素往前移一个索引位置。可以通过while或for从后往前删除。
2024-04-15 18:04:45
167
原创 Dao接口形式注入使用MongoDB,报org.apache.ibatis.binding.BindingException(在同时使用MyBatis的情况下)
原因是同时使用MyBatis和MongoDB时,@MapperScan(("com.xxx.dao"))注解覆盖了dao包下的所有类,此时如果把MongoDB的Dao接口和DaoImpl实现类也放在此包下,会被MyBatis接管,无法当作普通的@Component使用。解决方法是单独创建一个包比如mongo包,把MongoDB的Dao接口和DaoImpl实现类放在该包下,不被MyBatis接管,即可正常使用。
2024-03-26 18:47:50
181
原创 MongoTemplate使用Map.class/JSONObject.class作为实体类进行查询时,_id显示为timestamp和date的集合的形式
解决方法:重写Map的put()方法。
2024-01-16 17:45:23
467
原创 nginx配置 请求静态文件时带上额外的响应头信息
浏览器查看doc会在响应头中查看到这些添加的额外信息。注意:这种方式添加的额外信息会出现在响应头中。
2024-01-10 14:39:25
771
原创 事务的隔离级别
不可重复读(我理解是无法复现读):读到了其他事务提交的数据(同一条记录值变了)。事务进行前和事务进行中读到了不同的数据,即在事务进行中有其他事务提交了修改。幻读:读到了其他事务提交的数据(符合相同条件的记录变多了)。事务进行前和事务进行中读到的符合相同查询条件的记录数变多了。脏读:读到了其他事务未提交的数据(同一条记录值变了)。
2023-12-12 17:23:48
422
原创 简单介绍cglib / 什么是动态代理?
cglib作用:方法增强(通过生成动态代理)、动态生成类(如Bean类)动态代理作用:拦截对原始类方法的调用。
2023-12-11 17:26:42
397
原创 静态方法无法创建内部类实例
在静态方法中,不能直接创建成员内部类的实例,因为成员内部类的实例依赖于外部类的实例。成员内部类可以访问外部类的实例成员和方法,但不能定义。
2023-12-11 15:04:19
420
原创 mongodb,在Studio 3T里显示的时间值比正常早/小8小时
在 mongo shell 里试一下 ISODate("2023-12-08T16:22:47.504+0800").getTime() === ISODate("2023-12-08T08:22:47.504Z").getTime() 结果是 true。mongo 里的时间并没有少八个小时,2023-12-08T08:22:47.504Z 是包含时区的时间字符串,Z 代表着 0时区。Studio 3T(晚8小时)-Dao读取(正确)-
2023-12-08 16:57:25
1108
原创 浮点型保留两位小数
实际使用中发现,有时候会出现小数变成1位而不是两位的情况。方案二:String.format()方案一:DecimalFormat。
2023-10-26 17:47:12
3851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人