Java
verzqli
这个作者很懒,什么都没留下…
展开
-
JVM笔记:Java虚拟机的字节码指令详解
1.字节码Java能发展到现在,其“一次编译,多处运行”的功能功不可没,这里最主要的功劳就是JVM和字节码了,在不同平台和操作系统上根据JVM规范的定制JVM可以运行相同字节码(.Class文件),并得到相同的结果。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,将java...原创 2019-10-29 15:09:11 · 1091 阅读 · 0 评论 -
JVM笔记:Java虚拟机的常量池
这篇文章主要是做一个总结,将查找到相关的资料自己做一个整理,最后会列出查找过的相关资料,感兴趣的可以去翻一翻。常量池class文件常量池(class constant pool)常量池可以理解为Class文件之中的资源仓库,它是Class文件结构中与其他项目关联最多的数据类型,包含了类也是占用Class文件中第一个出现的表类型数据项目。常量池中主要存放两大类常量:字面量(Liter...原创 2019-10-24 11:20:07 · 358 阅读 · 0 评论 -
JVM笔记:Java虚拟机的内存结构
前言开始先说明一个知识点,Java虚拟机的内存结构和内存模型(JMM)其实是两个不一样的东西,前者是下面要讲的堆栈之类的内容,后者可以看这篇文章。由于全局字符串常量池(string pool或string literal pool) 在Java不同的版本中存放在不同的位置,下面以Java8为例。运行时数据区Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个数据区域,每个...原创 2019-10-24 11:18:22 · 141 阅读 · 0 评论 -
多线程笔记---锁(Synchronized)的优化和种类
通过上一篇文章大致了解了锁 (Synchronized),他最大的特征是在同一时间只有一个线程能够获得对象的监视器(monitor),从而进入到同步代码块中执行,其他线程需要在外面等待,表现出一种互斥性。但是这样有一个很明显的的问题,效率低下,那么多线程都在外面等你执行,这时候就需要对锁进行优化,既然一次只能通过一个线程的形式不能改变,那么我们可以对锁进行优化,缩短获取锁的时间。1.乐观锁和...原创 2019-05-12 01:59:29 · 463 阅读 · 0 评论 -
多线程笔记--锁(synchronized)
synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。实现原理和作用synchronized可以保证方法或者代码块在运行时,同一时刻只有一...原创 2019-05-12 02:00:22 · 142 阅读 · 0 评论 -
QQ底部Tab栏高斯模糊效果源码解析
前言前段时间QQ更新后发现下面的Tab栏添加了动态高斯模糊效果,众所周知,高斯模糊这玩意儿比较耗时,动态的模糊效果在安卓的APP中比较少见。在自己猜测了几种做法之后想知道QQ是怎么实现的,于是反编译了一下QQ的apk。鉴于我的逆向基础门都没入,属于只会用一个jadx查查16进制id这种,这里就不班门弄斧介绍了,感兴趣的可以自己去搜搜类似的文章看看。不过这里不得不说QQ的措施做得真好,它里面...原创 2019-08-27 16:47:19 · 876 阅读 · 0 评论