- 博客(6)
- 收藏
- 关注
原创 synchronized关键字和volatile关键字比较
volatile关键字是线程同步的轻量级实现,所以volatile性能肯定比synchronized关键字要好。但是volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。synchronized关键字在JavaSE1.6之后进行了主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及其它各种优化之后执行效率有了显著提升,实际开发中使用 synchronized 关键字的场景还是更多一些多线程访问volatile关键字不会发生阻塞,而synchroni.
2020-05-23 18:23:28 129
原创 Java虚拟机(JVM) 垃圾回收机制(GC)图解
Java 中的垃圾回收机制只作用域堆(Heap)和方法区中JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收的是新生代~新生代(Eden Space)幸存区(from,to)老年区GC算法引用计数法:复制算法:每次GC后伊甸园区(Eden)和to区会是空的:好处: 没有内存的碎片~坏处:浪费了内存空间~,多了一半空间永远是空 to。假设对象100%存活(极端情况)复制算法最佳使用场景:对象存活度较低的时候;新生区~标记清除算法优点:
2020-05-11 11:55:21 170
原创 JVM 堆内存结构
JVM堆内存划分为以下几种结构:年轻代(Young Generation)老年代(Old Generation)非堆内存就一个永久代(Permanent Generation)注意:堆中的永久区,逻辑上属于堆,但物理上不存在jdk1.6之前:永久代,常量池是在方法区;jdk1.7 :永久代,但是慢慢退化了(去用久代),常量池在堆中;jdk1.8之后 :无永久代,常量池在元空间...
2020-05-11 10:39:27 199
原创 Java Native关键字解释
凡是带了native关键字的,说明java作用范围达不到,回去调用底层C语言的库。会进入本地方栈。调用本地方法接口 JNI。JNI作用:扩展Java的使用,融合不同的编程语言为Java所用,最初:C,C++。它在内存区域专门开辟了一块标记区域:Native Method Stack, 登记native 方法。在最终执行的时候,加载本地方法库中的方法同JNI。比如:Thread类中的start0方法。private native void start0();...
2020-05-11 10:13:19 116
原创 使用QueryRuner出现java.sql.SQLException: Cannot create com.pojo.User:异常
在用QueryRuner对数据库进行查询时发现如下异常:`public class queryRunnerTest { public static void main(String[] args) throws Exception{ QueryRunner queryRunner = new QueryRunner(); Connection conn =...
2020-04-17 11:10:35 1198 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人