前言 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要…
计算机内存模型 计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据 的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就 存在一个问题,由于CPU执行速度很快,而从内存读取数据和向…
1. 线程定义 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix Sys…
为什么使用泛型 开发人员在使用泛型的时候,很容易根据自己的直觉而犯一些错误。比如一个方法如果接 收 List<Object> 作为形式参数,那么如果尝试将一个 List<String> 的对象作为实际参数传进去,却发…
Java中有Error和Exception,它们都是继承自Throwable类。 二者的不同之处 Exception: 可以是可被控制(checked) 或不可控制的(unchecked)。 表示一个由程序员导致的错误。 应该在应用程序级被…
Java分派机制 在Java中,符合“编译时可知,运行时不可变”这个要求的方法主要是静态方法和私有方法。这 两种方法都不能通过继承或别的方法重写,因此它们适合在类加载时进行解析。 Java虚拟机中有四种方法调用指令: invokestati…
Java集合框架提供了数据持有对象的方式,提供了对数据集合的操作。Java集合框架位 于 java.util 包下,主要有三个大类: Collection 、 Map 接口以及对集合进行操作的工具 类。 Collection ArrayLi…
1、运算符优先级表 优先级 运算符 结合性 1 () [] . 从左到右 2 ! +(正) -(负) ~ ++ — 从右向左 3 * / % 从左向右 4 +(加) -(减) 从左向右 5 << >> …
1、面向对象 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来…
Charles的用途和使用就不说了,可以Google或baidu一下,下面说说破解的事。 1、下载安装,Charles下载地址:https://www.charlesproxy.com/latest-release/downl…
1. 静态代码块: static { } 2. 非静态代码块 { } 静态代码块和非静态代码块的异同点如下: 相同点:都是JVM加载类时且在构造函数执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。 不同点:…
全部加载完成