![](https://img-blog.csdnimg.cn/20201218112248634.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 77
java相关知识总结
水滴-银弹
希望以后的生活像彩虹一样被别人仰望
展开
-
java 枚举类
1 枚举类型初探枚举类型,其语法总让人觉着怪怪的,如下:简单的一行,就定义了包含四个值的枚举类型,缺总让人觉着语法有点怪异。而在使用时:就可以得到输出:那我们简单的一行定义中,到底发生了什么?枚举类型在编译时是怎样实现的?它还有着怎样的特点?我们将会分几节对Java中的枚举类型进行介绍。2 枚举产生之前如果不使用枚举,我们要对“春夏秋冬”这四个值分别赋予一个数字,则常见的操作为:...转载 2021-04-19 14:41:35 · 218 阅读 · 0 评论 -
2021-01-25
目录join调用了wait,但为什么不需要主动调用notify或notifyAll?wait一定需要notify或notifyAll吗?notify或notifyAll的原理是什么?join调用了wait,但为什么不需要主动调用notify或notifyAll?一般来说wait必须和notifyAll配合使用来释放锁和恢复锁,那我们来看一下join源码,发现并没有调用notify或notifyAll,来试主线程重新获得锁。public final synchronized void原创 2021-01-25 17:21:41 · 143 阅读 · 0 评论 -
关于join() 是否会释放锁的一些思考
关于join() 是否会释放锁的一些思考# 首先从一个很有意思的问题开始: - 问 : Thread 的join() 方法是否会释放锁? - 答: 会!# 如果一切到这里就结束了,那可能也就没有这篇小记了,但是我的脑子却冒出了一些奇怪的想法: - 释放哪个对象的锁呢? - 难道是释放父线程所持有的所有对象的锁? -- 其实如果看了源码,很容易明白释放的是运行(这个地方可能有些歧义,但是我也不知道怎么说最好)join()方法的那个线程对象的锁,不过这些都是后话,我们且往下转载 2021-01-25 16:17:09 · 315 阅读 · 0 评论 -
JVM垃圾回收整理(初级)
目录垃圾回收总结1、Serial GC(复制算法)2、Serial Old GC(标记-整理算法)3、ParNew GC(复制算法)4、Parallel Scavenge GC(复制算法)5、Parallel Old GC(标记-整理算法)6、CMS GC(标记-清除算法)6.1 Initial Mark(初始标记)6.2 Concurrent Mark(并发标记)6.3 Concurrent Preclean(并发预清理)6.4 Final Remark(.原创 2021-01-22 21:51:00 · 342 阅读 · 0 评论 -
字节码学习案例
public class MovingAverage { private int count = 0; private double sum = 0.0D; public void submit(double value) { this.count++; this.sum += value; } public double getAvg() { if (0 == this.count) { ..原创 2021-01-06 18:20:26 · 202 阅读 · 0 评论 -
Java字节码
目录1、字节码是什么2、为什么要用字节码3、怎么用字节码1、字节码是什么Java 中字节码英文为bytecode,由单字节(byte)的指令组成,理论上最多支持2的8次方(256)个操作码,但java中只使用200左右的操作码,且这些字节码作为JVM的指令集,供JVM加载并执行(换句话说java字节码就是JVM执行的指令格式,就像汇编语言和机器语言一样)补充:操作码主要由类型前缀和操作名称组成,根据指令性质,主要分为4类:栈操作指令;程序流程控制指令;对象操作指令;运算以及类型转换指原创 2021-01-06 16:52:49 · 466 阅读 · 0 评论 -
HashMap源码学习记录(一)
1、HashMap是什么HashMap是Map的一种实现类,那Map又是什么呢?Map是描述一系列的key和value一一对应的数据结构;而HashMap则是实现了key和value键值对存储的容器及一些列相关操作(具体操作可见本文的源码中关键方法),且key和values都允许为null,说了这么多是不是还是不清楚他到达是什么?那下来就是干货,他是:A、整体是一个数组;B、数组每个位置是一个链表;但当键值对个数大于树阀值TREEIFY_THRESHOLD时,则数组中每个位置存储的是树C、链表每个节原创 2020-12-18 17:27:05 · 142 阅读 · 1 评论 -
Object-hashCode算法笔记
hashCode()是什么Object的hashCode()通过JVM虚拟机来实现其算法,主要为对象计算出一个hash值hashCode()的作用及怎么用:通过该hash值可以高效的对两个对象进行比较,比较逻辑如下: if (A.hash != B.hash){ A != B }else { if (A.equals != B.equals) { A != B } else { A == B原创 2020-12-18 12:14:09 · 346 阅读 · 0 评论