![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 73
等待戈多儿
这个作者很懒,什么都没留下…
展开
-
程序示例说明Java泛型到底是什么
Java泛型到底什么,在看《数据结构与算法分析》一书时我不禁问自己。其书中介绍甚为抽象,本人就想试着用程序实验一下java泛型。参考了小顾问@cnblogs的关于java泛型的博文。本人的理解Java泛型其实就是参数类型的类型。泛型基础/** * * @author wqh * 泛型基础 */ public class GenericDemo1 { /** * 未使用泛原创 2015-06-29 15:33:15 · 545 阅读 · 0 评论 -
分享一个volatile实现的双检锁单例模式
/** * DCL(DubleCheckedLock)单例模式 */ public class Singleton { private volatile static Singleton instance; public static Singleton getInstance() { if (instance == null) { synchronized (Singleton原创 2016-06-17 00:09:08 · 1417 阅读 · 0 评论 -
MySql-InnoDB存储引擎的锁和事务
InnoDB存储引擎的关键特性:插入缓冲(性能提升)、两次写(可靠)、自适应哈希索引(查找效率)、异步IO(AIO,提高磁盘操作性能)、刷新邻接页(合并IO)。 InnoDB采用一致性的非锁定读和行级锁,没有额外的开销和锁升级,可以同时得到并发性和一致性。 默认的读取是一致性的非锁定读和Repeatable Read事务隔离级别,在此默认的隔离级别下采用Next-key Lock算法,解决幻象原创 2016-06-28 21:56:15 · 1168 阅读 · 0 评论 -
volatile学习笔记
参考《深入理解Java虚拟机-JVM高级特性与最佳实践》12.3.3对于volatile型变量的特殊规则 volatile是用来修饰变量,是jvm最轻量级的同步机制。在大多数场景下,volatile的总开销要比锁低。volatile的读操作性能与普通变量几乎一样,写操作会稍微慢一些:它需要在本地代码中插入许多内存屏障指令来保证处理器不发生乱序。 volatile的特性: 1.保证此变量对原创 2016-05-06 15:06:52 · 473 阅读 · 0 评论 -
HashMap学习笔记
关于HashMap的工作原理与实现的好文章不少,推荐两个: http://yikun.github.io/2015/04/01/Java-HashMap工作原理及实现/ http://blog.csdn.net/vking_wang/article/details/14166593 对着HashMap的源码来看理解的会更好,JDK的版本不同具体的实现原理也有所不同,新版本都是在有所改进,原创 2016-04-16 20:34:16 · 449 阅读 · 0 评论 -
Java线程和线程池学习笔记
Java线程的使用方式最基础的来说只有两种:实现Runnable和Callable接口,继承Thread类实际也是间接实现了Runnable接口。两者的区别的是Runnable没有返回值,而Callable有返回值。 1.实现Runnable接口的线程: class RunnableThread implements Runnable{ @Override public void ru原创 2016-05-08 20:08:27 · 399 阅读 · 0 评论 -
ArrayList学习笔记
ArrayList的数据结构比较简单,但是其中也包含了一些好的设计思想。 ArrayList是用数组实现的,因为可以自动扩容(增加50%),所以ArrayList也可以理解为动态数组。 1.初始化 ArrayList的实现也是在不断改进的。在JDK1.7之后,ArrayList初始化的时候,elementData[]数组还是空的,并没有初始化长度为10的数组(困惑良久)。 privat原创 2016-04-19 16:42:17 · 437 阅读 · 0 评论 -
JVM垃圾收集算法学习笔记
垃圾收集(Garbage Collection)与垃圾回收是一个意思。 了解GC和内存分配,有助于排查各种内存溢出和内存泄漏问题,当系统达到更高的并发量时,需要对这些自动化的技术(GC)实施必要的监控和调节。 程序计数器、虚拟机栈、本地方法栈是跟随线程的,栈中的栈帧随着方法的进入和退出有条不紊的执行出栈和入栈操作,每一个栈帧分配多少内存基本上是在类结构确定下来的时候确定的(编译器可知),这几个原创 2016-05-15 14:37:21 · 333 阅读 · 0 评论 -
HashTable和ConcurrentHashMap学习笔记
推荐博文:http://ifeve.com/concurrenthashmap/ HashTable、ConcurrentHashMap与HashMao最大的不同就是在线程安全上,内部实现存储和获取数据的方式是一样的,都是通过hash来散列数据,必要的时候进行扩容。 HashTable中put(K key, V value)时: // Make sure the value is no原创 2016-05-04 14:45:55 · 464 阅读 · 0 评论 -
Java多线程学习笔记(一)
首先推荐一篇好文: http://www.cnblogs.com/nexiyi/p/java_memory_model_and_thread.html原创 2016-05-03 15:56:16 · 1279 阅读 · 2 评论 -
Jvm学习笔记
本文节选自本人知乎。 作者:吴青海 链接:https://www.zhihu.com/question/27339390/answer/36511809 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 java堆(JavaHeap) 1.用来存放对象的,几乎所有对象都放在这里,被线程共享的,或者说是被栈共享的 2.堆又可以分为新生代和老年代,原创 2016-05-13 16:19:25 · 340 阅读 · 0 评论 -
JVM知识点梳理
1.JVM为什么可以跨平台 JVM能跨计算机体系结构(操作系统)来执行Java字节码(JVM字节码指令集),屏蔽可与各个计算机平台相关的软件或者硬件之间的差异,使得与平台相关的耦合统一由JVM提供者来实现。 指令集:计算机所能识别的机器语言的命令集合。 每个运行中的Java程序都是一个JVM实例。 2.描述JVM体系结构 (1)类加载器:JVM启动时或者类运行时将需要的class加载到J原创 2016-05-23 22:34:21 · 2797 阅读 · 1 评论 -
Java异常使用
//1.不抛不捕 public static void main1(String[] args) { testExecption(); System.out.println("next ..."); } public static void testExecption(){ Integer.parseInt("I am not a number"); } //2.已捕不原创 2016-11-07 15:14:44 · 396 阅读 · 0 评论