自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

心中有侠

回顾基础,温故知新

  • 博客(7)
  • 收藏
  • 关注

转载 理解偏向锁,轻量锁,重锁

java中每个对象都可作为锁,锁有四种级别,按照量级从轻到重分为:无锁、偏向锁、轻量级锁、重量级锁。并且锁只能升级不能降级。 在讲这三个锁之前,我先给大家讲清楚自旋和对象头的概念。自旋现在假设有这么一个场景:有两个线程A,B在竞争一个锁,假设A拿到了,这个时候B被挂起阻塞,一直等待A释放了锁B才得到使用权。在操作系统中阻塞和唤醒是一个耗时操作,如果A在很短的时间内就释放了锁,当这个...

2018-11-07 00:29:28 1931 1

原创 volatile的两条实现原则

1.Lock前缀指令会引起处理器缓存回写到内存。2.一个处理器的缓存回写到内存中会导致其他处理器的缓存无效。

2018-11-07 00:13:16 294

原创 堆外内存溢出

配置JVM参数时,不仅仅要考虑实际内存来设置-Xmx等参数,还要考虑到直接内存!因为,直接内存并不是JVM运行时数据区的一部分,但是会被经常使用。如果忽略了它,很可能会造成明明jvm内存还是足够的,但是却内存溢出了。原因是,各个内存区域的综合大于物理内存的限制啦。...

2018-11-07 00:06:46 635

原创 Java中的NIO类

Java在jdk1.4中新加入了NIO(new input/output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,他可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer对象作为这块内存的引用来操作。这样能在一些场景中显著提高性能。因为避免了在Java堆和Native堆中来回复制数据。...

2018-11-07 00:01:22 523

原创 java字面量和符号引用

1.字面量字面量就是直接量,举个例子。String str = "str";int i = 1;"str"和1都是字面量,有别于变量。 2.符号引用符号引用就是某个变量,在编译的时候,无法确定其内存地址。String str = "Hello World!"System.err.println(str);第二行代码中的str在编译的时候就会编译为符号引用。...

2018-11-06 23:55:17 3145

原创 Java不可变类

1.不可变类:当类的实例一经创建,其内容便不可改变。 2.Java 中八个基本类型的包装类和 String 类都属于不可变类,而其他的大多数类都属于可变类。 3.不可变类都是线程安全的。...

2018-11-06 23:49:30 190

原创 Java中的String,StringBuffer,StringBuilder比较

1.执行效率:StringBuilder  >  StingBuffer  >  StringString是字符串常量,每次更改某个字符串,实际上是创建了一个新的字符串,然后重新指向这个新的字符串。如果操作频繁的话,会产生很多无引用的对象,也就是会触发JVM的垃圾回收(GC),进而导致效率变低。StringBuffer和StringBuilder它们属于变量,是可以改变的对象,...

2018-11-06 23:43:33 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除