随笔分类 -  Java

摘要:传统IO 应用调用read方法向操作系统发起读数据的请求,此时由用户态切换为内核态 当系统收到读数据请求时,利用DMA控制器把数据从磁盘读取到系统缓存区中(图中2.1) 再然后CPU会把系统缓存区的数据写应用缓存区(图2.2),此时由内核态切换为用户态 应用再调用write方法通知系统进行数据的写操 阅读全文
posted @ 2022-07-28 10:48 Hitechr 阅读(445) 评论(0) 推荐(0)
摘要:什么是AbstractQueuedSynchronizer(AQS) 字面意思是抽象队列同步器,使用一个voliate修饰的int类型的同步状态,通过一个FIFO队列完成资源获取的排队工作,把每个参与资源竞争的线程封装成一个Node节点来实现锁的分配。 AbstractQueuedSynchroni 阅读全文
posted @ 2022-07-13 16:34 Hitechr 阅读(575) 评论(0) 推荐(0)
摘要:synchronized是什么 synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性。 synchronized可以修饰方法和代码块,底层实现的逻辑略有不同。 Object obj=new Obje 阅读全文
posted @ 2022-07-12 17:46 Hitechr 阅读(480) 评论(0) 推荐(1)
摘要:runAsync 和 supplyAsync runAsync接受一个Runable的实现,无返回值 CompletableFuture.runAsync(()->System.out.println("无返回结果的运行")); supplyAsync接受一个Supplier的实现,有返回值 Com 阅读全文
posted @ 2022-06-29 14:51 Hitechr 阅读(194) 评论(0) 推荐(0)
摘要:枚举的定义 public enum Color { Red,Blue,Green; } 枚举的使用 Color red = Color.Red;//枚举的其中一个类型 Color[] values = Color.values();//获取所有的枚举类型 String name = red.name 阅读全文
posted @ 2021-08-05 19:13 Hitechr 阅读(191) 评论(0) 推荐(0)
摘要:创建Map 通常在创建map时使用 的方法,guava提供了一个简洁的方法 List转换Map 一个key对应多个value的Multimap 在编写代码的过程中经常会用到 Guava的写法 ArrayListMultimap 返回的是一个List,HashMultimap返回的是一个Set Mul 阅读全文
posted @ 2019-03-06 12:41 Hitechr 阅读(2663) 评论(0) 推荐(0)
摘要:Joiner 连接 比如,有这样一个集合 ,想把这个集合转换成以 分割的字符串,并过滤掉集合中的空元素 运行结果: Splitter 分割 有这样一个字符串 ,要把这个字符串以 分割,并放到一个集合里面 运行结果: MapJoinner和MapSplitter 主要对url的param的编码 运行结 阅读全文
posted @ 2019-03-04 21:30 Hitechr 阅读(2031) 评论(0) 推荐(1)
摘要:List的初始化方法 方法一 方法二 Map的初始化方法 注意:在创建时泛型的类型不能省略 注意:此种方法不建议使用,容易造成内存溢出!!! 阅读全文
posted @ 2019-02-21 17:11 Hitechr 阅读(1704) 评论(0) 推荐(0)