mysql高级复习
摘要:MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构,可以简单理解为“排好序的快速查找数据结构”。 数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高
阅读全文
posted @
2020-01-19 16:44
从精通到陌生
阅读(155)
推荐(0) 编辑
mysql复习2
摘要:-- 1. 创建和管理表 CREATE TABLE -- 方式一:CREATE TABLE emp1( id INT(10), `name` VARCHAR(20), salary DOUBLE(10, 2), hire_date DATE); -- 方式二:基于现有表创建新表(相当于表的复制)CR
阅读全文
posted @
2020-01-17 00:45
从精通到陌生
阅读(133)
推荐(0) 编辑
springcloud复习2
摘要:Hystrix断路器 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。 “断路器”本身是一种开关装置,当某个服务单元
阅读全文
posted @
2020-01-15 23:52
从精通到陌生
阅读(164)
推荐(0) 编辑
mysql复习1
摘要:SQL语句分为以下三种类型: DML: Data Manipulation Language 数据操纵语言,用于查询与修改数据记录,包括如下SQL语句:INSERT:添加数据到数据库中UPDATE:修改数据库中的数据DELETE:删除数据库中的数据SELECT:选择(查询)数据 DDL: Data
阅读全文
posted @
2020-01-15 13:02
从精通到陌生
阅读(227)
推荐(0) 编辑
springcloud复习1
摘要:1.SpringCloud是什么?SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。 2.SpringCloud和SpringBoot是什么关系?SpringBoot专注于快速方便的开发单个个体微服务。SpringCloud是关注全局的微
阅读全文
posted @
2020-01-12 13:00
从精通到陌生
阅读(273)
推荐(0) 编辑
查看JVM参数
摘要:如何查看一个正在运行中的java程序,它的某个jvm参数是否开启?具体值是多少? jps jinfo jvm的参数类型: 1.标配参数:java -version ,java -help , java -showversion 2.X参数(了解): java -Xint (解释执行), java -
阅读全文
posted @
2020-01-09 21:53
从精通到陌生
阅读(11360)
推荐(0) 编辑
线程池配置合理线程数
摘要:1.cpu密集型(例如while循环 ) cpu密集的意思是该任务需要大量的运算,而没有阻塞,cpu一直全速运行。 cpu密集任务只有在真正的多核cpu上才可能得到加速(通过多线程) 而在单核cpu上,无论你开几个模拟的多线程该任务都不可能得到加速,因为cpu总的运算能力就那些 cpu密集型任务配置
阅读全文
posted @
2020-01-08 23:34
从精通到陌生
阅读(524)
推荐(0) 编辑
线程池的手写和拒绝策略
摘要:手写线程池: AbortPolicy:直接抛出RejectedExecutionException异常阻止系统正常运行。 public class MyThreadPoolDemo { public static void main(String[ ]args) { ExecutorService
阅读全文
posted @
2020-01-08 20:19
从精通到陌生
阅读(193)
推荐(0) 编辑
死锁及定位分析
摘要:死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力来干涉那他们都将无法推进下去,如果系统资源充足,进程的资源请求都能得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 例子: class HoldLockThread implements R
阅读全文
posted @
2020-01-08 19:04
从精通到陌生
阅读(299)
推荐(0) 编辑
Callable接口用法
摘要:注意点:FutureTask是Runnable的实现类,它的构造器可以传Callable接口的实现类。 例子如下: class MyThread implements Callable<Integer> { @Override public Integer call() throws Excepti
阅读全文
posted @
2020-01-07 22:09
从精通到陌生
阅读(1016)
推荐(0) 编辑
线程通信之生产者消费者阻塞队列版
摘要:class MyResource { private volatile boolean FLAG = true; //默认开启,进行生产+消费 private AtomicInteger atomicInteger = new AtomicInteger(); BlockingQueue<Strin
阅读全文
posted @
2020-01-05 23:18
从精通到陌生
阅读(202)
推荐(0) 编辑
锁绑定多个条件
摘要:多线程之间按顺序调用,实现A →B→C三个线程启动,要求如下: AA 打印2次,BB 打印3次,CC打印4次,按顺序连续打印2轮。 class ShareResource { private int number = 1; private Lock lock = new ReentrantLock(
阅读全文
posted @
2020-01-05 21:55
从精通到陌生
阅读(380)
推荐(0) 编辑
synchronized和lock的区别
摘要:1.原始构成 synchronized是关键字属于jvm层面,monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步块或者方法中才能调wait/notify等方法) monitorexit lock是具体类(java.ut
阅读全文
posted @
2020-01-05 20:09
从精通到陌生
阅读(218)
推荐(0) 编辑
BlockingQueue的使用
摘要:在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒 为什么需要BlockingQueue 好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给你一手操办了,在concurrent包发布以前,在多线程环
阅读全文
posted @
2020-01-05 13:08
从精通到陌生
阅读(595)
推荐(0) 编辑
CountDownLatch,CyclicBarrier,Semaphore用法
摘要:1.让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。 2.CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计算器减1(调用countDown方法的线程不会阻塞),当计数器的值变成零时,因调用await方法
阅读全文
posted @
2020-01-04 21:15
从精通到陌生
阅读(226)
推荐(0) 编辑
volatile用法
摘要:并发:多个线程访问同一份资源。 并行:一边听歌一边写论文就是并行,同时做事。 volatile是java虚拟机提供的轻量级的同步机制。 voliatile有三大特性: 1.保证可见性。 2.不保证原子性。 3.禁止指令重排。 JMM(Java内存模型 Java Memory Model)本身是一种抽
阅读全文
posted @
2020-01-04 11:53
从精通到陌生
阅读(540)
推荐(0) 编辑
CAS是什么
摘要:CAS是什么? 比较并交换 例子1: public class ABADemo1 { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(5); System.out.pri
阅读全文
posted @
2020-01-02 23:37
从精通到陌生
阅读(1333)
推荐(0) 编辑
集合线程安全问题
摘要:ArrayList,HashSet在多线程下会有线程安全问题,会抛java.util.ConcurrentModifycationException 导致原因就是: 并发争抢导致,例如一个人正在写入,另一个人来抢夺,导致数据不一致异常,并发修改异常。 解决ArrayList线程安全问题方案 List
阅读全文
posted @
2020-01-02 01:18
从精通到陌生
阅读(667)
推荐(0) 编辑
java 常用锁
摘要:公平锁和非公平锁 1.公平锁,是指多个线程按照申请的顺序来获取锁,类似排队打饭,先来后到。 2.非公平锁,是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程 比先申请的线程优先获取锁,在高并发情况下,有可能会造成优先级反转或者饥饿现象。 Java ReentrantLock而言,通过
阅读全文
posted @
2020-01-01 22:04
从精通到陌生
阅读(636)
推荐(0) 编辑