-
Java 并发编程之 AtomicMarkableReference
说明 AtomicStampedReference解决了ABA问题,但需要每次修改版本号比较繁琐,AtomicMarkableReference只关心是否有改动
-
Java 并发编程之 AtomicStampedReference
说明 AtomicReference不能保证ABA问题,故引入了版本标记AtomicStampedReference。 代码 public class Atom
-
Java 并发编程之 AtomicReference
说明 AtomicReference是原子的引用类型保证了并发情况下对引用的修改的线程安全。 代码 public class AtomicReferenceDe
-
Java 并发编程之 AtomicBoolean
代码 public class AtomicBooleanDemo { public static void main(String[] args)
-
Java 并发编程之 AtomicInteger AtomicLong
说明 AtomicInteger和AtomicLong原子类,保证了并发时线程安全的累加操作。底层是使用CAS原理。 AtomicInteger 原子整型类 A
-
Java WebSocket The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
版本 使用了javax.websocket的api。 错误信息 java.lang.IllegalStateException: The remote endp
-
Java synchronized 保证可见性
原因 synchronized在代码块执行结束后会将执行结果刷新到主存中。 所以synchronized也和volatile有可见性的作用。 JMM 规范 sy
-
Java 使用 wait 等待会使 synchronized 升级为重量级锁
原因 因为wait方法会让锁对象从owner拥有者变为waitSet队列中等待。 所以必须关联一个Monitor对象,这样synchronized就升级为了重量
-
Java volatile 内存屏障保证可见性和有序性
相关名词 内存屏障:Memory Barrier 写屏障:store fence 读屏障:load fence 保证可见性 写屏障 保证在该屏障之前的代码,对共
-
Java 中 sleep 和 wait 的区别
区别一 sleep是Thread的方法。 wait是Object的方法。 区别二 sleep不需要包裹在synchronized中。 wait必须包裹在sync
-
Java G1 垃圾收集器开启字符串去重
字符串去重 不是对字符串常量池进行去重,因为StringTable本来就是不重复的。 这里的去重,去的是String对象中的char[]或byte[](不同JD
-
JVM 字符串常量池中的垃圾回收
字符串常量池 字符串常量池也存在垃圾回收,当Full GC时,垃圾收集器同样会收集常量池中的String常量字符串。 示例 添加-XX:+PrintString
-
Java11 -Xms -Xmx 设置堆内存大小时的注意事项
注意 因为Java9后默认的垃圾收集器是G1,-Xms和-Xmx设置为2的倍数,不然JVM会自动转为2的倍数。
2021-08-16, Views: 4108 , Topics: Java
-
Java jcmd 命令获取运行中的 Java 进程
命令 直接在命令行中输入jcmd即可,等价于jcmd -l jcmd 与 jps 区别 jps有更多的命令参数,包括可以打印启动参数、打印jstatd监听下的J
-
Java jstat 监控远程服务
前置条件 首先启动jstatd服务,并指定端口(例如:12345端口,默认:1099) 指定 IP 端口 jstat -gcutil -t 5024@127.0
-
Java jps 命令列出 jstatd 监听的服务
默认方式 默认是列出127.0.0.1机器上1099端口上jstatd服务监听的Java服务。IP地址可以换成其他,此处举例用。 jps -mlv 127.0.
-
OpenJDK 配置使用 VisualVM
下载 https://github.com/oracle/visualvm/releases 报错 Cannot find Java 1.8 or higher
-
IDEA 调试 Java 多线程代码
版本 基于IDEA Community 2021.1.3。 打开 Threads 标签页 Debug面板中,点击右上角的Layout Settings,勾选Th
-
Arthas 启动报 ClassNotFoundException com.sun.tools.attach.VirtualMachine
问题 使用Java11命令行方式java -jar启动Arthas,报错找不到VirtualMachine,具体信息如下: PS C:\arthas-bin&g
-
Java 中判断奇偶性的方法
%2 与2取模。 System.out.println(0%2); // 0 System.out.println(1%2); // 1 System.out.
2021-07-17, Views: 3709 , Topics: Java