11 2018 档案

摘要:一、问题引入 BitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射,怎么理解呢?举一个例子,有一个无序有界int数组{1,2,5,7},初步估计占用内存44=16字节,这倒是没什么奇怪的,但是假如有10亿个这样的数呢,10亿4/(102410241024)=3.72G左右。 阅读全文
posted @ 2018-11-28 09:45 是谁扭曲了时空 阅读(558) 评论(0) 推荐(0)
摘要:关于位与运算&与取余今天在研究hashmap源码的时候,发现其源码中在解决Entry分布时,本来大多数人以为会用index = hash % length,但是源码中却使用了index = hash & (lenth -1)的方式。 另外由上述还可以注意到,在源码中对于Entry数组容量的定义中,要 阅读全文
posted @ 2018-11-28 09:27 是谁扭曲了时空 阅读(1456) 评论(0) 推荐(2)
摘要:缓存穿透、缓存并发、热点缓存 一、前言 在之前的一篇缓存穿透、缓存并发、缓存失效之思路变迁文章中介绍了关于缓存穿透、并发的一些常用思路,但是个人感觉文章中没有明确一些思路的使用场景,本文继续将继续深化与大家共同探讨,同时也非常感谢这段时间给我提宝贵建议的朋友们。 说明:本文中提到的缓存可以理解为Re 阅读全文
posted @ 2018-11-28 00:01 是谁扭曲了时空 阅读(662) 评论(0) 推荐(0)
摘要:1:缓存技术和框架的重要性 互联网的一些高并发,高性能的项目和系统中,缓存技术是起着功不可没的作用。缓存不仅仅是key-value的简单存取,它在具体的业务场景中,还是很复杂的,需要很强的架构设计能力。我曾经就遇到过因为缓存架构设计不到位,导致了系统崩溃的案例。 2:缓存的技术方案分类 3:高并发以 阅读全文
posted @ 2018-11-28 00:00 是谁扭曲了时空 阅读(845) 评论(0) 推荐(0)
摘要:现如今有许多个可用的 AOP 库,使用这些库需要能够回答以下问题: 是否与现有的或新的应用程序兼容? 在哪里可以使用 AOP ? 如何迅速与应用程序集成? 性能开销是多少? 在本文中,我们将回答这些问题并介绍 Spring AOP 和 AspectJ ——两个最受欢迎的 AOP 框架。 AOP 概念 阅读全文
posted @ 2018-11-26 10:13 是谁扭曲了时空 阅读(369) 评论(0) 推荐(0)
摘要:并发框架Disruptor 阅读全文
posted @ 2018-11-23 16:15 是谁扭曲了时空 阅读(197) 评论(0) 推荐(0)
摘要:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#using-boot-dependency-management 阅读全文
posted @ 2018-11-22 09:41 是谁扭曲了时空 阅读(123) 评论(0) 推荐(0)
摘要:1、log4j2默认加载文件为log4j2.xml 2、要使用yml加载需添加依赖 3、log4j2.xml 4、log4j2.yml配置 log4j2官网配置说明 性能分析 阅读全文
posted @ 2018-11-22 00:05 是谁扭曲了时空 阅读(1996) 评论(0) 推荐(0)
摘要:命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式的结构 命令模式是对命令的封装。命令 阅读全文
posted @ 2018-11-21 11:12 是谁扭曲了时空 阅读(195) 评论(0) 推荐(0)
摘要:在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过。我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以这篇文章对单例模式做了详解。 一、单例模式定义: 单例模式确保某个类只有一个实例,而且自行实例化并向 阅读全文
posted @ 2018-11-19 10:19 是谁扭曲了时空 阅读(256) 评论(0) 推荐(1)
摘要:@Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE)这个是说在每次注入的时候回自动创建一个新的bean实例 @Scope(value=ConfigurableBeanFactory.SCOPE_SINGLETON)单例模式,在整个应用中只能创建一 阅读全文
posted @ 2018-11-18 20:09 是谁扭曲了时空 阅读(1881) 评论(0) 推荐(0)
摘要:背景 用户量比较大或者用户地理位置分布范围很广的项目,一般都会有多个机房。这个时候如果上线springCloud服务的话,我们希望一个机房内的服务优先调用同一个机房内的服务,当同一个机房的服务不可用的时候,再去调用其它机房的服务,以达到减少延时的作用。 概念 eureka提供了region和zone 阅读全文
posted @ 2018-11-17 15:15 是谁扭曲了时空 阅读(1493) 评论(0) 推荐(1)
摘要:概述 ReentrantReadWriteLock是Lock的另一种实现方式,ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。在实际应 阅读全文
posted @ 2018-11-15 11:50 是谁扭曲了时空 阅读(185) 评论(0) 推荐(0)
摘要:一、HTTP中定义了以下几种请求方法: 1、GET;2、POST;3、PUT;4、DELETE; 5、HEAD;6、TRACE;7、OPTIONS; 二、各个方法介绍: 1、GET方法: 对这个资源的查操作。 2、DELETE方法: 对这个资源的删操作。但要注意:客户端无法保证删除操作一定会被执行, 阅读全文
posted @ 2018-11-13 15:04 是谁扭曲了时空 阅读(320) 评论(0) 推荐(0)
摘要:线程状态: 线程池状态: 1. RUNNING (01) 状态说明:线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理。(02) 状态切换:线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建,就处于RUNNING状态!道理很简单,在ctl的初始化代码中(如下), 阅读全文
posted @ 2018-11-12 15:33 是谁扭曲了时空 阅读(2399) 评论(0) 推荐(1)
摘要:1.工厂模式简介 工厂模式用于对象的创建,使得客户从具体的产品对象中被解耦。 2.工厂模式分类 这里以制造coffee的例子开始工厂模式设计之旅。 我们知道coffee只是一种泛举,在点购咖啡时需要指定具体的咖啡种类:美式咖啡、卡布奇诺、拿铁等等。 2.1 简单工厂 简单工厂实际不能算作一种设计模式 阅读全文
posted @ 2018-11-12 11:28 是谁扭曲了时空 阅读(195) 评论(0) 推荐(0)
摘要:1、线程系列 2、JVM 3、servlet/JSP系列 4、Redis系列 阅读全文
posted @ 2018-11-11 02:42 是谁扭曲了时空 阅读(203) 评论(0) 推荐(0)
摘要:AtomicLong简要介绍 AtomicLong是作用是对长整形进行原子操作,显而易见,在java1.8中新加入了一个新的原子类LongAdder,该类也可以保证Long类型操作的原子性,相对于AtomicLong,LongAdder有着更高的性能和更好的表现,可以完全替代AtomicLong的来 阅读全文
posted @ 2018-11-10 00:21 是谁扭曲了时空 阅读(765) 评论(0) 推荐(0)
摘要:1、初步认识 观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 2、这个模式的结构图 3、可以看到,该模式包含四个角色 抽象被观 阅读全文
posted @ 2018-11-09 11:21 是谁扭曲了时空 阅读(199) 评论(0) 推荐(0)
摘要:配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eureka.server.enable-self-preservation false 关闭注册中心的 阅读全文
posted @ 2018-11-08 21:52 是谁扭曲了时空 阅读(2874) 评论(0) 推荐(1)
摘要:@loadBalance注解修饰的restTemplate才能实现服务名的调用,没有修饰的restTemplate是没有该功能的。 @loadBalance是Netflix的ribbon中的一个负载均衡的注解 loadBalance注解做了些什么 阅读全文
posted @ 2018-11-08 15:01 是谁扭曲了时空 阅读(2074) 评论(0) 推荐(0)
摘要:官方API描述 Dependency scope 是用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。 自从2.0.9后,新增了1种,现在有了6种scope: compile默认的scope,表示 dependency 都可以在生命周期中使用。 阅读全文
posted @ 2018-11-08 13:57 是谁扭曲了时空 阅读(298) 评论(0) 推荐(0)
摘要:在Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。 Java SPI机制SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在jav 阅读全文
posted @ 2018-11-08 11:04 是谁扭曲了时空 阅读(14279) 评论(3) 推荐(2)
摘要:Github或者码云上新建项目 $ git init $ git add * $ git remote add origin https://gitee.com/demo/demo.git $ git pull $ git commit -m "新建项目demo-base" $ git push - 阅读全文
posted @ 2018-11-07 17:26 是谁扭曲了时空 阅读(1140) 评论(0) 推荐(0)
摘要:前言 IO 包中是用了大量的装饰器模式 为了弄明白装饰器模式的本质,我查看了很多资料,发现有很多文章要么说的很苦涩,要么举的例子不恰当。 其实我们可以这样理解装饰器模式, 就拿自己举例子,你把自己裸体的样子,想象成被装饰的对象。你的鞋子,你的寸衣,你的外套,你的手表,你的帽子 等等,都是你的装饰物, 阅读全文
posted @ 2018-11-01 18:08 是谁扭曲了时空 阅读(224) 评论(0) 推荐(0)