标签 java 下的文章

java原子性

原子操作被认为是原子性; 一个操作是 不可打断 的, 一旦开始, 就运行到结束, 就认为是原子操作, 像 a=0, 只有一个操作, 不可打断, 认为是原子操作, 还有一些语句块, 用 sychronized 加锁后, 也可认为是原子操作; java 提供了位于包 java.util.concurrent.atomic 中的原子类, 使用该工具包中的原子类, 可在不加锁的情况下对单个变量安全的进行多线程编程; 包中的类 AtomicBoolean 可以用原子方式更新的 boolean 值。 AtomicInteger 可以用原子方式更新的 int 值。 AtomicIntegerArray 可以用 ...

java 基础回顾 – 初始化类的变量

创建对象的过程 1: 首次创建类或者首次访问类的静态方法/静态域, 定位到该类的 .class 文件 2: 载入 .class 文件, 静态初始化的所有动作都会执行, 因此静态初始化只在 .class 对象首次加载时进行一次 3: new 对象, 首先在堆上分配足够的空间给对象 4: 这块存储空间会被清 0, 基本类型设为默认值, 引用设为 null 5: 执行字段定义处的初始化动作 6: 执行构造器 java 中创建和初始化是一体的, 创建的时候就已经有初始化操作, 即使想延后初始化(比如像在构造器里) 基本数据类型初始化时的默认值 boolean > false char > 0 byte & ...

java 基础回顾 – Object

Object 是 java 中的基类 里面的部分方法经常需要被重写, 所以必须对 Object 内的方法有所了解. 下面是 Object 的部分源码内容和注释 package java.lang; public class Object { public Object() { } /** * 拷贝对象, 直接调用是浅拷贝, 重写后通过对非基础类型的属性调用循环调用 clone() 方法实现深拷贝 */ protected java.lang.Object clone() throws CloneNotSupportedException { } /** ...

java多线程知识点

线程的状态 NEW 新建状态: new 一个线程 RUNNABLE 运行状态: 获取 CPU 时间片之后, 开始 run() 方法之后,开始执行 BLOCKED 阻塞状态: 被阻塞,等待锁的释放 WAITING 等待状态: 调用不带时间的 Object.wait, Thread.join LockSupport.park 之后 TIMED_WAITING 指定时间的等待状态: 调用带有时间参数的 Thread.sleep, Object.wait, Thread.join, LockSupport.parkNanos,LockSupport.parkUntil等方法之后 TERMINATED 死亡状态: 运行结束或者异常终止的状态 开启一个线程 Thread以Runnable对象作为构造参数,重写run 实现Runnable接口的 ...