摘要:基本方法: ofNullable() 为可能 null 的值创建一个 Optional 实例, 然后可以对该实例遍历/过滤, 判断是否存在,或者为空时执行.. ifPresent(...) 如果值存在则执行里面的方法 应用场景: 1> 默认值 传统方式 杜绝使用这种方式(不简洁) 正确方式(链式调用
阅读全文
摘要:1、使用 MessageFormat 格式化文本 The output is: 2、自定义注解 定义注解(可参考 参考一, 参考二) 通过 aop 做拦截处理 3、条件判断注解 ConditionalOnProperty 的意思是,当 usemysql.local 属性配置存在并且不为 false,
阅读全文
摘要:ConcurrentHashMap: http://www.importnew.com/29832.html jvm 性能调优工具之 jstack 与 jstat -gcutil 用法 RxJava 与 Postgresql Harbor 私有镜像注入中心 JHipster 脚手架 Spring B
阅读全文
摘要:官方文档,Spring Cloud 对其封装,Spring Cloud eureka 文档
阅读全文
摘要:feign 作为一个声明式的 Http Client 开源项目。在微服务领域,相比于传统的 apache httpclient 与在 spring 中较为活跃的 RestTemplate 更面向服务化,更易于使用。底层封装了 Jersey 与 CXF 分别用于 REsT 与 SOAP 的服务(对应有
阅读全文
摘要:此部分内容将包含 ResponseEntity、 RestTemplate、WebUtils 等 1. ResponseEntity ① Sprring Mvc 中作为方法的返回值使用法 @RequestMapping("/demo") public ResponseEntity<?> getDem
阅读全文
摘要:注意: 1.小心使用 @EnableWebMvc 注解 根据官方文档,尽量不要使用 @EnableWebMvc 注解,因为它会关闭默认配置。 ① 你希望关闭默认配置,自己完全重新实现一个 ② 你希望重写部分配置 或者 2.关于静态资源的映射 有两个属性可以了解下:第一行定义匹配的路由地址,第二行定义
阅读全文
摘要:模板引擎接口 ITemplateEngine 一、后台数据与外部数据 1.处理后台数据 $表达式是个变量表达式,用于处理在 request parameters and the request, session and application 中的变量 ${x} will return a vari
阅读全文
摘要:AOP 概述 Aspect-oriented programming(面向切面编程)。最广为人知的面向侧面的程序设计语言是由施乐帕洛阿尔托研究中心 (施乐帕克 nb!)开发的AspectJ,该语言可以和Java编程语言结合在一起使用。 AOP 面向切面编程,作为面向对象编程的一种补充,专门用于处理系
阅读全文
摘要:大致分为:Field 注入、构造注入、setter 注入 其中 Field 注入被认为有害的: 1. 违反了单一原则 当一个 class 中有多个依赖时,如果仅仅使用 Field 注入,则看不出有很多依赖关系。而使用构造注入\setter 注入,可以观察到,这样我通常会对代码进行重构。 2. 依赖隐
阅读全文
摘要:下方代码主要说明: String b = new String("xyz") 创建2个对象,一个在常量池中的 "xyz",一个 String 实例对象,返回的是实例对象引用。 intern() 方法有两个作用,一是取出 String Pool 中的值(可能是字面量可能是引用),二是如果 String
阅读全文
摘要:局部变量需初始化才能访问 窄化导致自增异常 隐藏的窄化异常 提升不会发生自增异常, Math 的 round 方法并不是完全四舍五入。它的实现相当于 示例: 局部变量问题(方法栈空间的变量所指向的值会被复制一份到栈空间) 233
阅读全文
摘要:一、字符串 1.比较 String、HashSet、List 中的 contains 方法 其中, String、List 都使用了 indexOf 方法,本质是遍历,时间效率为 O(n)。而 HashSet 使用了计算 hash值的方式,时间效率为 O(1) 级别。 2.String 中为什么需要
阅读全文
摘要:1 为什么需要无参构造器? 第一个是继承需要 super 调用父类的构造器(父类构造器必须存在且不为 private。可以是无参/默认构造器,也可以是有参构造器),特别的如果父类不包含无参构造器的话,子类继承须显示调用 super(param) 这样的方法进行初始化,如下示例;如果是无参构造器,子类
阅读全文
摘要:List 在 java 中是个有序序列: 一、容量 ArrayList 中有一个容量概念,表示基础数组的大小(无参时默认为 10)。在需要的时候(比如 add操作)会自动增加其容量。LinkedList 没有这个概念。 TreeMap 也有容量,默认是 16. 二、改善的 search 方法 Lin
阅读全文
摘要:举例: 使用 javap -c 查看字节码 说明: 造成两种区别对待的等价方式,在于 valueOf 方法的实现:(low 与 high 分别是 -128 与 127),底层原理:IntegerCache 本质是编译期常量 static final Integer cache[], 一个 Integ
阅读全文
摘要:概念:多个进程对共享系统资源的相互竞争,导致循环等待的现象称之为死锁。 特点:多进程,共享一个 或多个资源,相互竞争,没有中断机制。 相互竞争:一个进程占用资源的同时并且等待被另一个进程占有的资源,同样另一个进程在占有的同时等待这个进程占用的资源。
阅读全文
摘要:一、原理概要 lambda 表示式,可以作为某些匿名内部类的替代。主要目的是调用该内部类中的方法,而该方法的实现(重写)由 lambda表示式决定。 通常,我们可能不关心匿名内部类中的具体方法(被重写的方法),而只关心该方法是怎么被重写的(方法的实现)。因此,我们可以构造一个中间对象(通常是接口,比
阅读全文
摘要:计算机/二进制 如何表示一个负数? 比如 1,可以使用 0001 表示。 使用最高次位为 1 表示,则 -1 使用 1001。缺点:相加不等与 0,比如 -1 + 1 等于 1010 = -2; 使用反码表示,-1 表示为 1110。缺点:存在 -0,1111 为 -0; 使用补码表示,-1 表示为
阅读全文
摘要:一、Unix IO 与 IPC Unix IO:Open-Read or Write-Close IPC:open socket - receive and send to socket - close socket IPC 全称是 InterProcess Communication。 当消息发出
阅读全文