java基础
文章平均质量分 64
noodles_mee
任何不能拿到关键结果的努力都是半途而废,
展开
-
Lock用法和加锁原理
note: 1)加锁语句lock.lock();catch语句中发生的,这两个部分可能发生的异常不影响finally执行。synchronized同步机制是依赖JVM实现,Lock主要依赖抽象队列同步器(AbstractQueuedSynchronier,AQS)实现的,AQS是一个双向链表,使用一个整型变量state表示对共享区域的加锁状态,对于每个尝试访问临界区的线程都会被封装成双向链表中的一个节点,主要通过tryacquired获取临界区访问权,通过tryrelease释放临界区访问权。原创 2023-05-09 22:45:35 · 497 阅读 · 1 评论 -
代码风格总结
编程风格原创 2022-09-18 18:39:52 · 582 阅读 · 0 评论 -
范型类如何实现上下转型
目录1 Java上转型和下转型2 范型中上下转型2.1 <? extends T> 实现上转型2.2 <? super T>实现下转型3 协变、逆变1 Java上转型和下转型Java上转型: 子类引用的对象转为父类,可以实现自动转型;Java下转型: 父亲类引用的对象转为子类,需要进行强制转换。首先JDK中的数组也是范型,可以进行类似向上的转型,例如:Animal[] animals = new Animal[10] ; animals. = new Dog[10];//原创 2022-04-30 19:02:07 · 597 阅读 · 0 评论 -
函数式接口中范型的类型擦除时机
目录问题描述:分析:范型和函数式接口极大增加了Java代码程序灵活性,二者被广泛使用在各种框架中。范型函数中方法可以根据实际需要,接受和返回不同类型值,并且可以在编译时就进行类型检查,在运行之前进行类型擦出,避免使用上转型发生运行时类型转化异常。函数式接口在不同场景中实现不同逻辑提高程序灵活性。问题描述:类1:普通范型接口public interface RpcClient<K extends ServiceClient> extends CacheAware<String,原创 2022-04-22 23:16:48 · 424 阅读 · 0 评论 -
Java空指针异常和解决办法
目录问题描述:尝试1:尝试2:使用Optional防止出现空指针异常引用问题描述:public class Main20220419 { public static void main(String[] args) { String id = null; Item item = ItemService.getItemById(id); System.out.println(item.name); } private static c原创 2022-04-19 21:49:37 · 7610 阅读 · 0 评论