java集合排序的两种方法
1、Collections工具类提供静态方法sort方法,入参是List集合,与Comparator对比,排序给定的List集合。上述示例代码创建匿名内部类参与,这种类似操作在我们的日常工作中随处可见。List<String> names = Arrays.asList("peter", "anna", "mike", "xenia"); Collections.sort(names, new Comparator<String>() { @Override publi...
2024-01-10java中default如何操作接口
说明1、default关键词为界面定义的抽象方法提供默认的实现。2、default关键词的新特性,可以非常方便地扩大以前的接口,但是这个接口的实现类没有必要进行任何变更。实例// 定义一个公式接口interface Formula { // 计算 double calculate(int a); // 求平方根 default double sqrt(int a)...
2024-01-10java线程池死锁的产生及处理
说明1、死锁是指两个或两个以上的过程在实施过程中,由于竞争资源或相互通信而造成的堵塞现象,如果没有外力作用,就不能推进。线程池死锁实例2、解决办法:扩大线程池线程或任务结果不再相互依赖。final ExecutorService executorService = Executors.newSingleThreadExecutor();Future<Long> f1 = executo...
2024-01-10java中jstack是什么
说明1、jstack是java虚拟机自带的栈跟踪工具。jstack用来输出给定java进程ID、corefile或远程调试服务的Java堆栈信息。2、可以使用Jstack工具为java虚拟机当前时刻生成线程快照。作用线程停止时,通过jstack看各线程的调用堆栈,可以知道没有反应的线程在后台做什么,等待什么资源。实例通过jps确定当前执...
2024-01-10javaChannel是什么
1、说明Channel是一个可以通过它读写数据的对象。它可以被视为IO中的流。但与流相比,它有一些不同:Channel是双向的,可以读也可以写,流是单向的。Channel可以异步读写。Channel的读写必须通过buffer对象。2、实例利用通道和非直接缓冲区完成。FileInputStream fis=null; //引用FileOutputStream fou...
2024-01-10java中Buffer是什么
1、概念使用Java NIO Buffers与NIO Channel交互。从Channel中读取数据到buffers里,从Buffer把数据写入到Channels;必须对Buffer的三个属性进行控制,即capacities能力、position-location、limit限制。2、实例public static void main(String[] args) { //生成一个长度为10的缓冲区 IntBuffer intBuffer = IntBuffer.all...
2024-01-10java中NIO是什么
1、概念Java中的NIO是java1.4版本出现的新IO接口,NIO中的N可以理解为Non-blocking,不仅仅是New。NIO主要用到的是块,所以NIO的效率要比IO高很多。2、NIO和IO的区别(1)IO面向流动,NIO面向缓冲区;(2)IO流堵塞,NIO流不堵塞;(3)NIO有选择,但IO没有。3、读写数据的方法从渠道读取数据:创建缓冲区,然后...
2024-01-10java元注解是什么
1、概念元注解是用来修饰注解的注解,通常用于注解的定义。2、类型@Target:注论的作用目标。@Retention:注释生命周期。@Documented:注释是否应该包含在JavaDoc文档中。@Inherited:是否允许子类继承注释。3、实例@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override { }以上就是java元注...
2024-01-10java注解的本质分析
1、说明(1)注释的本质是继承Annotation接口的接口。关于这一点,可以反向翻译任何注释类别,得到结果。(2)一个注释只是一个特殊的注释。如果不分析它的代码,可能连注释都不如。2、实例这是注解 @Override 的定义,其实它本质上就是:public interface Override extends Annotation{ }典型的是注释@O...
2024-01-10java中CAS的底层原理
1、CAS的原理是用JNI调用C代码实现的,如果有Hotspot源代码的话,可以在Unsafe.cpp中找到实现。static JNINativeMethod methods_15[] = { //省略一堆代码... {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", ...
2024-01-10