【Java进阶】
文章平均质量分 85
viclee108
即使不能成为巨人,也要始终站在巨人的肩膀上
展开
-
Java的Atomic类分析
Atomic包介绍 Java1.5的Atomic包名为java.util.concurrent.atomic。这个包提供了一系列原子类。这些类可以保证多线程环境下,当某个线程在执行atomic的方法时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个线程执行。Atomic类在软件层面上是非阻塞的,它的原子性其实是在硬件层面上借助相...原创 2016-05-08 18:53:52 · 12789 阅读 · 0 评论 -
Java自旋锁
自旋锁的由来 计算机系统资源总是有限的,有些资源需要互斥访问,因此就有了锁机制,只有获得锁的线程才能访问资源。锁保证了每次只有一个线程可以访问资源。当线程申请一个已经被其他线程占用的锁,就会出现两种情况。一种是没有获得锁的线程会阻塞自己,等到锁被释放后再被唤起,这就是互斥锁;另一种是没有获得锁的线程一直循环在那里看是否该锁的保持者已经释放了锁,这就是自旋锁。 自旋锁的优缺点...原创 2016-05-05 23:29:16 · 4399 阅读 · 0 评论 -
Java动态代理
代理模式 在讲解动态代理之前,先来简单说一下代理模式。代理模式的作用是为某个对象提供一个代理以控制对这个对象的访问。代理对象和被代理对象需要实现相同的接口,调用者直接与代理对象交互,被代理对象对调用者来说是透明的。某些情况下,一个对象不希望或者不能被外部直接引用就可以考虑使用代理模式。 代理模式涉及到三个部分:抽象接口:代理对象和被代理对象的共有接口; 代理...原创 2016-04-07 21:12:41 · 1130 阅读 · 0 评论 -
深入理解Java的ThreadLocal
Android中的多线程并发场景,通常是通过线程同步的方式去保证线程安全。对于共享资源,需要通过syncronized或者Lock等线程同步方法实现资源的互斥访问,才能确保数据访问的正确性。 今天要介绍的ThreadLocal为解决多线程并发问题提供了一种新思路。想必熟悉Java的同学对ThreadLocal并不陌生,今天我们就一起来探讨ThreadLocal。 ...原创 2016-07-18 22:19:27 · 1266 阅读 · 0 评论 -
Java单例模式——并非看起来那么简单
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了...原创 2016-07-20 23:48:19 · 88796 阅读 · 17 评论 -
谈一谈Java中的Error和Exception
Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。Error和Exception的区别Error类一般是指与原创 2015-07-29 09:45:39 · 24776 阅读 · 5 评论 -
关于Java中Serializable的一些问题
在面试中我常常会考察Serializable相关的问题,我认为这是一个很基础的知识点,是对候选人基础是否扎实的考察。但是结果有点出乎意料,候选人往往只是知道它和序列化有关,而对于其中的细节以及更深层次的原理都不是很清楚。因此,我决定整理一下Serializable相关的一些问题,希望能够对不了解的同学有所帮助。 一个类实现Serializable接口后可以被序列化。这...原创 2019-05-15 00:04:48 · 2027 阅读 · 0 评论