09 2018 档案
摘要:ZK是什么? 分布式服务框架,主要用来解决分布式应用中数据管理问题;如统一命名服务,集群管理,分布式应用配置管理等 zk是一个数据库,是一个拥有文件系统特点的数据库,是一个 解决了数据一致性问题的分布式数据库,是一个具有发布,订阅(watch)功能的分布式数据库 1.分布式一致性服务,最终一致性 C
阅读全文
摘要:索引与优化 1、选择索引的数据类型 MySQL支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。通常来说,可以遵循以下一些指导原则: (1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。(2)简单的数据类型更好:整型数据比起字符,处
阅读全文
摘要:AOF重写 AOF重写并不需要对原有AOF文件进行任何的读取,写入,分析等操作,这个功能是通过读取服务器当前的数据库状态来实现的。(auto-aof-rewrite-percentage和auto-aof-rewrite-min-size配置触发AOF重写的条件。 ) 然后用一条RPUSH list
阅读全文
摘要:一、持久化之全量写入:RDB rdb配置 上面是redis配置文件里默认的RDB持久化设置,前三行都是对触发RDB的一个条件,例如第一行的意思是每900秒钟里redis数据库有一条数据被修改则触发RDB,依次类推;只要有一条满足就会调用BGSAVE进行RDB持久化。第四行dbfilename指定了把
阅读全文
摘要:消息 100 Continue 101 Switching Protocols 102 Processing 成功 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset C
阅读全文
摘要:面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 J
阅读全文
摘要:在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.util.concurrent.AbstractQueuedSynchroni
阅读全文
摘要:SynchronousQueue SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加;可以认为SynchronousQueue是一个缓存值为1的阻塞队列,但是 isEmpty()方法永远返回是true,
阅读全文
摘要:一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。 二、哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那
阅读全文
摘要:List集合中的元素可以重复 ArrayList:数组,查询比较快 LinkedList:链表,常用于增删改效率高 Vector:线程安全,synchronized 线程安全的写法:Collections.synchronizedList(new ArrayList()) Set集合中的元素不可以重
阅读全文
摘要:HashTable: put方法加了同步锁synchronized,底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低。 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式
阅读全文
摘要:一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 https://www.cnblogs.com/banjinbaijiu/p/9147434.html 效率低下的HashT
阅读全文
摘要:HashMap的存储结构是由数组和单链表共同完成。Entry<K,V>[] ,Entry是单向链表。 1 HashMap数据结构 HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCod
阅读全文
摘要:事务的四种特性 原子性 (atomicity):强调事务的不可分割. 一致性 (consistency):事务的执行的前后数据的完整性保持一致. 隔离性 (isolation):一个事务执行的过程种,不应该受到其他事务的干扰 持久性(durability) :事务一旦结束,数据就持久到数据库 事务的
阅读全文
摘要:HandlerInterceptor 接口: 进入 Handler方法之前执行比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行 boolean preHandle(HttpServletRequest request, HttpServletResponse respons
阅读全文
摘要:spring mvc 形参类型 1 没有占位符号的,形参的名字为参数的名称 请求路径为:organtrans/t1/t5?a=1(a为形参的的名称必须一致) @RequestMapping("/t5") @ResponseBody public String test5(int a) { retur
阅读全文
摘要:前言 线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处: 1、降低资源消耗; 2、提高响应速度; 3、提高线程的可管理性。 Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,
阅读全文
摘要:AQS介绍 AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架。来看下同步组件对AQS的使用: AQS是一个抽象类,主是是以继承的方式使用。AQS本身是没有实现任何同步接口的,它仅仅只是定义了同步状态的获取和释放的方法来供
阅读全文
摘要:原文地址:http://cantellow.iteye.com/blog/838473 第一种(懒汉,线程不安全): 第二种(懒汉,线程安全): 这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要同步。 第三种(饿汉):
阅读全文
摘要:Spring是一个开源框架,是一个基于IOC和AOP来架构多层的JavaEE 架构,默认是单例模式 Spring模块分为以下几个部分 1.Core container(核心容器) 含有Core,Beans,Context,和Expression Language 2.Data Access 3.We
阅读全文
摘要:DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler。(可以通过xml配置方式,注解方式) HandlerAdapter处理器适配器:根据特定规则去执行Handler,编写Handler时需要按
阅读全文
摘要:架构流程: 1、 用户发送请求至前端控制器DispatcherServlet, 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherSer
阅读全文