青云博客 记录、分享

Archives

2024 / 04

Fork/Join框架是一个用于并行化执行任务的框架,它是Java 7引入的一个新特性,专门用于方便地利用多核CPU的性能优势,通过分治法的策略来将任务分解为更小的子任务,然后并行执行这些子任务,最后再合并子任务的结果。 Fork/Join框架的核心是ForkJoinPool,它是一种特殊的线程池,
并发针对单核 CPU 而言,它指的是 多个任务交替执行,每个任务都会在一段时间内执行一部分,然后切换到另一个任务,因为单核 CPU 一次只能执行一个任务。并发的目的是提高系统的响应性和吞吐量,允许多个任务在同一个处理器上共享时间片。 并行针对多核 CPU 而言,它指的是多个任务真正同时执行,每个任务
阻塞队列(BlockingQueue)是一种特殊类型的队列,它用于在多线程环境中实现线程之间的通信。常见的Java阻塞队列实现包括:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue等。 阻塞队列具有以下特点: 当队列为空时,从队
他们三者都是Java中常用的I/O模型,我们从以下三个维度进行对比: 阻塞与非阻塞: BIO是阻塞式I/O模型,线程会一直被阻塞等待操作完成。 NIO是非阻塞式I/O模型,线程可以去做其他任务,当I/O操作完成时得到通知。 AIO也是非阻塞式I/O模型,不需要用户线程关注I/O事件,由操作系统通过回
首先,包装类的主要作用是让基本类型具备对象的特性。Java是面向对象的语言,但基本类型不是对象,这会导致在一些需要对象的场景下无法使用基本类型。比如在集合框架中(如ArrayList、HashMap等)就只能存储对象,不能存储基本类型。 其次,包装类提供了更多实用的方法。例如Integer类提供了p
三者均是Java中用来处理字符串的类,它们之间的主要区别如下: 可变性: String是不可变的类,一旦创建就不能被修改。每次对String进行操作时,都会创建一个新的String对象。 StringBuffer和StringBuilder是可变的类,可以动态修改字符串内容。 线程安全性:<
Comparator和Comparable都是Java中用于对象排序的接口,它们之间有一些关键的区别。 Comparable接口是在对象自身的类中实现的,它定义了对象的自然排序方式。一个类实现了Comparable接口后,可以使用compareTo方法来比较当前对象和其他对象的大小关系。这个接口只能
在Java中,Integer类对于一定范围的整数值进行了缓存。该范围默认是从-128到127。这意味着当创建一个Integer对象并赋值为在此范围内的整数时,会直接从缓存中返回该数字对应的Integer对象,而不会每次都创建新的对象。 这种缓存的设计主要是出于性能和内存优化的考虑。由于整数在编程中经
在Java中,String类是被final关键字修饰的,即不可继承。final关键字表示一个类不允许被其他类继承,也就是说,String类不能被任何其他类继承。 这是因为String类具有不可变性和安全性,这些特性可以防止一些潜在的问题,如字符串池中的
1.基本类型与对象类型: int是Java的8种基本数据类型之一,直接存储数值;而Integer是int对应的包装类,是一个对象,存储在堆内存中。 2.默认值不同: int的默认值是0;Integer作为对象,默认值是null,这在某些业务场景下可以明确区分"值为0"和"未赋值"的情况。 3.存储位
Previous Next