
java学习笔记
咸鱼斯内克
咸鱼还是要有的,万一臭了呢
展开
-
Java虚拟机笔记(一)-java内存
看了深入理解java虚拟机做的一些笔记,觉得对我这个萌新来讲比较有用的,日后再进行完善程序计数器: 是一块小的内存空间,可以看成一个当前线程所执行的字节码的行号指示器。字节码解释器工作室就是改变这个计数器的值来选取下一条需要执行的字节码指令,比如分支,循环,跳转,异常处理,线程恢复等基础功能。 线程正在运行一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,多线程是通过线程轮流切换原创 2017-06-28 14:57:51 · 289 阅读 · 0 评论 -
浅谈volatile变量的理解
volatile概念谈到volatile,理解原子性和易变性是不同的概念这一点很重要,volatile是轻量级的锁,它只具备可见性,但没有原子特性。如果你将一个域声明为volatile,那么只要对这个域产生了写操作,所有的读操作都可以看到这个修改,即便使用了本地缓存也一样,volatile会被立即写入到主内存中,而读的操作就发生在主内存中。在非volatile域上的原子操作不必刷新到主内存中,所以读原创 2017-03-31 09:53:16 · 2317 阅读 · 0 评论 -
线程池源码解析与原理探究
Java中的ThreadPoolExecutor类 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如翻译 2017-04-24 17:47:11 · 293 阅读 · 0 评论 -
Java并发编程:线程池的使用
请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3932921.html转载 2017-03-31 11:33:30 · 226 阅读 · 0 评论 -
ReentrantLock(三):公平锁与非公平锁
本篇主要承接上篇文章,简单介绍ReentrantLock的部分API应用和公平锁与非公平锁的区别。在ReentrantLock中很明显可以看到其中同步包括两种,分别是公平的FairSync和非公平的NonfairSync。 可以看看ReentrantLock的源码构造方法 public ReentrantLock() { sync = new NonfairSync原创 2017-04-26 11:52:43 · 1835 阅读 · 1 评论 -
ReentrantLock(二):正确使用Condition实现等待与通知
关键字synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模式。 类ReentrantLock同样可以实现该功能,但是要借助于Condition对象。它具有更好的灵活性,比如可以实现多路通知功能,也就是在一个Lock对象里面可以创建多个Condition(对象监视器)实例,线程对象可以注册在指定Condition中,从而有选择性的进行线程通知原创 2017-04-26 09:30:21 · 8631 阅读 · 0 评论 -
ReentrantLock(一):谈谈ReentrantLock与synchronized
该篇简单介绍ReentrantLock 和synchronized的区别,介绍比较浅的ReentrantLock API应用ReentrantLock 拥有Synchronized相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。(换句话说,当许多线程都想访问共享资源时,JVM 可以花更少的时候来调度线程,把更多时间用在执行原创 2017-04-25 16:39:36 · 443 阅读 · 0 评论 -
join方法与countDownLatch与CyclicBarrier的区别
join方法:当前线程中调用thread.join()会导致当前线程阻塞,此时只有当thread线程执行完后,当前线程才能继续往下执行。 join的工作原理是,不停检查thread是否存活,如果存活则让当前线程永远wait,直到thread线程终止 可以看看join的源码: public final synchronized void join(long l) throws In原创 2017-04-27 11:25:38 · 839 阅读 · 0 评论 -
String ,StringBuffer ,StringBuild 区别
>转载自http://blog.youkuaiyun.com/qh_java/article/details/46382265java学习有一段时间了,但学习的东西都是框架等东西,java基础知识有点遗忘,所以重温一下java基础知识,写写文章里面有错的希望大家指正共同进步~~一、String 大家经常会说使用“+”号连接String 字符串比StringBuffer慢,String类对象为不可变对象,一旦转载 2017-05-02 17:20:16 · 374 阅读 · 0 评论 -
探寻LinkedList,HashMap,TreeMap的区别
探寻LinkedList,HashMap,TreeMap的区别: - 散列与散列码 - HashMap快的原因 - LinkedList - TreeMap散列与散列码:散列 的价值主要在于速度,键没有按照任何特定顺序进行保存,所以只能进行简单的线性查找,而线性是最慢的查询方式了。存储一组元素最快的数据结构是数组,可以通过键的对象生成一个数字,最为数组的下标,这个数字就是散列码,数组并不保存原创 2017-03-29 10:03:21 · 627 阅读 · 0 评论