
java
文章平均质量分 64
屑十六
这个作者很懒,什么都没留下…
展开
-
synchronized锁升级
轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。轻量级锁对使用者是透明的,即语法仍然是 synchronized假设有两个方法同步块,利用同一个对象加锁1.创建 锁记录(Lock Record)对象,每个线程的栈帧都会包含一个锁记录的结构,内部可以存储锁定对象的Mark Word。原创 2024-11-01 16:14:55 · 1170 阅读 · 0 评论 -
多线程中Monito、对象头的作用
64位对象头由Mark Word、klass pointer两部分组成,如果对象是数组,则还要加上数组长度,即三部分组成。age:Java GC标记位对象年龄,4位的表示范围为0-15,因此对象经过了15次垃圾回收后如果还存在,则肯定会移动到老年代中。biased_lock:偏向锁标记,为1时表示对象启用偏向锁,为0时表示对象没有偏向锁。原创 2024-10-31 16:31:06 · 298 阅读 · 0 评论 -
Stream流
因为原来的Stream流只能使用一次,stream1在之前已经用过了,返回一个新的流给了stream2,原来的流已经关闭了,因此无法再次使用stream1获取流。当map方法执行完毕之后,流上的数据就变为了整数,所以在下面forEach当中:s依次表示流里面的每一个数据,这个数据现在就是整数了。修改Stream流中的数据,并不会影响原来的集合或者数组中的数据。apply的形参:流中的数据的个数,要跟数组的长度保持一致。中间方法,返回新的Stream流,原来的Stream流。原创 2023-05-22 09:37:11 · 655 阅读 · 1 评论 -
Lambda表达式
这里使用Arrays类的sort方法作为示例。原创 2023-05-17 15:49:40 · 121 阅读 · 0 评论 -
java多线程
文档参考和。原创 2023-04-11 12:04:43 · 136 阅读 · 1 评论 -
java注解
注解内置注解1.@Override2.@Deprecated3.@SuppressWarnings(value=" ")元注解(meta-annnotation)1.@Target(value ={} )2.@Retention(value = )3.@Documented4.@Inherited自定义注解内置注解1.@Override //重写注解 @Override public String toString() { return super.toString()原创 2022-03-20 16:18:22 · 225 阅读 · 0 评论