位运算

序位运算在程序设计中非常重要,特别是有复杂运算的时候,位计算的高效率优势发挥地淋漓尽致。BigDecimal底层加减乘除运算都是运用了位运算,如果在大学区间有学到位运算符,应该重视起来,不要像作者君这样,现在要去捡起来。以下内容都是假定各位都知道位运算的情况下。加法先看一道题 给出两个整数 aa 和 bb , 求他们的和, 但不能使用 ++ 等数学运算符。 说明 ... …… 阅读全文

Java线程的6种状态及切换(透彻讲解)

Java中的线程的状态分为6种。初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的成为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权,此时处于就绪状态(r... …… 阅读全文

Java Thread

Java多线程Java多线程只有一种构造方式,即创建Thread对象。 实现线程的执行方法有两种方式: 1. 继承Thread,重写Thread的run()方法。 2. 实现Runnable 接口的run()方法。线程命名默认命名Java源码public Thread(Runnable target) { init(null, target, "Thr... …… 阅读全文

Java Thread synchronized

synchronized关键字提供了一种锁机制,能确保共享变量的互斥访问,防止数据不一致的问题出现。 synchronized其实是获取synchronized修饰的monitor锁。monitor锁包括monitor enter和monitor exit两个JVM指令。将java编译成汇编的时候就会显示地出现这个锁。使用synchronized可以修饰方法和代码块。 但是有一些注意点... …… 阅读全文

Java Thread 通信

单线程通信wait & notify wait()和notify()都是Object的方法。wait方法会使当前线程进入阻塞,知道有其它线程调用了notify()或notifyAll(),或者阻塞时间到了。 wait(),notify必须拥有该对象的monitor(This monitor),也就是wait方法只能在同步方法中使用,并且wait和notify的对象一致。否则会抛出... …… 阅读全文

JavaThreadGroup

所有的Thread都有ThreadGoup,同线程存在父子关系,ThreadGroup也存在父子关系。如图: 林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组。那么为什么要使用线程组呢?个人认为有以下的好处:方便... …… 阅读全文

PreventDuplicated

package com.tal.multithread;import javafx.geometry.Pos;import java.io.File;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import ja... …… 阅读全文

Collections 族系详解 —— ImmutableCollections

ImmutableCollections即不可变即,最初出现在Google 的Guava 中,在jdk的Java9中被引入。JDK9,10中的ImmutableCollections只是一个存放不可变集合的一个容器,不是一个公共的API。先看ImmutableCollections的设计图ImmutableCollections真的只是一个集合,下面的Set0,Set1..List... …… 阅读全文