Java Colletion-集合框架面试问题
发表于|更新于|InterviewJavaCollection
|总字数:3|阅读时长:1分钟|浏览量:
// TODO
相关推荐
2025-07-10
Java基础面试问题
Java基础a = a + b 与 a += b 的区别+= 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两个整型相加,如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。 1234byte a = 127;byte b = 127;b = a + b; // error : cannot convert from int to byteb += a; // ok (因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值给 byte 就会编译出错) 为什么需要泛型?适用于多种数据类型执行相同的代码 引入泛型,它将提供类型的约束,提供编译前的检查 泛型方法泛型方法创建 泛型方法使用 泛型方法创建的时候需要使用<T>来声明这是一个泛型方法, 在传入的参数中需要有Class<T> c参数来指明传入的参数的类型, 然后在方法中通过反射newInstance方法来创建一个新的对象 使用泛型方法的时候, 可以通过Class.forName(“全限定类名”)来...
2025-07-23
JUC-原子类-AtomicInteger类详解
原子类-AtomicInteger类详解说实话, 也没什么好额外讲的, 整个原子类家族, 就是一族封装了一些类CAS操作的类, 提供了我们为某个变量进行原子操作的能力, 让我们可以在多线程环境下, 对某个变量进行原子操作, 而不需要加锁. 下面简单说明一下类的结构 核心字段12345private static final Unsafe U = Unsafe.getUnsafe();private static final long VALUE = U.objectFieldOffset(AtomicInteger.class, "value");private volatile int value; Unsafe就是提供了操作系统层面的API来执行CAS操作类 VALUE是使用了Unsafe获取到的AtomicInteger类中的value字段的属性在类中偏移量, 用于CAS操作 value就是我们这个Integer类的值, 这里的value是保证可见性的, 所以如果使用Atomic是默认保证多线程之间的可见性, 不需要额外加volatile 核...
2025-07-24
JUC-线程池-ThreadPoolExecutor类详解
线程池-ThreadPoolExecutor类详解ThreadPoolExecutor的构造方法12345678public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, Executors.defaultThreadFactory(), defaultHandler);} corePoolSize: 核心线程数, 线程池中即使没有任务也要保持存活的最大线程数量 ...
评论