Java
L_九棵树
这个作者很懒,什么都没留下…
展开
-
对于高并发的优化,你能做什么? 缓存篇(二)——怎么保证缓存的高可用
本文是我在学习过程中的笔记。要保证缓存的高可用,可以从三个方面入手:客户端、中间代理层以及服务端。1.客户端在客户端保证缓存的高可用,建议遵循以下原则:在客户端配置多个缓存节点,通过写入和读取算法的策略来实现分布式缓存。简单来说就是,写入数据的时候要把数据写入分散的节点中,而读,需要利用多组缓存来进行容错。1.1分片这个是一个简单的写入的策略,常用的分片...原创 2019-11-09 11:32:11 · 204 阅读 · 0 评论 -
对于高并发的优化,你能做什么?——数据库篇
最近学到对于高并发的优化技术,所以写了一篇笔记记录一下。数据库优化可以从下边几个方面入手: 池化 主从分离 分库分表 发号器 NoSQL 池化 数据库连接池是最常见的池化手段。由于连接数据库会耗费比较多的时间,所以可以通过复用连接的方式来减少这些时间开销。使用连接池的时候需要控制好两个变量:最小连接数喝最大连接数。具体的连接...原创 2019-10-27 12:52:29 · 598 阅读 · 0 评论 -
Java 面试题详解(一)
java 练习1String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?String是长度不变得字符串,重新赋值得时候其实是将指针重新指向新得一个对象得过程。StringBuffer和StringBuilder是可变得字符序列,都是继承于AbstractStringBuilder。上边三个类都是实现了CharSequenc...原创 2019-03-25 18:11:19 · 166 阅读 · 0 评论 -
高性能MySQL笔记(一)
概览InnoDB的数据存储在表空间中,采用MVCC来支持高并发,并且实现了四个标准隔离级别,默认的级别是REPEATABLE READ, 并且通过间隙锁来防止幻读。InnoDB是通过聚簇索引建立表的。聚簇索引对主键的查询有很高的性能,但是由于二级索引必须包含主键列,所以主键要尽量小。InnoDB 的行为是很复杂的,其内部也做了很多的优化,比如自动在内存中创建hash索引加速读操作的自适...原创 2019-03-25 14:42:15 · 115 阅读 · 0 评论 -
Java 的事务详解
背景知识事务,其实就是一个或者一组不会中途失败的操作。简单理解就是,要么同时成功,要么同时失败。一开始我对这句话有点不解,因为这句话有点故意押韵的意思,但是结合一个实际场景,就豁然开朗了。在网购的时候都需要通过网络支付才能完成下单,如果“付钱”这个动作没有完成,就显示“已支付”,那么就没有人会去网上卖东西。事务的特性根据上边的背景,我们可以总结出来事务的四个特性,也是面试中经常被问到...原创 2019-03-05 21:44:45 · 459 阅读 · 0 评论 -
Java复习笔记——并发工具包 java.util.concurrent(三)
ForkJoinPool和ExecutorService类型,但是是在1.7版本之后才被引入的。ForkJoinPool可以对任务进行拆解或是合并。RecursiveAction合并,需要自己继承RecursiveAction类。重写compute方法。这个方法是指定一个阀值,当超过这个阀值的时候就才去相应的逻辑。RecursiveTask和上边的一样,只是会返回一个结果。...原创 2019-02-13 15:42:55 · 264 阅读 · 0 评论 -
Java复习笔记——并发工具包 java.util.concurrent(二)
ConcurrentMap这个是一个带有分段锁的Map。最常用的实现是ConcurrentHashMap。ConcurrentNavigableMap是一个装map的map,它的子类也具有并发访问的能力。CountDownLatch闭锁。是一个并发构造,允许一个或者多个线程等待一系列操作的完成。可以设定一个参数,在每次有线程调用的时候机会减一,到达零的时候就阻塞。Cycli...原创 2019-02-13 15:41:22 · 156 阅读 · 0 评论 -
Java复习笔记——并发工具包 java.util.concurrent(一)
阻塞队列BlockingQueue阻塞队列通常用于一个队列生产,另一个队列消费的情况。因为Queue只能一个线程生产每一个线程消费,进入的数据只能先进先出。个人感觉这个队列的用法和set以及list有点类似,应该算是collection的并发工具。BlockingQueue的实现类有以下几个:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue...原创 2019-02-13 15:38:49 · 185 阅读 · 0 评论 -
Java复习笔记——线程安全与锁优化
线程安全 1、线程安全java中线程安全可以分成5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程独立。不可变。对于基本的数据类型,只要加上final修饰,就可以实现不可变。对于对象,其实就将其构造函数相关的属性编程final即可。绝对线程安全。绝对安全的很难达到,而且java中线程安全的类并不是绝对安全的。就算是vector也需要利用Synchronized去保证同时操...原创 2019-02-13 15:35:01 · 119 阅读 · 0 评论 -
Java复习笔记——java内存模型和线程
java内存模型和线程 1、概述衡量一个服务的好坏,可以通过使用美妙事务处理数(TPS)来衡量。2、java 内存模型这里的java内存模型和前边的jvm的内存模型不同,这里是的内存模型是java通过一个标准的模型去消除不同平台之间的硬件的差异。所以这里的内存模式是和计算机的内存模型类似的。java的内存模型主要是定义了各个变量的访问规则,这里的规则主要是虚拟机内存存储和读...原创 2019-02-13 14:53:42 · 173 阅读 · 0 评论