
工作需要注意点
文章平均质量分 95
小孔靠得住
不积跬步无以至千里,不积小流无以江海
展开
-
Java-HashMap和ConcurrentHashMap的区别
HashMap (JDK 8):数组 + 链表 + 红黑树:优化链表过长的情况。当链表长度超过8时(默认设置),链表会被转换成红黑树,以减少查找时间复杂度ConcurrentHashMap (JDK 8):数组 + 链表 + 红黑树:类似于HashMap,也引入了红黑树来优化性能。但是,ConcurrentHashMap更复杂。它不再使用分段锁(Segment),而是采用CAS操作加上一些其他原子操作和少量的synchronized关键字来实现更细粒度的锁,这大大提升了并发性能。原创 2024-06-25 17:07:52 · 2472 阅读 · 1 评论 -
Java-异常:不恰当的异常转换、不充分的日志记录、过度或不当的异常捕获
Java-异常:不恰当的异常转换、不充分的日志记录、过度或不当的异常捕获。原创 2024-06-22 19:13:41 · 1185 阅读 · 2 评论 -
Java-LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式
Java-LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式LinkedList和ArrayList的区别:当需要快速随机访问且元素数量相对稳定时,ArrayList更优;而当频繁进行插入和删除操作,特别是表头或表尾操作时,LinkedList更有优势,但是如果随机插入和修改,可能ArrayList更好。Get/Add操作性能分析:当在随机位置add操作,LinkedList的插入性能按照测试结果来看是比ArrayList差的,ArrayList更快原创 2024-06-18 13:59:38 · 1558 阅读 · 1 评论 -
Java-集合类-Arrays.asList()和subList使用需要注意的大坑
Arrays.asList() 是 Java 中一个常用的方法,它用于将数组转换为列表(List)。这个方法非常方便,但也有一些需要注意的“大坑”。使用subList需要注意OOM、ConcurrentModificationException异常原创 2024-06-13 16:47:40 · 1113 阅读 · 9 评论 -
Java-Lambda表达式基本理解及使用
Lambda 表达式是Java 8引入的一个重要特性,它旨在简化函数对象的创建过程,使得Java语言更加简洁、功能更加强大,尤其是在处理集合、流和并发编程中表现突出。Lambda允许将功能作为方法参数或将其赋值给变量,这在函数式编程范式中尤为重要,它促进了行为参数化,即代码可以根据传入的行为(函数)动态变化。原创 2024-06-11 16:37:28 · 1573 阅读 · 1 评论 -
Java常见错误-内部类-简要分析
内部类是Java语言提供的一种特殊类,它允许类定义嵌套在其他类中,这为程序设计提供了更大的灵活性。不同类型的内部类有着不同的应用场景和访问规则,如成员内部类用于需要访问外部类非静态成员的情况,静态内部类更像一个独立的类但逻辑上属于外部类,局部内部类和匿名内部类则常用于临时性需求,如事件处理或实现特定接口的简短实现。理解并恰当使用内部类,可以使代码更加清晰、高效和易于维护。原创 2024-06-06 10:45:37 · 1125 阅读 · 1 评论 -
Java中常见错误-泛型擦除及桥接方法问题及解决方案
类型擦除:Java泛型在编译后会被擦除,这意味着像Animal< String >在字节码层面等同于Animal< Object >,导致方法签名可能变得不明确。桥接方法为了保证泛型擦除后的多态性,编译器会为某些泛型方法生成桥接方法,这些方法通常指向具体的实现。反射调用直接通过反射调用可能遇到桥接方法,导致意外的行为,如多次调用或不期望的类型转换。正确处理泛型和桥接方法对于避免这些问题至关重要。原创 2024-06-05 13:47:43 · 983 阅读 · 2 评论 -
Java中常见错误-Java中注解是否可以继承
@Inherited是Java中的一个元注解,位于java.lang.annotation包内,它用于修饰自定义注解,表明这个自定义注解具有继承性。子类的类上能否继承到父类的类上的注解?子类方法,重写了父类上的方法,这个方法能否继承到注解?子类方法,继承了父类上的方法,这个方法能否继承到注解?使用特定工具方法(如Spring的AnnotatedElementUtils.findMergedAnnotation())来合并注解信息,父类的类级别、方法注解对子类都是可见原创 2024-06-03 17:26:34 · 1214 阅读 · 1 评论 -
SpringBoot-SchedulingConfigurer源码初识:理解定时任务抛异常终止本次调度,但不会影响下一次执行调度
使用继承SchedulingConfigurer接口动态定时任务调度实现,需要注意:定时任务抛异常终止本次调度,但不会影响下一次执行调度原创 2024-06-02 17:32:24 · 1536 阅读 · 1 评论