![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试题
awesome_go
这个作者很懒,什么都没留下…
展开
-
volatile 伪共享问题
伪共享 false sharing,顾名思义,“伪共享”就是“其实不是共享”。那什么是“共享”?多CPU同时访问同一块内存区域就是“共享”,就会产生冲突,需要控制协议来协调访问。会引起“共享”的最小内存区域大小就是一个cache line。因此,当两个以上CPU都要访问同一个cache line大小的内存区域时,就会引起冲突,这种情况就叫“共享”。但是,这种情况里面又包含了“其实不是共享”的“伪共享”情况。比如,两个处理器各要访问一个word,这两个word却存在于同一个cache line大小的区域里,.原创 2020-08-20 09:43:45 · 880 阅读 · 0 评论 -
JVM故障分析及性能优化系列之七:使用MAT的Histogram和Dominator Tree定位溢出源
JVM故障分析及性能优化系列文章JVM故障分析及性能优化系列之一:使用jstack定位线程堆栈信息JVM故障分析及性能优化系列之二:jstack生成的Thread Dump日志结构解析JVM故障分析及性能优化系列之三:jstat命令的使用及VM Thread分析JVM故障分析及性能优化系列之四:jstack生成的Thread Dump日志线程状态JVM故障分析及性能优化系列之五:常见的Thre...原创 2020-02-28 14:10:25 · 320 阅读 · 0 评论 -
java 值传递还是引用的总结
一 为什么 Java 中只有值传递?首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。 它用来描述各种程序设计语言(不只是Java)中方法...原创 2019-01-29 11:25:12 · 1048 阅读 · 1 评论 -
定时任务的原理
在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor。下面为大家分析一下这两个技术的底层实现原理以及各自的优缺点。一、Timer1. Timer的使用class MyTask extends TimerTask{ @Override public void run() { S...原创 2019-09-10 19:53:53 · 1235 阅读 · 0 评论 -
浅析MySQL事务中的redo与undo
我们都知道事务有4种特性:原子性、一致性、隔离性和持久性,在事务中的操作,要么全部执行,要么全部不做,这就是事务的目的。事务的隔离性由锁机制实现,原子性、一致性和持久性由事务的redo 日志和undo 日志来保证。所以本篇文章将讨论关于事务中的redo和undo的几个问题:redo 日志与undo日志分别是什么? redo 如何保证事务的持久性? undo log 是否是redo log的...原创 2019-09-20 17:03:45 · 304 阅读 · 0 评论