加载中
阅读java.util.concurrent.SynchronousQueue源码Note

java.util.concurrent.SynchronousQueue 同步队列,主要用去生产与消费! 采用CAS方式来实现并发控制,sun.misc.Unsafe 基于公平性做了两种实现,一公平策略,使用队列实现;二非公平策略,使...

2020/06/02 00:32
68
阅读java.util.concurrent.PriorityBlockingQueue源码Note

java.util.concurrent.BlockingQueue 在Queue的基础增加额外的功能:遍历队列时,若无元素则阻塞等待;插入元素时,无额外的空间则等待空间释放。 其方法可分为四种形式:根据对相同操作(对操...

2020/05/03 22:40
78
阅读com.sun.jmx.remote.internal.ArrayQueue源码Note

ArrayQueue 底层使用数组存储 添加时放置于tail指定的位置,从尾部开始添加,尾部满时,继续从头部开始添加,直到head位置,此时队列已满 head 和tail 操作可以在数组上循环。 public boole...

2020/04/25 23:02
104
阅读java.util.ArrayDeque源码Note

ArrayDeque resizable-array implemention of Deque 无容量限制 非线程安全。若在多线程中使用,需要额外的同步设置 用作stack时,比java.util.Stack快 用作Queue时,比java.util.LinkedLis...

amp
2020/04/25 23:01
28
阅读java.util.PriorityQueue源码Note

java.util.PriorityQueue Binary Heap: https://www.cnblogs.com/gaochundong/p/binary_heap.html https://en.wikipedia.org/wiki/Binary_heap https://www.youtube.com/watch?v=g9YK6sftDi0...

2020/04/24 15:06
70
阅读java.util.LinkedList源码Note

Queue 队列 这些操作都是在头部进行操作,但队列内的排序则不尽然相同,可以FIFO,也可以LIFO, 队列、栈! 操作 抛出异常 返回特定值 Insert add(容量限制) offer Remove remove(queue为...

2020/04/20 21:56
99
阅读java.util.ArrayList源码Note

随笔,格式不工整!看到一块则记录一点 类图: 笔记 方法 List#toArray() 返回类型是Object List#toArray(T[] a)返回类型和集合的元素类型一致,如果数组空间比集合大,则原数组返回;否则会...

2020/04/14 13:36
59
Class JavaLaunchHelper is implemented in two places

Mac 上的老bug,jdk版本 java version "1.8.0_144", 在java启动时使用了-javaagent参数时会触发。 此问题通过升级jdk版本即可。 You can find all the details here: IDEA-170117 "objc: Cl...

字节码增强技术探索

1.字节码 1.1 什么是字节码? Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文...

2020/03/31 17:37
82
JVM规范系列第2章:Java虚拟机结构

本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种(译者注:包括 Oracle 公司自己的 HotSpot 和 JRockit 虚拟机)被广泛使用的虚拟机实现。 记住:JVM规范是一种高度抽象行为的描述,...

2020/03/28 22:54
73
JFR-Java应用的黑匣子

JFR是什么 JSR,全称Java Flight Recorder,翻译过来就是java 飞行记录器。和飞机上的黑匣子类似,用于记录Java应用运行过程中的各种事件及数据。而后,使用相应的工具来分析产生的数据,一般使...

2020/03/27 10:50
726
【微服务】序列化协议 In Action

本文就常见的几种序列化协议介绍下简单的实践 ProtoBuf ProtoBuf 是有谷歌开源,可以跨语言,可编译成各种语言。可称之为一个IDL, Interface description language. 下载编译器,protoc prot...

Java基础-class.getXXName的区别

以下会输出什么?是否所有的类输出的结果都是一样的? Object o1 = .... o1.getClass().getSimpleName(); o1.getClass().getName(); o1.getClass().getCanonicalName(); 我们来实验下 class ...

2020/03/23 18:04
49
JVM规范系列开篇:为什么要读JVM规范?

许多人知道类加载机制、JVM内存模型,但他们可能不知道什么是《Java虚拟机规范》。对于Java开发来说,《Java虚拟机规范》才是最为官方、准确的一个文档,了解这个规范可以让我们更深入地理解...

2020/03/16 22:47
111
Java NIO系列教程(一) Java NIO 概述

Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和...

2020/03/13 22:05
102
常用 Java 静态代码分析工具的分析与比较

引言 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代...

2020/03/11 22:04
95
重学Java-一个Java对象到底占多少内存

重学Java-一个Java对象到底占多少内存 内存是程序员逃不开的话题,当然Java因为有GC使得我们不用手动申请和释放内存,但是了解Java内存分配是做内存优化的基础,如果不了解Java内存分配的知识...

2020/03/10 22:12
137
Chrome扩展-跨域请求

跨域指的是Javascript通过XMLHttpRequest请求数据时,调用JavaScript的页面所在的域和被请求页面的域不止。对于网站来说,浏览器处于安全考虑是不允许跨域的。另外,当域相同但端口或者协议不...

2020/03/09 22:31
488
Chrome扩展-自定义脚本操作浏览器内容

上一篇简单介绍了下Chrome扩展开发的基础知识,详情参考:Chrome扩展-Hello World。本篇将简单介绍下如何通过扩展操作浏览器的内容。 工作中,经常碰到,浏览的网站内容,有些功能不支持,或...

2020/03/08 21:15
800
Chrome扩展-Hello World

在工作中,经常使用谷歌浏览器,其扩展无比丰富。由于工作需要,我尝试开发了一些小的扩展,助力提高工作效率。 以下为简单分享下谷歌扩展的知识,并写一个Hello World! Chrome扩展分为扩展和...

2020/03/07 17:22
332

没有更多内容

加载失败,请刷新页面

返回顶部
顶部