Java中的恍然大悟

Java 中的恍然大悟

数组与集合最大的区别

  1. 数组里既可以装8钟基本数据类型,还可以装包装类型。
  2. 集合里只能装包装类型

集合工具类给你封装了排序方法java.util.Collections.sort()

如果你如标题这么认为,那你就错了,其实它底层用的是你要排序集合的内置排序方法。

package java.util;

public class Collections {
    public static <T> void sort(List<T> list, Comparator<? super T> c) {
        list.sort(c);
    }
}

lombok框架存在运行时兼容性问题

如果谁告诉你 Lombok 框架,不能在项目中用,因为它可能在运行时存在不兼容性问题,你直接可怼他对 Lombok 的生命周期不了解。

package lombok;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
    String staticConstructor() default "";
}

它的生命周期在源代码编译成字节码时,就结束了,所以根本不会活到运行时期,那怎么产生兼容性问题呢?

StringBuffer给你封装了复杂的线程安全方法

如果认为StringBuffer类给你封装了复杂高级的线程安全方法,而 StringBuilder 不安全不高级,那你就错了。他其实就是在 StringBuilder 的基础上给操作方法添加synchronized修饰而已。

源码:

@Override
public synchronized int length() {
    return count;
}
posted @ 2023-03-19 18:51  沙里  阅读(16)  评论(0)    收藏  举报