- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 使用线程池与非线程池的区别
我们编写一段示例代码,来验证下线程池与非线程池的区别://线程池和非线程池的区别public class ThreadPool { public static int times = 100;//100,1000,10000 public static ArrayBlockingQueue arrayWorkQueue = new ArrayBlocking...
2019-05-13 10:31:58 841
原创 Java虚拟机垃圾回收机制
垃圾收集垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。判断一个对象是否可被回收1. 引用计数算法给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。两个对象出现循环引用的情况下...
2019-05-13 10:03:59 243
原创 shell基础
1、shell介绍shell 俗称叫做壳,计算机的壳层,和内核是相对的,用于和用户交互,接收用户指令,调用相应的程序。因此,把shell分为2大类1.1、图形界面shell(Graphical User Interface shell 即 GUI shell)也就是用户使用GUI和计算机核交互的shell,比如Windows下使用最广泛的Windows Explorer(Wind...
2019-05-07 14:38:07 1507
原创 JAVA new对象过程
我们都知道,创建对象是由 new关键字调用构造方法 返回类实例。先实例化对象,再把对象初始化。例如 : Person jack = new Person();这句话到底做了什么事情呢 ? 其实就是讲对象的初始化过程。1、 new 用到了Person.class,所以会先找到Person.class文件,并加载到内存中(用到类中的内容类就会被加载) 2、执行该对象的static代码块(...
2019-05-06 10:52:05 6609
原创 JAVA反射基础
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。【翻译于 官方文档】本篇将从以下几个方面讲述反射的知识:calss的使用 方法的反射 构造函数的反射 成员变量的反射一、什么是class类在面向对象的世界里,万物皆对象。类是对象,...
2019-05-06 10:07:19 125
原创 Java的try-catch-finally与return的关系
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。 在...
2019-05-05 17:20:27 185
原创 ConcurrentHashMap详解
Java7 基于分段锁的ConcurrentHashMapConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,所以要复杂一些。整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都会将其描述为分段锁。注意,行文中,我很多地方用了“槽”来代表一个 segment。简...
2019-05-05 17:17:42 932
原创 AtomicInteger源码分析
悲观锁与乐观锁我们都知道,cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据。当一个线程被挂起时,加入到阻塞队列,在一定的时间或条件下,在通过notify(),notifyAll()唤醒回来。在某个资源不可用的时候,就将...
2019-05-05 17:11:37 178
原创 JAVA中AQS详解
ReentrantLock、ReentrantReadWriteLock底层都是基于AQS来实现的。那么AQS的全称是什么呢?AbstractQueuedSynchronizer,抽象队列同步器。ReentrantLock内部包含了一个AQS对象,也就是AbstractQueuedSynchronizer类型的对象。这个AQS对象就是ReentrantLock可以实现加锁和释放锁的关键性的...
2019-05-05 17:05:09 967 1
原创 Java中CAS详解
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁.锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volatil...
2019-05-05 16:56:26 215
原创 JAVA中锁的分类
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指多...
2019-05-05 16:18:10 153
elasticsearch分词器插件
2018-11-27
sqlite-shell-win32-x86: sqlite3.exe
2018-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人