Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 一、访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限: private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) def ...
分类:
编程语言 时间:
2020-01-11 11:29:19
阅读次数:
83
运算符优先级: 求余运算用法: 声明变量的名字和类型: 变量的类型决定占用内存空间的大小、数据的存储形式,合法的表数范围、可参与的运算种类。变量名标识了内存中的一个存储单元。 自动类型转换: 运算符和表达式: ...
分类:
编程语言 时间:
2020-01-10 22:22:00
阅读次数:
75
AbstractQueuedSynchronizer抽象同步队列是一个抽象类,简称AQS,是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的 AQS的数据结构:逻辑结构:双向队列,存储结构:链式存储,所以包含头尾节点head、tail及节点Node。 一、Node(静态内部类) 1、变量与 ...
分类:
其他好文 时间:
2020-01-10 00:40:24
阅读次数:
103
mock模拟private static final now=system.currentmills; 首先在测试类开头加上: @prepareForTest({System.class}) Class A{ } 然后,在方法上添加:powermockito.mockstatic(system.cl ...
分类:
其他好文 时间:
2020-01-10 00:30:43
阅读次数:
529
final关键字概述: 在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。 final是最终的意思,可以修饰类、变量、成员方法。 1.修饰类: 禁止被继承。 2.修饰变量: 变量被final修饰,该变量的值在被首次赋值之后,就不能在被重复赋值。 3.final修饰成员方 ...
分类:
编程语言 时间:
2020-01-09 00:59:24
阅读次数:
100
类的初始化时类加载的最后一步,此时才开始执行 Java 代码(字节码)。 初始化阶段是开始执行 clinit<>() 方法的过程。 clinit<>():由编译器收集类中的类变量赋值操作和 static 代码块中的语句合并产生的,收集顺序与源文件中出现的顺序决定;static 语句块只能访问到在 s ...
分类:
其他好文 时间:
2020-01-08 18:49:24
阅读次数:
83
1.HashMap源码 1.1 类Node代码 HashMap内部存储的单元是Node,Node类源码如下: ?? 1.2 HashMap数据结构 HashMap数据结构是由Node数组及每个数组元素都是单向链表组成的,结构如下图: ? 1.3 HashMap get操作 get操作就是根据key找 ...
分类:
其他好文 时间:
2020-01-04 12:50:36
阅读次数:
83
类加载的三个阶段 加载 jvm通过类加载器把java文件加载到内存中并生成一个class文件。连接 验证:class文件被加载进来之后,java虚拟机规范就会校验文件类容,来判断文件是否符合语法规范。 准备:语法校验成功之后,就会给这个类、变量分配内存、赋予虚拟机初始值。 解析:就是将符号引用转换为 ...
分类:
其他好文 时间:
2020-01-04 01:35:52
阅读次数:
127
当我们要进行跨类的调用/使用的时候,比如当前类调用另一个类中的变量或方法时, 这时需要一定的条件,如果那些将要被调用的变量或方法是static(静态)变量,也叫类变 量,那么可以通过类名调用,相当于此时你有了使用那个类的权限,或者此时那个类中的 变量和方法这些资源对你开放了,可以简单的通过类名直接调 ...
分类:
编程语言 时间:
2019-12-31 12:35:28
阅读次数:
75