摘要:
一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。 数据库分布式核心 阅读全文
posted @ 2019-02-24 16:46
夏末之至
阅读(489)
评论(0)
推荐(0)
摘要:
微服务的反模式和陷阱 阅读全文
posted @ 2019-02-24 16:41
夏末之至
阅读(558)
评论(0)
推荐(0)
摘要:
索引的优点 大大加快数据的查询速度 使用分组和排序进行数据查询时,可以显著减少查询时分组和排序的时间 创建唯一索引,能够保证数据库表中每一行数据的唯一性 在实现数据的参考完整性方面,可以加速表和表之间的连接 索引的缺点 创建索引和维护索引需要消耗时间,并且随着数据量的增加,时间也会增加 索引需要占据 阅读全文
posted @ 2019-02-24 16:01
夏末之至
阅读(297)
评论(0)
推荐(0)
摘要:
两者区别: 1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类; 2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; 3.synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放 阅读全文
posted @ 2019-02-24 15:53
夏末之至
阅读(250)
评论(0)
推荐(0)
摘要:
synchronized的三种应用方式 synchronized的字节码指令 synchronized的锁的原理 Java对象头 Monitor synchronized锁的优化 自旋锁与自适应自旋 锁消除 锁粗化 偏向锁 轻量级锁 重量级锁 锁升级 wait和notify的原理 wait和noti 阅读全文
posted @ 2019-02-24 15:51
夏末之至
阅读(341)
评论(0)
推荐(0)
摘要:
悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的 阅读全文
posted @ 2019-02-24 15:38
夏末之至
阅读(470)
评论(0)
推荐(0)
摘要:
一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括: Java线程具有五中基本状态 1、新建状态(New):当线程对象对创建后,即进入了 阅读全文
posted @ 2019-02-24 15:35
夏末之至
阅读(158)
评论(0)
推荐(0)
摘要:
常用的几种线程池 1 newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 这种类型的线程池特点是: 工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程 阅读全文
posted @ 2019-02-24 15:32
夏末之至
阅读(276)
评论(0)
推荐(0)
摘要:
其实java线程池的实现原理很简单,说白了就是一个线程集合workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(也就是线程)时,线程池会先将任务放入workQueue中。workerSet中的线程会不断的从workQueue中获取线程然后执行。当workQueue中没有任务 阅读全文
posted @ 2019-02-24 15:25
夏末之至
阅读(271)
评论(0)
推荐(0)
摘要:
equals和==的区别 ==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。 1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比 阅读全文
posted @ 2019-02-24 15:00
夏末之至
阅读(217)
评论(0)
推荐(0)

浙公网安备 33010602011771号