![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java相关
文章平均质量分 69
记录一些和java语言相关的问题
木星mx
这个作者很懒,什么都没留下…
展开
-
Java操作符学习笔记
和 &&、|| 和 | 其实是两种操作符。这让我一直将单个 & 和 | 当成时逻辑操作符的一种,而事实上这两是按位操作符,是将两个布尔类型值的二进制表示进行按位运算,只不过将布尔类型按位运算后的结果与逻辑操作符一致,而按位运算自然不会有短路作用。之前理解出现错误,特此记录。因此,对于上述3个类型和int类型进行位运算时,想要 i >> a (或 i << a)中,右侧a的值精确生效,则需要控制在[0,31]之间(int类型最多32位),超过这个区间,则取a的二进制表示中的最低5位作为有效值进行位移。原创 2023-09-03 23:05:22 · 491 阅读 · 0 评论 -
synchronized锁升级的过程
1、synchronized实现的基础(1)synchronized是基于Java引用类型的对象实现的,使用时需要指定一个引用类型对象作为锁。(2)当synchronized修饰在方法上时则可以不显式指定对象,修饰静态方法时默认使用的是该类的class对象,修饰在实例方法上时则默认使用当前对象。(3)synchronized的锁升级是基于锁对象头中的Mark World部分。Mark World的设计十分精妙:在非加锁状态时用于存储对象的哈希码和分代年龄以及锁状态;在加锁状态时原先存储哈希码和分原创 2022-05-01 19:34:09 · 1486 阅读 · 0 评论 -
Java垃圾回收中的原始快照和增量更新
JAVA垃圾回收机制的一点理解,知识来源与深入理解JAVA虚拟机第三版,权当抛砖引玉原创 2022-04-06 21:58:13 · 896 阅读 · 0 评论 -
互斥锁与CAS的开销对比
锁机制学习笔记原创 2022-04-03 22:04:45 · 400 阅读 · 0 评论 -
jdk动态代理学习心得
1、什么是动态代理动态代理是一种在运行期生成字节码文件,来对被代理对象执行的方法进行增强的一种机制。比如说有一个我们有一个需求要调用对象A的method方法,使用动态代理增强的步骤如下:1、调用动态代理类提供的方法,将A作为参数传入,获得代理对象B2、使用B调用method方法,此时代码的执行结果就是代理类增强后的结果了2、jdk动态代理的实现步骤1、jdk动态代理的核心:接口InvocationHandler和类Proxy2、定义一个类MyHandler实现InvocationHand原创 2022-03-30 17:31:01 · 525 阅读 · 0 评论 -
String的intern方法探寻
有关String的intern方法的随笔原创 2022-03-25 11:46:53 · 376 阅读 · 0 评论 -
面试题:String为什么要用final修饰,有什么好处
String为什么被final修饰是常见的面试题,本文从底层入手,解释该问题原创 2022-03-06 22:12:03 · 4957 阅读 · 3 评论 -
为win10配置多个jdk的方法
1.下载jdk选择你所需要的jdk下载并安装下载地址:https://www.java.com/zh-CN/2. 打开环境变量窗口右键此电脑,打开属性点击高级系统设置点击环境变量接下来的设置都在系统变量这里配置3. 配置jdk的环境变量首先需要为两个jdk指定安装目录,博主的两个jdk版本分别是8和17,因此配置两个变量,指向jdk安装目录,用数字区分他们点击创建,输入变量名和变量值然后再用同样的方法配置JAVA17_HOME接着就是正式原创 2022-02-21 14:30:40 · 2303 阅读 · 0 评论