- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 CAP+Base初步了解
说到分布式就一定要了解CAP原理,那么什么是CAP原理呢?1.CAP原理是什么?C(Consistency )强一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)A(Availablity )可用性: 在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性),简单来说,就是网站不能处于一种不能使用的状态...
2018-04-27 17:50:19 879
原创 关于NoSql的理解,键值数据库,文档数据库,列式存储数据库,图形数据库
1.NoSql是什么? Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。 说到非关系型数据库,就要简单的介绍一下关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,我们平常使用的数据库,像MySQL,Oracle,S...
2018-04-26 10:33:54 14299 1
原创 JUC学习之Fork/Join分支合并框架
1.什么是Fork/Join框架? Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。2.Fork/Join框架的结构:需要ForkJoinPool才能使用 在Fork/Join中,我们主要用它自定义的线程池来提交任务和调度任务,称之为:ForkJoinPool;同时我们有它自己的任务执...
2018-04-24 17:23:15 416 1
原创 JUC学习之线程池
本文为看视频学习笔记,若有错误请指正,谢谢!原先如果要用到线程,需要在使用的时候new一个线程出来,并且不需要使用之后,还要销毁 new Thread(ticket,"1号窗口").start();但是当任务数量较多的情况下,开发人员频繁的创建线程然后销毁线程的话,是非常耗费资源的,那么就有了线程池的概念。概念上与数据库连接池类似线程池:提供了一个线程队列,队列中保存着等待状态的线程,只要有任务,...
2018-04-23 17:11:34 500
原创 JUC学习之线程8锁
本文为看视频学习资料,若有错误,请指正,谢谢!介绍线程8锁围绕一个题目展开,题目:打印的是“one”还是“two”?1.两个普通同步方法,两个线程,打印?public class TestThread8Monitor { public static void main(String[] args){ Number number = new Number(); ...
2018-04-20 15:53:28 759
原创 JUC学习之ReadWriteLock读写锁
本文为看视频学习笔记,若有错误,请指正,谢谢!之前,在涉及到线程安全问题时,一般都会给选择直接加锁,保证一次只有一个线程能够访问到共享变量,但是这会一定程度上导致性能问题,因此今天要来介绍一下读写锁读写锁维护了一对锁,一个用于读操做的读锁,另一个是用于写操作的写锁。读锁可以被多个线程并发的持有,在没有写操作的时候;写锁只能被一个线程持有。应用场景:写写/读写场景下,锁需要“互斥”; ...
2018-04-20 15:05:21 207
原创 JUC学习之线程按序交替
本文为看视频学习笔记,若有错误请指正,谢谢!例题:编写一个程序,开启3个线程,这3个线程的ID分别是A,B,C,每个线程将自己的ID在屏幕上面打印10遍,要求输出的结果必须按顺序显示。例如:ABCABCABC……一次递归代码:public class TestABCAlternate { public static void main(String[] args){ Al...
2018-04-20 10:24:15 214
原创 JUC学习之生产者消费者案例-Lock-Condition线程通信
本文是看视频学习笔记,若有错误请指正!生产者消费者案例的lock写法其中涉及到了Condition的用法,简答的介绍一下:1.Condition接口描述了可能会与锁相关的条件变量,这些变量在用法上与使用Object.wait访问的隐式监视器类似,但提供了更强大的功能。需要特别之处的是,单个lock可能会与多个Condition对象关联,为了避免兼容性问题,Condition方法的名称与对应的Obj...
2018-04-19 17:53:32 228
原创 JUC学习之生产者消费者案例-synchronized-虚假唤醒
本文为看视频学习记录,若有错误请指正!在实际开发过程中,我们可以将添加和创建数据的线程看做是生产者,删除和销毁数据的线程看做是消费者。若不用等待唤醒机制,假设生产者过快,消费者跟不上,那么会导致数据的丢失; 假设消费者过快,生产者跟不上,那么可能会导致重复的数据或者是错误的数据;synchronized写法-等待唤醒public c...
2018-04-19 17:08:29 450
原创 JUC学习之Lock同步锁
本文为看视频学习笔记,若有错误请指正!解决线程安全问题的方式一共有3种1.同步代码块2.同步方法3.同步锁Lock其中第1,2种方式是jdk1.5之前就已经提供了的,使用的时候我们需要加上synchronized关键字,是一个隐式锁,而同步锁Lock是jdk1.5的concurrent包提供的,是一个显示锁,需要通过lock()方法上锁,必须通过unlock()释放锁,像这样相较于synchron...
2018-04-19 15:05:34 298
原创 JUC学习之创建线程执行的方式三-实现Callable接口
本文是看视频学习资料,若有错误请指正!我想所有人都知道,创建线程执行方式有2种:继承Thread类创建线程;实现Runnable接口创建线程,但是实际上,创建执行线程的方式有4种:除了上述2种,还有实现Callable接口创建线程以及线程池的方式创建线程。对于第一和第二种方法,一般使用的是第二种方式,那么Runnable和Callable有什么区别呢?1.Callable允许带泛型2.重写的方法不...
2018-04-18 17:33:03 258
原创 JUC学习之CountDownLatch 闭锁
本文为看视频学习笔记,若有错误请指正,谢谢!1.什么是CountDownLatch ? 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或者多个线程一直等待,在jdk1.5之后提供2.什么是闭锁? 在完成某些运算时,只有其他多有线程的运算全部完成,当前运算才继续执行上代码public class TestCountDownLatch { public...
2018-04-17 17:53:37 193
原创 JUC学习之同步容器类ConcurrentHashMap
本文是看视频的笔记,若有错误请指出,谢谢!jdk1.5之后添加了ConcurrentHashMap类,其底层是CAS算法实现的,采用的是“锁分段”机制,有个concurrentLevel分段级别,默认的级别为16,也就是说默认有16个分段,每个分段中也有一个默认长度为16的表,表中的每个单位由链表组成。每个段都是独立地锁,当多个线程并发访问时,可以并行进行操作,效率高了并且线程安全。在这个包中还提...
2018-04-17 16:18:00 261
原创 面向对象思想:继承
1.为什么要由继承? 可以让代码简洁,减少项目中的重复代码;2.通过“class A extends B”的方式实现类的继承。 子类 :A 父类(或者是基类SuperClass):B3.子类继承父类之后,父类中声明的属性,方法,子类就可以获取到。 明确一点:当父类中私有的属性或者方法时,子类同样可以获取到,只是由于封装性的设计,使得子类不可以直接调用。 子类除了可以通...
2018-04-16 17:51:24 204
原创 模块的可插拔设计(策略模式)
业务背景:有一个套餐,里面有多个模快组成,现固定了4种套餐,套餐中的模快有重复,例如模快:A,B,C,D套餐:甲:A 乙:A,B 丙:A,C 丁:A,B,C,D现要求,使用者可以根据自己的需求制定专属套餐,而不是局限于在上述四个套餐中进行选择,这样,就需要我们做到套餐中模快的可插拔设计,动态的组合。看一下具体的uml设计图对每个模快,我们都要有...
2018-04-13 18:01:35 11683
原创 变量的分类
成员变量VS局部变量相同点:遵循变量声明的格式;都有作用域;都有声明周期不同点:1.声明的位置不同: 成员变量:声明在类里,方法外; 局部变量:声明在方法内,方法的形参部分,代码块内;2.成员变量的修饰符有4个:public,private,protected,缺省 局部变量没有修饰符,与所属方法的修饰符相同3.关于初始化值:一定会有初始化值 成员变量:如果在初始化的时候,不...
2018-04-13 15:14:18 421
尚硅谷MySQL高级_思维导图.pdf
2017-09-14
apache-tomcat-8.5.20-windows-x64.zip
2017-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人