Wesley13 Wesley13
4年前
volatile 关键字的使用场景及其原理
一、 Java线程的内存工作模型在当前的Java内存模型下(JVM1.2之后),线程(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fbaike.baidu.com%2Fitem%2F%25E7%25BA%25BF%25E7%25A8%258B)可以把变量保存在本地内存(
Wesley13 Wesley13
4年前
java面试题汇总,不断更新中。。。
JVM,并发,锁相关:1.请你谈谈对volatile的理解,volatile是否存在伪共享问题。2.cas你知道吗?3.原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?4.公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。5.CountDownLatch、CyclicBarrier、S
桃浪十七丶 桃浪十七丶
4年前
Linux,Ubuntu20.04LTS环境下安装JDK1.8和IDEA2021
本文内容是在x64基础上进行实现。1.下载JDK选择jdk8u291linuxx64.tar.gz。2.下载完毕解压配置这里默认下载的路径是在Downloads在/usr/lib文件夹里创建jvm文件夹bashcd/usr/libmkdirjvm到Downloads目录下,解压下载好的jdk到目标文件bashcdDownloadssudotar
Wesley13 Wesley13
4年前
java内存结构笔记
此篇仅作笔记,详情参考:https://my.oschina.net/uwith/blog/3110227(https://my.oschina.net/uwith/blog/3110227)栈帧内部的结构:局部变量表、操作数栈(比如我们去赋值或者计算都会操作操作数栈)、动态链接、返回链接。jvm为对象开辟空间的两种方式:1、指针碰撞:如果
Stella981 Stella981
4年前
JVM虚拟机调优实战(3)进阶调优篇
1.JVM内存分配与回收1.1MinorGc和FullGC有什么不同呢?   新生代GC(MinorGC):指发生新生代的的垃圾收集动作,MinorGC非常频繁,回收速度一般也比较快。   老年代GC(MajorGC/FullGC):指发生在老年代的GC,出现了MajorGC经常会伴随至少一次的MinorGC(并非绝对)
Wesley13 Wesley13
4年前
CMS垃圾回收过程
1.总体介绍:CMS(ConcurrentMarkSweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上\XX:UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。2.CMS
Wesley13 Wesley13
4年前
C位运算中 异或运算符的 几点注意与示例
C语言的异或运算的运算原理应用。需要注意的是位运算是符合交换律,结合律及分配律的/AllRightsReserved20072015
Wesley13 Wesley13
4年前
Java面试解析总结:Java+Redis+数据库+算法与数据结构+分布式
!(https://oscimg.oschina.net/oscnet/up760e80c47ac2161a4a2fb57889bd590e1ff.png)金九银十即将到来,给大家整理了今年来最经典的面试真题1000道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、Java并发、JVM,Redis、设计模
Stella981 Stella981
4年前
OpenJDK9编译作业
学习jvm,有必要学会自己编译一个jdk。《深入理解java虚拟机》里的“实战:自己编译JDK”用的是OpenJDK7,按照书本上的指导我没有编译成功。于是果断上官网 http://openjdk.java.net/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fopenjdk.java
Wesley13 Wesley13
4年前
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。构造函数publicHelloA(){//构造函数}关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造