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