不积跬步,无以至千里; 不积小流,无以成江海。
摘要: 摘自海子:Java内部类详解 深入理解内部类 1.为什么成员内部类可以无条件访问外部类的成员? 在此之前,我们已经讨论过了成员内部类可以无条件访问外部类的成员,那具体究竟是如何实现的呢?下面通过反编译字节码文件看看究竟。事实上,编译器在进行编译的时候,会将成员内部类单独编译成一个字节码文件,下面是O 阅读全文
posted @ 2018-12-15 10:54 去流浪,去换成长 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 出处:Java 8 中的 Stream API详解 什么是流 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需 阅读全文
posted @ 2018-12-12 14:09 去流浪,去换成长 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Java 8-接口的默认方法和静态方法 Java 8使用两个新概念扩展了接口的含义:默认方法和静态方法。默认方法使得接口有点类似traits,不过要实现的目标不一样。默认方法使得开发者可以在 不破坏二进制兼容性的前提下,往现存接口中添加新的方法,即不强制那些实现了该接口的类也同时实现这个新加的方法。 阅读全文
posted @ 2018-12-07 17:52 去流浪,去换成长 阅读(125) 评论(0) 推荐(0) 编辑
摘要: Lambda表达式 Lambda表达式是一个类似于匿名函数的语法糖,它实现一个函数式接口,它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理。 一个 Lambda 表达式可以有零个或多个参数 参数的类型既可以明确声明,也可以根据上下文来推断。例如:(int a)与(a)效果相同 所有 阅读全文
posted @ 2018-12-07 15:38 去流浪,去换成长 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 向后兼容 阅读全文
posted @ 2018-12-07 12:42 去流浪,去换成长 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 高内聚:(模块内部高内聚) 1、确定模块要完成的功能点,只完成本质功能,不提供多余功能。(理解为责任分离,单一责任原则) 即是在一个模块内部功能也要独立,不能散乱,故名为内聚。 2、代码责任单一,可读 3、高内聚的代码,功能独立,可复用。 4、功能独立,如下单业务,只做下单业务的功能,当要修改时,不 阅读全文
posted @ 2018-12-07 10:29 去流浪,去换成长 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 为什么使用注解: 1、通过注解,可保存源数据在Java源代码中;并且注解不同于注释,注解享有编译期的类型检查保护。 2、可在描述符性质的类或接口中抽取重复性的工作,通过注解来简化与自动化这些工作。 注解本身: 1、三个点: 1) 注解的@Target和@Retention 2) 注解的属性 3) 注 阅读全文
posted @ 2018-12-05 14:04 去流浪,去换成长 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 注解: @Cacheable // 在方法调用前,先在缓存中去找,若没有,则在方法调用结束后,放到缓存中,属性cacheNames、key。key中可以使用SpEl表达式,如#id,#root.args[0] @CachePut // 每次调用方法,都会刷新缓存。默认是调用方法后刷新;属性可以使用 阅读全文
posted @ 2018-12-04 15:36 去流浪,去换成长 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 自定义starter 1、了解相关注解: @Configuration //标志这是一个配置类 @ConditionalOnXXX //在指定条件成立的条件下该类才生效 @AutoConfigureOrder //指定自动配置类的顺序 @AutoConfigureAfter //功能同上 @Conf 阅读全文
posted @ 2018-12-03 14:45 去流浪,去换成长 阅读(150) 评论(0) 推荐(0) 编辑