Java
文章平均质量分 54
记录Java开发中遇到的问题处理方法,技能提升理解
小民有话说
1.Stay hungry,Stay foolish.
2.知其然,知其所以然。
展开
-
软件开发模式
软件开发模式原创 2024-02-19 10:43:41 · 371 阅读 · 0 评论 -
基于设计模式,实现分布式锁的资源管理
基于设计模式,实现分布式锁的资源管理原创 2024-02-06 15:12:13 · 1110 阅读 · 0 评论 -
代码解析:list.stream().filter(Objects::nonNull).collect(Collectors.toList())
stream流基本代码解析原创 2024-02-06 14:07:00 · 389 阅读 · 0 评论 -
java.util.Stream.peek和java.util.stream.forEach的区别和实用场景说明
java.util.Stream.peek和java.util.stream.forEach的区别和使用场景原创 2024-02-06 13:41:21 · 1124 阅读 · 0 评论 -
理解new BigDecimal(double)和BingDecinal.valueOf(double)的区别
new BigDecimal(double)和BingDecinal.valueOf(double)的区别理解原创 2024-02-06 13:29:14 · 448 阅读 · 0 评论 -
同一个类内,某函数引用带有事务管理的函数,如何处理
函数引用带有事务管理的函数原创 2024-02-05 14:15:24 · 348 阅读 · 0 评论 -
StringBuffer和StringBuilder的区别,设计目的
StringBuffer和StringBuilder的区别,设计目的原创 2024-02-04 13:46:19 · 337 阅读 · 0 评论 -
JAVA开发中,哪些词不能用做参数命名
JAVA 参数命名原创 2024-01-31 13:28:56 · 343 阅读 · 0 评论 -
“try-with-resources“ 模式理解
"try-with-resources" 模式原创 2024-01-31 10:51:23 · 340 阅读 · 0 评论 -
跨项目配置,nacos的动态更新配置,如何才能生效
在SpringCloud项目中,有时会出现多个项目读取同一配置的场景,那么这种跨项目的动态更新配置,如何才能生效。原创 2023-10-24 17:12:57 · 445 阅读 · 0 评论 -
SAAS部署模式
SAAS产品,云交付模型方式之一原创 2023-07-26 13:38:58 · 727 阅读 · 0 评论 -
软件开发事故级别分类
开发事故级别原创 2023-06-28 09:10:25 · 6227 阅读 · 0 评论 -
RocketMQ学习一
RocketMQ学习原创 2023-05-04 11:16:36 · 503 阅读 · 0 评论 -
JAVA开发中的六大原则
正确地应用这些原则能够为我们的软件开发带来诸多好处,如增强代码的可读性、可扩展性、可维护性、可测试性以及可重用性等,减少软件开发过程中的代价和风险,提高软件产品的质量和用户满意度。一个对象应该对其他对象有尽可能少的了解,不和“陌生人”发生直接的互动关系,而是通过几个“熟人”间接地与“陌生人”发生关联。如此一来,类具有很高的聚合性,不会存在既承担业务功能又承担其他职责(比如持久化、日志操作、UI交互等)的情况。JAVA开发中的六大原则,也被称为SOLID原则,是软件开发中常用的一组设计原则。原创 2023-04-23 09:01:22 · 572 阅读 · 0 评论 -
list.sort实现根据对象的属性值对集合进行排序
list.sort实现根据对象的属性值对集合进行排序,如下所示List<Map<String,Object>> list = new ArrayList<>();Map<String,Object> map1 = new HashMap<>();map1.put("gz_id",1);map1.put("aaa","aaa");Map<String,Object> map2 = new HashMap<>().原创 2021-03-19 09:34:33 · 358 阅读 · 0 评论 -
springboot 整合ES异常整理 : Validation Failed: 1: no requests added
BulkRequestBuilder builder = client.prepareBulk();for (Map<String,?> map : list) {…}builder.execute().actionGet();//如果list为空,ES会抛出如标题的异常,修改:if(list.size() > 0) {builder.execute().actio...原创 2019-12-27 14:46:07 · 2346 阅读 · 1 评论 -
如何更优雅的对list集合判空判Null
CollectionUtils.isNotEmpty(list), 该方法就等同于 list != null && list.size() > 0CollectionUtils源码:public static boolean isNotEmpty(Collection coll) {return !CollectionUtils.isEmpty(coll);}...原创 2019-12-27 15:18:23 · 6118 阅读 · 0 评论 -
Java在静态工具类中注入Service
给当前的工具类加上@Component,使其成为一个bean对象 声明一个非静态的属性(加上注解@Autowired)和一个静态的属性。 声明一个返回值为void并且不能抛出异常的方法,在其中将非静态属性赋值给静态属性。该方法上加上注解@PostConstruct 这样就将service的值注入了进来。@Componentpublic class DemoUtil { @Autowired private RedisTemplate redisTemplate; pr原创 2020-08-13 18:50:11 · 1329 阅读 · 0 评论 -
解决Java抽象类无法注入
问题引入首先明确一个问题:抽象类不能生成实例对象,spring无法注入。原因:spring的原理是启动服务器时读取配置文件,取得类名后利用反射机制在spring上下文中生成一个单例的对象,由spring注入属性并维护此对象的状态,抽象类在反射生成对象时就已经失败了,后面的不会进行问题解决限于springboot方式启动,我们编写一个SpringBeanLoader的类,在应用启动时加载org.springframework.context.ApplicationContext,对外通.原创 2020-08-13 18:58:18 · 3673 阅读 · 0 评论 -
Springboot中@Scheduled的多线程方式
问题描述:@Scheduled多个任务执行的耗时不同,会造成不同任务间的阻塞,不能按指定的时间执行。是因为其默认是单线程执行。问题处理:通过注解@EnableAsync和@Async来实现其多线程支持执行结果:,默认情况下使用SimpleAsyncTaskExecutor来处理异步方法调用...原创 2021-01-22 11:45:41 · 555 阅读 · 0 评论 -
算法破解实现
首先声明:哈希hash算法没法破解一般的hash算法所谓破解有四种层次1、给定hash(A),能得到A2、给定hash(A),能得到一个B,使得hash(A)=hash(B)3、给定A,能得到一个B,使得hash(A)=hash(B)4、制造碰撞,即生成A,B,使得hash(A)=hash(B)。三个难度1>>2>3>4对于hash算法来说,1是不可能实现的。因为hash值是多对一的。目前最好的结果是山大(现在清华)的王小云教授对md5以及sha.原创 2021-03-15 10:57:18 · 566 阅读 · 0 评论 -
对象的强、软、弱和虚引用
对象的强、软、弱和虚引用对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够,垃圾回原创 2021-09-02 11:10:27 · 91 阅读 · 0 评论