排序:
默认
按更新时间
按访问量

多线程下的单例模式

相信大家都对单例模式非常熟悉了,可以利用单例模式重复使用某个对象。有一次面试的时候,问到了单例模式,终于明白自己对线程模式下的单例模式不是很了解。饿汉式单例模式是线程安全的,但是它在加载类时就创建实例,不管实例用不用地到,考虑到效率问题,所以个人更喜欢懒汉式单例模式(延迟加载),于是面试题就根据懒...

2015-04-01 20:52:11

阅读数:487

评论数:0

动态代理

代理设计模式用法广泛,平时接触的最多的就是Spring的AOP了,实际就是动态代理的实现。那怎么做呢? 一、定义接口 public interface Subject { public void doSomething(); }二、定义实际对象,即被代理对象 public class RealS...

2015-03-31 22:13:44

阅读数:355

评论数:0

Java并发学习笔记(九)-原子类AtomicInteger

AtomicInteger能够保证对一个整型的操作是原子性。像i++这个操作不是原子操作,存在竞态条件,所以需要加锁,但是加锁的性能不高,如果仅仅为了对一个整数加1。我们来看下他的实现。 private volatile int value; AtomicInteger本身持有一个...

2015-03-27 19:28:04

阅读数:640

评论数:0

Java并发学习笔记(八)-LinkedBlockingQueue

LinkedBlockingQueue是由链表组成的阻塞队列,先来看demo public class LinkedBlockingQueueDemo { public static void main(String[] args) { ExecutorService es = Exec...

2015-03-27 17:27:46

阅读数:509

评论数:0

Spring 事务机制详解

Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。 Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处...

2015-03-23 23:11:31

阅读数:303

评论数:0

MySQL事务隔离级别详解

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容)        在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级...

2015-03-23 22:17:05

阅读数:273

评论数:0

Spring scope 学习笔记

摘自《Spring 解密》 scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。打个比方吧!我们都是处在社会(容器)中,如果把中学教师作为一...

2015-03-23 17:41:55

阅读数:282

评论数:0

Integer的MIN_VALUE

遇到一个理所当然但是又没注意到的问题。 在JDK中,整形类型是有范围的,最大值为Integer.MAX_VALUE,即2147483647,最小值为Integer.MIN_VALUE -2147483648。 对整形最大值加1,2147483648(越界了),那么此时值为多少呢?结果是-2...

2015-03-06 20:54:04

阅读数:9790

评论数:1

Java并发学习笔记(七)-ArrayBlockingQueue

Java并发包concurrent里提供了3个阻塞队列,ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue。阻塞队列通常用于生产消费模式,满队列时生产者阻塞,空队列时消费者阻塞。 (一) ArrayBlockingQueue A...

2015-02-20 16:03:57

阅读数:905

评论数:1

Java并发学习笔记(六)-互斥性和内存可见性

我们都知道,进程是个自封闭的运行环境,它有自己完整的一套运行时资源,特别是有自己的内存地址空间。进程中的线程共享进程的资源,如内存地址空间,文件句柄等。但线程又有自己的计数器、栈、本地变量,现代操作系统大多以线程,而非进程,作为基本调度单元。在大多平台中,JVM以单进程方式执行,Java线程共享J...

2015-02-16 15:13:43

阅读数:951

评论数:0

java.lang.IllegalMonitorStateException

java.lang.IllegalMonitorStateException 违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。 //计算线程 public class Calculator extends Th...

2015-02-16 07:49:05

阅读数:1408

评论数:0

Java并发学习笔记(五)-显示锁

究竟采用内置锁还是显示锁?性能上,java6以后,两者性能比较接近。不过程序运行平台差别大,生产环境可能在必要的时候进行尝试才能确定性能的优缺。显示锁的可轮询,可定时,可中断也是我们选择显示锁的原因。但是内置锁也有比较大的优势。开发人员熟悉内置锁,内置锁简洁紧凑,程序中已经大量使用内置锁,最主要的...

2015-02-15 09:19:39

阅读数:655

评论数:0

MongoDB入门(三)-Java操作MongoDB

对MongoDB进行操作,可以利用Mongo shell,也可以使用MongoDB驱动。MongoDB提供C/C++、C#、Java、Node.js、PHP、Python、Ruby、Scala等多种语言的驱动。下面就使用Java驱动操作MongoDB进行介绍。

2015-02-09 23:32:42

阅读数:379

评论数:0

MongoDB入门(二)-CRUD

MongoDB是以文档的形式保存数据的,这种文档是BSON格式的文档。BSON是一种带有类型信息的JSON的二进制表示格式。在文档中,域值只能是BSON格式数据,可以是字面量,可以是数组,也可以是其它文档。MongoDB用集合来存储数据,所有的增删改查都是针对集合的操作。 (一)插入数据 在Mon...

2015-02-09 00:57:53

阅读数:331

评论数:0

MongoDB入门(一)-安装

安装MongoDB很简单,只需要几步 1、建立数据目录 缺省情况下是 "\data\db",Window下就是"C:\data\db" 2、你也可以制定你自己的数据目录。 mongod.exe --dbpath "D:\test\mongodb\d...

2015-02-05 23:48:30

阅读数:390

评论数:1

访问私有变量,私有方法

我们都知道Java的访问权限分为public,包,protected,privated。没有相应的访问权限是无法访问类,对象,变量,方法等。我们都知道单例模式,是把构造方法私有化,其它类就无法创建该类的新对象,只能获得已经产生的对象。但是通过反射,我们可以访问到原来无法访问的变量,方法等。 pa...

2015-02-04 17:03:49

阅读数:1499

评论数:0

Java并发学习笔记(四)-栅栏CyclicBarrier

闭锁是一次性对象,一旦进入终止状态,就不能被重置,它是用来启动一组相关的操作,或者等待一组相关的操作结束。 栅栏跟闭锁有点类似,它能阻塞一组线程直到某个时间发生,但是这里有个很大的区别,在栅栏里,只有这组线程都到达栅栏位置时,才能继续执行 栅栏和闭锁有以下区别 栅栏可重复使用,在计数器为0的时候,...

2015-02-03 21:54:02

阅读数:4051

评论数:0

Java学习笔记-JVM内存管理

一、Java内存区域 Java虚拟机把运行时数据区划分为几个不同的区域。 线程私有的,即每一条线程都会有自己独立的内存空间,有以下几个部分: 程序计数器虚拟机栈本地方法栈 所有线程共享的内存空间,包括: 堆方法区 1、线程私有数据区 程序计数器 程序计数器比较小,保存当前线程所执行字节...

2015-01-29 19:10:43

阅读数:421

评论数:0

Java学习笔记-泛型及类型擦除

Java泛型代码在反编译后已经没有泛型,被替换为原来的类型,并且在相应读取数据的地方,插入了强制转换代码。所以运行时,ArrayList<Integer>与ArrayList<String>就是相同的类型。泛型在java中,实际上是一颗语法糖,实现方式为类型擦除,是一种伪泛...

2015-01-28 21:17:24

阅读数:365

评论数:1

MappedByteBuffer的映射内存的释放

MappedByteBuffer的内存释放,主要由垃圾回收引起的。 首先,来看一下Oracle的bug list,这是一个无法修复的bug,所以在使用MappedByteBuffer的时候一定要注意内存的释放。 第一个case是: import java.io.File; import ...

2015-01-20 16:17:14

阅读数:5721

评论数:0

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