04 2018 档案
摘要:这个里面引用了外表的jia包,所以我们要先把那个jar maven install 一下,不让找不到这个jar包
阅读全文
摘要:代码块就不用synchronized 修改方法,在方法里面用。 比如我现在2个线程都访问MyThreadTest3对象的test()方法,在上面的for循环里面2个线程都能同时访问。 如果A线程先访问到下面代码块,那么B线程就要等待A线程结束之后在访问下面的代码块。 所以能够知道 1.A线程访问sy
阅读全文
摘要:1.为什么要用synchronized,因为在多线程的情况下,会读取脏数据。 为什么会有读脏数据呢,他的定义是:在多线程的情况下,对同一个对象的实例进行并发的访问,如果不做同步处理的话,那就有可能读取脏数据。 比如下图中,启动了2个线程都对MyThreadTest t 这个对象去访问。因为要在线程里
阅读全文
摘要:1.start() 启动 2.isAlive() 是否活动这,只有在start之后,在run方法走完之后,是true 3.state() 线程状态 4.getPriority() 获取线程优先级,默认是5,线程默认优先级为5,如果不手动指定,那么线程优先级具有继承性,比如线程A启动线程B,那么线程B
阅读全文
摘要:有2个方式 1.继承Thread,第2实现Runnable接口,但是我们建议用实现接口的方式,因为继承只能单继承,实现可以实现多个接口。 下面的是启动线程的例子。 线程状态: 1.新建状态NEW : 就是线程被new出来,还没有start 2.可运行状态RUNNABLE 线程已经start了,但是没
阅读全文
摘要:Vector 他的实现原理和ArrayList,只不过在增删查改的时候,加了锁标记。 Vector 不是绝对的线程安全。 比如线程有现在A和B,同时add的话,因为add方法加了锁标记synchronized,所以如果A先拿到了这个锁,这个锁就是这个对象的实例,然后B必须要等待,等A释放锁之后,会去
阅读全文
摘要:ashMap的存储接口是底层有1个Node<K,V>[] table数组,然后根据key的hash值找到定位的下标,然后存到数组里面。如何key的hash值是一样的,但是value不一样的话,他添加的节点就是Node链表的下一个节点。 所以hashMap 查询和删除比较快,他直接根据key找到has
阅读全文
摘要:CopyOnWriteArrayList 也是实现List接口他是在concurrent 包里面,所以他是线程安全的,其他的基本和ArrayList很想。他线程安全是用ReentrantLock 实现的,他内部有一个ReentrantLock对象,然后在增删改的时候都操作这个锁对象,所以他在多线程里
阅读全文
摘要:LinkedList 内部是用双向链表实现的。可以为空,可以重复,是有序的,线程不安全。 实现原理 属性: 1.size 长度 2.node<E> first 第1各元素 3.node<E> last 最后一个元素 内部类 Node<E> 里面有3个属性,E element, Node<E> pre
阅读全文
摘要:Arraylist (可以问空,null,可以重复,是有序的(就是放进去和拿出来是有序的,),线程不安全(如果有1个公共的ArrayLIst对象,2个线程同时访问的话,如果都修改的话,就会有不安全,如果每个线程都new的对象,那就不存在线程不安全。所以我们可以ThreadLocal,定义每个线程都有
阅读全文
摘要:>>1 这个就是 除以2 比如 10>>1 是 5 15>>1 是7 >> 这个就是右移 << 这个是左移 >>>无符号左移 没有<<<这个东西 & 换成二进制后,2个都是1的时候才是1,否则是0 比如 12|5 =>4 1100&0101 》0100 >4 | 换成二进制后,只要是1个是1,就是1
阅读全文
摘要:堆和栈 堆是用来存放对象, 栈是用来执行程序的。 JVM 运行时内存区域 1.线程独有的内存区域 1.1 PROGRAM COUNT REGISTER 程序计数器 他是当前线程执行的字节码行号显示器。java方法执行的时候才有这,native 方法执行的时候是空的,这块内存大小很小 1.2 JAVA
阅读全文
摘要:集合中删除元素,entrySet 是一个set集合,下面是map中删除元素的实现。用迭代器删除。public V remove(K key) { Iterator<MyEntry<K,V>> i = entrySet().iterator(); MyEntry<K,V> currObj = null
阅读全文
摘要:在jdk1.8之后,可以在j接口方法用default,里面可以写具体的逻辑。 比如2个接口都有 defalut的方法,而且方法名一样的话,那么有1个类都实现这2个接口的话,那么必须要实现 接口里面的方法, 原来是默认不要实现default的方法。因为这2个接口都2个default方法。
阅读全文

浙公网安备 33010602011771号