摘要:总结 必读!!!原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 数据结构选择:MySQL普遍使用带“顺序访问指针”的B+Tree实现其索引结构。 数据结构选择B+树的原因:磁盘IO次数少 + 磁盘IO时间短 磁盘
阅读全文
摘要:原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此My
阅读全文
摘要:总结 Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求Feign包含了Ribbon,其中请求的URL中的IP地址,就是Ribbon的负载均衡来寻找的 Spring Cloud核心组件:Feign 现在订单服务确实知道库存服务、积分服务、仓库服务在哪里了,同
阅读全文
摘要:拜托!面试请不要再问我Spring Cloud底层原理 目录 一、业务场景介绍 二、Spring Cloud核心组件:Eureka 三、Spring Cloud核心组件:Feign 四、Spring Cloud核心组件:Ribbon 五、Spring Cloud核心组件:Hystrix 六、Spri
阅读全文
摘要:总结 Zookeeper保证CP Eureka保证AP 分布式领域的CAP理论: C - Consistency 一致性 A - Availability 可用性 P - Partition tolerance 分区容忍性 CAP的理论提出这三者不可兼得,而“P分区容忍性”显然是不可或缺。 P -
阅读全文
摘要:总结 Spring 是一个“引擎”; Spring MVC 是基于Spring的一个 MVC 框架 ; Spring Boot 只是一个配置工具,整合工具,辅助工具, 是一套快速开发整合包。 Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。 大家觉得挺好用,于是按照这
阅读全文
摘要:1.怎样在方法里面得到Request,或者Session? 这种方法时比较常见的一种 将HttpServletRequest作为Spring MVC 的方法参数传入。然后通过request间接的获取到session。 public void getSessionAction(HttpServletR
阅读全文
摘要:总结 1.使用asm技术扫描<context:component-scan base-package="xxxx">里,base-package路径下(以及jar包里的base-package目录)的.class文件,扫描有以下注解的class (判断一个类是否有注解,使用AnnotationMet
阅读全文
摘要:一、自定义注解的定义 1.1 自定义注解的规则 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.2. 参数成员只能用public或默认(default)这两个访问权修饰3.
阅读全文
摘要:BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。 (1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。Applica
阅读全文
摘要:新版本 - 循循善诱,容易理解 总结 1.涉及模版模式,Spring 能让用户定制 Bean 的创建过程--》指的是init-method,destory-method -- 这里的模板模式的实现,并不是标准的抽象类的实现方式,而是有点类似我们前面讲到的 Callback 回调的实现方式,也就是将要
阅读全文
摘要:Spring容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体情况还是要结合Bean的作用域来讨论。 (1)对于prototype作用域的Bean,每次都创建一个新对象,也就是线程之间不存在Bean共享,因此不会有线程安全问题。 (2)
阅读全文
摘要:总结 1. 先写测试代码,并执行,得到失败结果 比如我们要写实现一个功能,当输入值大于等于0时返回true,当输入值小于0时返回false。按照tdd的步骤先要写一个肯定会失败的测试,注意测试代码先于实现代码,因为还没有实现代码,所以测试必定是失败的。 2. 快速实现代码让测试通过 先不管代码写的丑
阅读全文
摘要:Code Structure 代码结构 命名保持规范,驼峰命名。 Boolean方法,起名要以"is" / "has"开头。 方法名称要是动词。 ...... Design Principles 设计原则 Apply the Single-Responsibility principle to in
阅读全文
摘要:一、SonarQube的安装使用 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,本文将会介绍一下这个工具的安装、配置以及使用。 下载地址:http://www.sonarqube.org/downloads/ 本文下载的版本是sonarqube-6.7.6。
阅读全文
摘要:CME(芝加哥商品交易所 Chicago Mercantile Exchange)公式 CME Group version = (livePrice - tradePrice) * "size of contract" * "number of contracts" 网站:https://www.c
阅读全文
摘要:总结--请介绍下你如何运用EfficiencyRatio策略 1.“EfficiencyRatio效率比值” 概念是美国交易员 Perry J. Kaufman 佩里·考夫曼 提出的,是一种趋势强度的衡量。它的计算公式是: ER = N期间内价格总变化 / N期间内个别价格变化的绝对值 取值范围为-
阅读全文
摘要:QA tcp为什么要三次握手,两次不行吗? 两次握手只能保证单向连接是畅通的。 Step1 A -> B : 你好,B。 Step2 A <- B : 收到。你好,A。 这样的两次握手过程, A 向 B 打招呼得到了回应,即 A 向 B 发送数据,B 是可以收到的。 但是 B 向 A 打招呼,A 还
阅读全文
摘要:方法1:实现 Cloneable 接口,重写 clone() 方法 实现 Cloneable 接口,重写 clone() 方法 --> 一般重写,就是调用super.clone() ...就是Object的native方法clone() 易错: 如果调用某个对象的clone(),但是该类没有实现 C
阅读全文
摘要:引入TLAB的原因 多线程环境下,在堆上创建对象很容易造成线程不安全现象。 可能出现线程A正在给对象O1分配内存M,指针还没来得及修改,线程B又同时使用了内存M来给对象O2分配内存的情况。 如何开启TLAB? 开启本地线程分配缓冲(Thread Local Allocation Buffer,TLA
阅读全文
摘要:总结 //例1:User类型的对象u就没有逃逸出方法test public void test(int x,int y ){ String s = “”; User u = …. ….. } //例2:User类型的对象u就逃逸出方法test public User test(int x,int y
阅读全文
摘要:总结 不是必要的!有@Override注解,IDE会检查,重载是否规范,是否符合要求!否则会给出错误提示!没有@Override注解,要自己注意是否实现了所有的方法,方法签名是否正确等信息,很容易出错。 /** * Annotation type used to mark methods that
阅读全文
摘要:总结 1.线程安全性不同 HashMap线程不安全;(需要多线程操作的时候可以使用线程安全的ConcurrentHashMap。ConcurrentHashMap虽然也是线程安全的,但是它的效率比Hashtable要高好多倍。因为ConcurrentHashMap使用了分段锁,并不对整个数据进行锁定
阅读全文
摘要:transient总结 当有些属性不希望序列化时,transient关键字为我们提供了便利。你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。 transient关键字只能修饰变量,而不能修饰方法和类
阅读全文
摘要:String的字符串拘留 String s="abcd" String s="abcd"是一种非常特殊的形式,和new 有本质的区别。它是java中唯一不需要new 就可以产生对象的途径。以String s="abcd";形式赋值在java中叫直接量,它是在常量池中而不是象new一样放在压缩堆中。
阅读全文
摘要:总结 编译期间 确定 类的静态方法,构造方法,私有方法 方法的重载 运行期间 确定 方法的重写,重载 解析 编译期间就确定了。类的静态方法,构造方法,私有方法。 调用目标在程序代码写好、编译器进行编译时就必须确定下来。这类方法的调用称为解析。在Java语言中符合“编译期可知,运行期不可变”这个要求的
阅读全文
摘要:总结 1-valueOf()缓存使用到设计模式:享元模式 单例模式和享元模式都是为了避免重复创建对象,但是其本质是不一样的: 其实现方式不一样,单例是一个类只有一个唯一的实例,而享元可以有多个实例,只是通过一个共享容器来存储不同的对象。 其使用场景不一样, 单例是强调减少实例化提升性能,因此一般用于
阅读全文
摘要:总结 1.为何byte的取值范围是[-128, 127] byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。所以byte类型的取值范围也是[-128, 127]。 Java规定,用[1000 0000]补表示-128: (-1) + (-127) = [1
阅读全文
摘要:https://medium.com/@hch.hkcontact/goldman-sachs-top-50-leetcode-questions-q7-high-five-a933247c219a Coderpad describe how to implement HashMap Impleme
阅读全文
摘要:1.【不好的解法】只适用于单线程环境 缺陷:当两个线程同时执行到 if (instance == null) 时,两个线程均会创建一个实例 //只适用于单线程环境 public class Singleton{ //将无参构造函数私有化,避免外部自行初始化 private Singleton(){}
阅读全文
摘要:https://www.cnblogs.com/deng-tao/p/6536302.html
阅读全文
摘要:leetcode官方解析(必看) https://leetcode-cn.com/problems/implement-trie-prefix-tree/solution/shi-xian-trie-qian-zhui-shu-by-leetcode/ Trie用处 Trie (发音为 "try")
阅读全文
摘要:总结 1-正数的原码,反码,补码都一致;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) [+1] = [00000001]原 = [00000001]反 = [00000001]补 [-1] = [10000001]原 = [11111110]反
阅读全文