java读写锁是什么
1、读写锁将一个资源(如文件)的访问分为两个锁,一个读写锁。2、因为读写锁,多个线程之间的读写操作才不会发生冲突。3、ReadWriteLock是读写锁,它是一个界面,RentrantReadWriteLock实现了这个界面。实例public class CacheDemo { private Map<String, Object> cache = new HashMap<>(); private ReadWriteLock readW...
2024-01-10java读写锁的特性
1、公平选择性,支持非公平和公平锁获取,吞吐量不公平优于公平。2、重进入,读锁和写锁都支持线程重进入。3、锁降级,遵循获取写锁、获取读锁、释放写锁的顺序,写锁可以降级为读锁。实例public class ReadWriteLockTest { public static void main(String[] args) { final Queue q = new Queu...
2024-01-10java线程执行的两种情况
1、如果队列已经满了,执行put操作的新线程将被添加到notFull的条件队列中等待。2、队列未满,当有线程执行移除队列元素的操作时,移除成功并唤醒put线程。实例 public E take() throws InterruptedException { final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try {...
2024-01-10java队列抛出异常的介绍
1、等队列满了之后,将元素再次插入到队列,就会抛出IllegalStateException(QueueFull)异常。2、如果队列为空,那么从队列中提取一个元素将引发NoSuchElementException异常。实例public class MyBlockQueue { public static void main(String[] args) { ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<Integer>(3)...
2024-01-10java阻塞队列的两种操作
1、支持阻塞的插入方法,当队列满时,队列会阻塞插入元素的线程,直到队列不满。2、支持阻塞的去除方法,当队列为空时,获取元素的线程将等待队列变为非空。实例public void put(E e) throws InterruptedException { checkNotNull(e); final ReentrantLock lock = this.lock; lock.lockInterruptibly(); t...
2024-01-10java中transient是什么
1、transient防止用这个关键词修饰的变量序列化。当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。2、transient 只能修饰变量,不能修饰类和方法。实例public Catalog TreeCatalog(String catalogId) { Catalog catalogNode = findById(catalogId).get(); // 查询当前节点 List<Catalog> catalogList...
2024-01-10java中hashCode()是什么
1、hashCode的作用是获取哈希码,也叫散列码,实际上是返回int整数。该哈希码的作用是确定该对象在哈希表中的索引位置。2、hashCode定义在JDK的Object类中,这就意味着Java中的任何类都包含有hashCode 函数。实例package com.tools; import java.util.ArrayList; public class HashCodeMeaning { public static void mai...
2024-01-10java静态方法和实例方法的区别
1、在外部调用静态方法时,可以使用类名.方法名或对象名.方法名。实例方法只有第二种方法。不需要创建对象就可以调用静态方法。2、静态方法类成员时,只允许访问静态成员,而不允许访问实例成员变量和实例方法,实例方法没有限制。实例public class staticMethodTest {void nonStaticMethod() {System.out.p...
2024-01-10java方法的返回值介绍
1、方法的返回值是指执行某一方法体中的代码所产生的结果。前提是这种方法可能产生结果。2、返回值的作用:接收结果,使其能够用于其他操作。如果方法有返回值,则必须使用关键字return返回该值,返回类型为该方法的类型。实例package com.jredu.ch09;import java.util.Arrays;import java.util.Scanner;/** * 有...
2024-01-10python中similarity函数的使用
1、similarity函数接收两个列表,并返回由两个列表中相同元素组成的列表。2、函数使用列表推导,遍历所有a列表中的元素,并使用in关键词来判断这些元素是否存在于b列表中。实例def similarity(a, b): return [item for item in a if item in b] # EXAMPLESsimilarity([1, 2, 3], [1, 2, 4]) # [1, 2]以上就是python...
2024-01-10