摘要: ThreadLocal是什么 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用ThreadLocal,就可能会导致内存泄漏。 ThreadLocal的实现是这样的:每个Thread 维 阅读全文
posted @ 2018-09-14 14:31 twoheads 阅读(4547) 评论(0) 推荐(0) 编辑
摘要: 首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并 阅读全文
posted @ 2018-09-14 11:14 twoheads 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 一、MySQL扩展具体的实现方式 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。 关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。这篇文章主要讲述数据库分库与分表 (1)业务拆分 在 大型网站应用之海量数据和高并发解决方案总结一二 阅读全文
posted @ 2018-09-13 16:15 twoheads 阅读(24966) 评论(1) 推荐(3) 编辑
摘要: 目前很多互联网系统都存在单表数据量过大的问题,这就降低了查询速度,影响了客户体验。为了提高查询速度,我们可以优化sql语句,优化表结构和索引,不过对那些百万级千万级的数据库表,即便是优化过后,查询速度还是满足不了要求。这时候我们就可以通过分表降低单次查询数据量,从而提高查询速度,一般分表的方式有两种 阅读全文
posted @ 2018-09-13 15:36 twoheads 阅读(1697) 评论(0) 推荐(0) 编辑
摘要: 重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读服务不存在数据竞争问题,如果一个线程在读时禁止其他线程读势必会导致性能降低。所以就提供了读写锁。 读写锁维护着一对锁,一个读锁和一个写锁,读 阅读全文
posted @ 2018-09-12 15:59 twoheads 阅读(3362) 评论(0) 推荐(2) 编辑
摘要: 概要: ArrayBlockingQueue的内部是通过一个可重入锁ReentrantLock和两个Condition条件对象来实现阻塞 注意这两个Condition即ReentrantLock的Condition:ReentrantLock的内部类Sync继承了AQS这个抽象类,Sync的newC 阅读全文
posted @ 2018-09-11 17:27 twoheads 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 写入时复制(CopyOnWrite) 什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器 阅读全文
posted @ 2018-09-11 16:00 twoheads 阅读(239) 评论(0) 推荐(0) 编辑
摘要: <T extends Comparable<? super T>>首先这是运用了java的泛型①extends后面跟的类型如<任意字符 extends 类/接口>表示泛型的上限 ②同样的super表示泛型的下限③<T extends Comparable<? super T>>这里来分析T表示任意字 阅读全文
posted @ 2018-09-11 14:00 twoheads 阅读(1995) 评论(0) 推荐(0) 编辑
摘要: (问题:深拷贝的实现方式,除了重写clone()) 什么是浅拷贝和深拷贝 首先需要明白,浅拷贝和深拷贝都是针对一个已有对象的操作。那先来看看浅拷贝和深拷贝的概念。 在 Java 中,除了基本数据类型(元类型)之外,还存在 类的实例对象 这个引用数据类型。而一般使用 『 = 』号做赋值操作的时候。对于 阅读全文
posted @ 2018-09-10 16:28 twoheads 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程; (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上 阅读全文
posted @ 2018-09-10 15:40 twoheads 阅读(670) 评论(0) 推荐(0) 编辑