摘要: wait()、notify()和notifyAll()是基于synchronized Condition是基于Lock的。 Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify 阅读全文
posted @ 2016-07-15 17:11 wade&luffy 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 锁的相关概念 1.可重入锁 如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。举个简单的例子,当一个线程执行到某个synchronized方法时,比如说meth 阅读全文
posted @ 2016-07-15 14:14 wade&luffy 阅读(373) 评论(0) 推荐(1) 编辑
摘要: 来源:一颗卤蛋 链接:http://www.cnblogs.com/lyroge/p/3837886.html 背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行。 测试环境: 先让我们熟悉下基本的sql语句 阅读全文
posted @ 2016-07-15 12:18 wade&luffy 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 一、类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西。在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘、网络或其他来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功能。我们可以利用类加载器,实现类的动态加载。 二、类的 阅读全文
posted @ 2016-07-15 11:21 wade&luffy 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 字符串不属于基本类型,但是可以像基本类型一样,直接通过字面量赋值,当然也可以通过new来生成一个字符串对象。不过通过字面量赋值的方式和new的方式生成字符串有本质的区别: 通过字面量赋值创建字符串时,会优先在常量池中查找是否已经存在相同的字符串,倘若已经存在,栈中的引用直接指向该字符串;倘若不存在, 阅读全文
posted @ 2016-07-15 10:54 wade&luffy 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 并发编程中的三个概念 在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念: 1.原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 反映到并发编程中会出现什么结果呢? 举个最简单的例子,大家想 阅读全文
posted @ 2016-07-15 10:12 wade&luffy 阅读(246) 评论(0) 推荐(0) 编辑