- 博客(26)
- 资源 (3)
- 收藏
- 关注
转载 MySQL详解--锁
MySQL详解--锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论...
2019-01-15 17:18:51
283
原创 MySQL行锁、表锁、悲观锁、乐观锁的特点与应用
MySQL行锁、表锁、悲观锁、乐观锁的特点与应用MySQL锁概述行锁和表锁悲观锁和乐观锁共享锁什么时候使用表锁?表锁和行锁应用场景我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。MySQL锁概述相...
2019-01-15 16:52:28
1612
原创 MongoDB、Hbase、Redis等NoSQL优劣势、应用场景
MongoDB、Hbase、Redis等NoSQL优劣势、应用场景NoSQL的四大种类主流nosql的详解:MongoDB、Hbase、RedisNoSQL的四大种类目前大家基本认同将NoSQL数据库分为四大类:键值存储数据库,文档型数据库,列存储数据库和图形数据库,其中每一种类型的数据库都能够解决关系型数据不能解决的问题。在实际应用中,NoSQL数据库的分类界限其实没有那么明显,往往会是多种...
2019-01-15 13:47:40
302
原创 Sharding-JDBC 3.x 原理篇之基本介绍
Sharding-JDBC 3.x 原理篇之基本介绍简介功能介绍Sharding-JDBCSharding-ProxySharding-Sidecar各大版本间的区别与变化1.x2.x3.x简介Sharding-JDBC是当当开源的数据库水平切分的中间件,其代表了客户端类的分库分表技术框架(这一点与MyCat不同,MyCat本质上是一种数据库代理)。Sharding-JDBC定位为轻量级数据库...
2019-01-11 16:00:44
653
原创 分库分表之淘宝TDDL的原理
淘宝TDDL的原理一、互联网当下的数据库拆分过程二、TDDL的架构原型三、下载TDDL的Atom层和Group层源代码四、Diamond简介五、Diamond的安装和使用六、动态数据源层的Master/Salve读写分离配置与实现七、Matrix层的分库分表配置与实现一、互联网当下的数据库拆分过程对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会...
2019-01-09 15:35:28
1779
原创 数据库之架构:主备+分库?主从+读写分离?
数据库之架构:主备+分库?主从+读写分离?一、数据库架构原则二、常见的架构方案方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用方案二:双主架构,两个主库同时提供服务,负载均衡方案三:主从架构,一主多从,读写分离方案四:双主+主从架构,看似完美的方案三、一致性解决方案第一类:主库和从库一致性解决方案第二类:DB和缓存一致性解决方案四、个人的一些见解一、数据库架构原则高可用高性能...
2019-01-08 17:25:53
263
原创 Spring Cloud的核心成员、以及架构实现详细介绍
Spring Cloud的核心成员、以及架构实现详细介绍什么是微服务SOA和微服务的区别微服务架构优势什么是Spring Boot什么是Spring CloudSpring Cloud的核心成员Spring Cloud架构实现什么是微服务微服务的概念源于Martin Fowler所写的一篇文章“Microservices”。微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服...
2019-01-08 14:32:30
385
原创 SpringClound简介,微服务架构,以及与Dubbo的详细比较
SpringClound简介,微服务架构,以及与Dubbo的详细比较什么是Spring Clound为什么需要Spring CloundSpringClound与同类Dubbo微服务比较什么是Spring CloundSpring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化...
2019-01-07 12:38:42
736
原创 Restful、SOAP、RPC、SOA、微服务之间的区别
Restful、SOAP、RPC、SOA、微服务之间的区别什么是Restful什么是SOAPRPC5种典型RPC远程调用框架什么是SOA微服务和SOA的区别什么是RestfulRestful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务。主要的设计原则:资源与URI统一资源接口(HTTP方法如GET,PU...
2019-01-07 11:15:29
327
原创 Java 修饰符
Java 修饰符访问控制修饰符Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明:public class className { // ...}private boolean myFlag;static final double weeks = 9.5;protected...
2018-12-21 13:38:10
128
原创 JAVA泛型总结
JAVA泛型总结1. 概述2. 一个例子1. 概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢? 顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛型的本质是为了参数化类型(在不创建新的类型的情...
2018-12-21 13:27:36
124
原创 JVM面试题目和答案
JVM面试题目和答案JVM内存模型1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存2.虚拟机栈3.方法区:存储已被虚拟机加载的类元数据信息4.程序计数器:当前线程所执行的字节码的行号指示器总结:JVM垃圾回收算法JVM垃圾收集器有哪些?以及优劣势比较?JVM内存模型首先我们来了解一下JVM的内存模型的怎么样的:1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存堆的最小内存...
2018-12-19 13:21:46
204
原创 JVM性能调优的6大步骤,及关键调优参数详解
JVM性能调优的6大步骤,及关键调优参数详解JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因...
2018-12-18 17:39:08
13122
4
原创 7种JVM垃圾收集器特点,优劣势、及使用场景
7种JVM垃圾收集器特点,优劣势、及使用场景常见的垃圾收集器有3类:新生代垃圾收集器1.Serial串行收集器-复制算法2.ParNew收集器-复制算法3.Parallel Scavenge(并行回收)收集器-复制算法老年代垃圾收集器1.Serial Old 收集器-标记整理算法2.Parallel Old 收集器-标记整理算法3.CMS收集器-标记清除算法新生代和老年代垃圾收集器1.G1收集器-...
2018-12-18 14:51:13
1308
1
原创 JVM的4种垃圾回收算法、垃圾回收机制与总结
JVM的4种垃圾回收算法、垃圾回收机制与总结垃圾回收算法1.标记清除2.复制算法3.标记整理(标记-压缩)4.分代收集算法垃圾回收机制垃圾回收有两种类型:Minor GC 和 Full GC。1.Minor GC2.Full GC垃圾回收算法总结垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始...
2018-12-18 12:15:13
449
1
原创 深入详解JVM内存模型与JVM参数详细配置
深入详解JVM内存模型与JVM参数详细配置JVM内存结构堆内存(Heap)方法区(Method Area)虚拟机栈(JVM Stack)栈帧的含义?栈帧的数据结构?局部变量表操作数栈动态链接方法返回地址本地方法栈(Native Stack)程序计数器(PC Register)直接内存JVM内存参数设置典型JVM参数配置参考:JVM内存结构由上图可以清楚的看到JVM的内存空间分为3大部分:堆内...
2018-12-17 18:34:59
583
原创 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁乐观锁 VS 悲观锁1.乐观锁2.悲观锁3.总之公平锁 VS 非公平锁1.公平锁2.非公平锁3.典型应用独享锁 VS 共享锁1.独享锁2.共享锁3.比较4.AQS分段锁Java线程锁多线程的缘由多线程并发面临的问题4种Java线程锁(线程同步)1.synchronized2.ReentrantLock3.Semaphore4.At...
2018-12-14 14:15:23
4697
原创 说一下HashSet和HashMap的底层实现及HashMap的put操作过程
说一下HashSet和HashMap的底层实现及HashMap的put操作过程一、概述二、什么是哈希表哈希冲突三、HashMap实现原理四、为何HashMap的数组长度一定是2的次幂?五、重写equals方法需同时重写hashCode方法七、JDK 1.8的 改变java.lang.Objectint hashCode() 返回该对象的哈希码值。boolean equals(Objec...
2018-12-12 17:43:54
9531
5
原创 数据库连接池介绍下,底层实现说下?
数据库连接池介绍下,底层实现说下?1、实现DataSource接口,并实现连接池功能的步骤:2、需要解决的问题3、实际开发中有成熟的开源连接池供我们使用1、实现DataSource接口,并实现连接池功能的步骤:在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入LinkedList对象中, 因为LinkedList是用链表实现的,对于增删实现起来比较容易, 因为每...
2018-12-12 17:05:47
1009
原创 Java线程池的使用方式,核心运行原理、以及注意事项
线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少?public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueue workQueue,ThreadFactory threa...
2018-12-12 14:55:15
410
原创 多线程面试题和答案:线程锁+线程池+线程同步
多线程面试题和答案:线程锁+线程池+线程同步1、并发编程三要素?2、多线程的价值?3、创建线程的有哪些方式?区别是什么?4、创建线程的三种方式的对比?4、线程的生命周期及五种基本状态及转换条件1、Java线程具有五中基本状态2、sleep(),wait(),yield()和join()方法的区别5.什么是线程池? 有哪几种创建方式?6、线程池的优点?7.Java中的同步集合与并发集合有什么区别?1...
2018-12-12 14:44:55
4641
原创 Java实现克隆的方式?浅拷贝如何理解?
Java实现克隆的方式?浅拷贝如何理解?浅复制(浅克隆)浅复制(浅克隆)浅拷贝(浅克隆):对一个对象进行clone生成新的对象,新的对象要开辟一块新的内存来存储,新对象中的基本类型属性和String类型属性都会开辟新的空间存储,但是如果是引用类型的属性,那这个引用类型的属性还是指向原对象的引用属性内存,当对新的对象或原对象的引用属性做出改变的时候,两方的引用属性类型的值同时做出改变。1.先申...
2018-12-12 13:15:25
229
原创 Java中ArrayList和LinkedList区别以及时间复杂度与空间复杂度
Java中ArrayList和LinkedList区别以及时间复杂度与空间复杂度?一.时间复杂度二.空间复杂度三.总结 一般大家都知道ArrayList和LinkedList的大致区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动...
2018-12-12 10:47:03
5220
1
原创 Java容器有哪些?哪些是同步容器,哪些是并发容器?
Java容器有哪些?哪些是同步容器,哪些是并发容器?一、基本概念新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...
2018-12-04 17:04:10
6635
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人