Java知识点
qq_40698103
这个作者很懒,什么都没留下…
展开
-
java 泛型上限和下限
泛型上限:? extends泛型下限:? super首先需要明确的是泛型上限和下限是定义在方法的参数的,如果参数包含一个带有泛型的类,可以用上限或者下限给这个类做相应的限制,如果直接定义在类上会编译错误,比如不会这样定义:定义泛型类:class GenericTest<T> { private T first; private T last; public GenericTest(T first, T last) {原创 2021-09-06 15:30:41 · 1045 阅读 · 0 评论 -
ReentrantLock实现wait和notify
ReentrantLock可以配合Condition来实现wait和notify的await()和signalAll()来实现线程的等待和唤醒。示例代码:public class TestClass { private final Lock lock = new ReentrantLock(); private final Condition condition = lock.newCondition(); private int count; public v.原创 2021-08-16 17:59:36 · 1001 阅读 · 0 评论 -
ReentrantLock简单使用
ReentrantLock和synchronized的作用类似,都是可以处理多线程下的同步问题,但是ReentrantLock比synchronized有一定的优势,比如可以指定获取锁的等待时间,如果超时则进行其他操作,不用一直等待下去。示例代码:public class TestClass { private final Lock lock = new ReentrantLock(); private int count; public void add() {原创 2021-08-16 17:16:24 · 132 阅读 · 0 评论 -
线程join方法浅析
简单来说,假如A线程希望等待B线程执行完成后再执行自身代码,A线程就可以调用B线程的join方法。示例代码如下:public class MyClass { private static Thread t2; private static Thread t1; public static void main(String[] args) { System.out.println("join test--->Main Thread start");原创 2021-08-16 15:17:36 · 105 阅读 · 0 评论 -
浅析浅克隆和深克隆
浅克隆:可以得到一个和原来的类具有完全一样的属性值的对象。如果一个类里面有其他类,那么克隆出来的类里面的其他类是共用的,比如:A类包含B类的,A类可以通过getB()获取B1类,假设克隆出来的是A2,那么通过A.getB()得到的B1和A2.getB()得到的B2是同一个对象,修改B1的属性的同时B2也会被修改,同样修改B2的属性同时B1也会被修改深克隆:可以得到一个和原来的类具有完全一样的属性值的对象。但是修改B1的属性时B2不会被修改,因为B1和B2已经不是同一个对象。浅克隆示例代码:...原创 2021-08-10 17:48:32 · 110 阅读 · 0 评论