
java 基础
文章平均质量分 66
IT_peng
这个作者很懒,什么都没留下…
展开
-
JVM - 基础逻辑
该篇博客是 对于我理解JVM 的线索,并未达到供读者观看程度。 下面图片 之前是我画图做的,这次迁移过来,方便自己阅读。 1.GC堆 java 虚拟机所管理的内存中最大的一块。 java 堆是被所有线程共享的一块内存区域 唯一目的:存放内存实例对象,几乎所有的对象实例都在这里分配。 tips:所有的对象分配在堆上面 并不是很绝对。 1.jit 编译器 2.逃逸分析 3.栈上分配 4 标量替换...原创 2020-04-28 17:40:23 · 262 阅读 · 0 评论 -
JAVA 之 疑问 - JVM顺序问题
// 情况一 public class Test1 { // 3 count1 == 0 count2 == 0 private static Test1 test1 = new Test1(); public static int count1=1; public static int count2 = 5; private Test1...原创 2020-03-09 20:41:26 · 219 阅读 · 0 评论 -
JAVA基础 - 锁
1. 锁的分析 悲观锁 乐观锁 synchronize 锁升级 无锁 偏向锁 轻量级锁 1.悲观锁 (ReentrantLock synchronized 等) 描述: 总是假设最坏的情况,每次去拿数据的时候都任务别人会修改,所以每次在拿数据的时候都会上锁, 这样别人想拿这个数据就会阻塞,因为synchronized我们也成为悲观锁。 2.乐观锁 描述:总是假设最好的情况,每次去拿...原创 2020-03-07 21:46:08 · 343 阅读 · 0 评论 -
JAVA基础 - volatile
目录: 不可见性是什么? volatile 可以保证原子性吗? . 重排的示例和作用? Happends - before 是什么? volatile与synchronized 区别? 参考 1.不可见性是什么? 1.1不可见性案例 /** * 多线程修改变量 会出现 修改值之后不可见性 */ public class VisibilityDemo1 { public static...原创 2020-03-01 16:04:48 · 272 阅读 · 0 评论 -
JAVA基础 - ArrayMap
ArrayMap mIdentityHashCode 优势: 1. 相比 hashMap 不会重建 hash映射,不会创建额外的对象。 2. 删除时 缩小存储当前数组 劣势: 1. 不合适大量数据,效率比hashmap 低。 ...原创 2020-02-17 15:01:01 · 1695 阅读 · 0 评论 -
JAVA基础 - SparseArray
SparseArray 关键点: 二分法 - ContainerHelpers.binarySearch 位非运算符(~) 插入新的数据,如果没有增加数组大小 GrowingArrayUtils.insert 插入新的数据,如果没有增加数组大小 GrowingArrayUtils.append 用到 remove delete 才会 mGarbage = true SparseArray...原创 2020-02-14 15:32:23 · 328 阅读 · 0 评论 -
kotlin 疑问和理解
kotlin 疑问和理解 apply also run let 区别用法 var str :StringBuilder= StringBuilder(); var str1 = str.apply { append("aaaaa") 22222 } println(str1) var str2= str.also { ...原创 2020-01-10 16:13:09 · 354 阅读 · 0 评论 -
JAVA基础 - hashMap(JDK1.7)
这些问题你都知道了吗? hashMap 存储的和遍历 出来的 值 顺序是否一致? key == null 怎么存储。 每次容量增大多少 加载因子 hashCode 数据分布 随机性 并发问题 死链问题 数据丢失问题 定义的常亮或变量 /** * The default initial capacity - MUST be a power of two. * 必...原创 2019-11-17 20:29:04 · 317 阅读 · 0 评论 -
JAVA - 多线程 - 线程池开篇
创作的心路历程: 一直都想对多线程进行一个全面的了解,但是内部分享直接对着代码进行分享不太有好。 所以就寻找一个切入点 就找到了 线程池。 线程池 都了解或使用过 包含 重量级锁 轻量级 类似自旋锁 多线程路上的基石 正文 带着问题 进行分析容易迷失代码中。 准备基础知识 各类线程启动方式区别? 线程池必备的基础知识点。 线程池中的线程 什么时候开始 run? 线程池中的线程 如何...原创 2019-08-29 00:08:11 · 227 阅读 · 0 评论 -
JAVA - 线程池- 辅助理解
- 常用的创建线程 (常用的) 继承Thread,再通过Thread的start() (不推荐,不便于管理) 实现Runnable,再通过new Thread(runnable)包装后,start() 扩展Thread类与实现Runnable接口的比较 实现Runnable方式可以避免扩展hread方式由于Java单继承特性的缺点 实现Runnable的代码可以被多个线程共享,适合多个线程处...原创 2019-08-27 23:07:35 · 214 阅读 · 0 评论 -
接口与抽象类的区别
在项目中有什么地方有使用到了 接口 和抽象类。但是只会用,不能说这怎么能行啦。1.抽象类 2.接口 3. 抽象类和接口的区别1. 抽象类1.1 抽象类的定义: 1.2抽象方法: 1.3 抽象类的属性:1.1抽象类的定义: 抽象类必须用 public abstract 修饰的(也可以不用写public 因为默认就是) 如果用 private 或者 p原创 2016-04-20 23:56:38 · 739 阅读 · 0 评论