
java
蓝胖子(liaocan.top)
只有坚持,勇敢,专注和定力才能收获自己的的一片天空,个人博客网站 https://liaocan.top
展开
-
Java主流日志工具库
在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息。在 Java 世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子。我们先来逐一了解一下主流日志工具。日志框架java.util.logging (JUL)JDK1.4 开始,通过 java.util.logging 提供日志功能。它能满足基本的日志需要,但是功能没有 Log4j 强大,而且使用范围也没有 Log4...转载 2019-03-15 22:57:45 · 1304 阅读 · 0 评论 -
细数23种设计模式以及Java代码实现
设计模式是在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。创建型创建型模式是抽象对象实例化的过程,用于帮助创建对象的实例。工厂模式简单工厂描述定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。简单工厂方法的功能是选择合适的实现类并创建。本质是选择实现。简单工厂也称为静态工厂,可以把简单工...原创 2019-03-15 22:59:24 · 2013 阅读 · 0 评论 -
JDK1.8新特性(一)
官方文档https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html教程http://www.runoob.com/java/java8-new-features.htmlLambda表达式//示例:集合排序(函数体只有一行不需大括号)List<String> strList = A...原创 2019-03-21 20:12:14 · 275 阅读 · 0 评论 -
JDK1.8新特性(二)
创建流示例:Collection 提供了两个方法 stream() 与 parallelStream()List<String> list = new ArrayList<>();Stream<String> stream = list.stream(); //获取一个顺序流Stream<String> parallelStream = l...原创 2019-03-21 20:25:30 · 1751 阅读 · 0 评论 -
jdk1.8新特性(三)
Optional类常用方法Optional.of(T t):创建一个Optional实例Optional.empty():创建一个空的Optional实例Optional.ofNullable(T t):若t不为null,创建Optional实例,否则创建空实例isPresent():判断是否包含值orElse(T t):如果调用对象包含值,返回该值,否则返回torElseGet(...原创 2019-03-21 20:44:58 · 302 阅读 · 0 评论 -
自己实现一个JDK动态代理
回顾JDK代理Spring AOP 用到了两种动态代理模式:JDK动态代理和CGLIB动态代理,两种动态代理形成互补。今天我们来尝试纯手写一个简版的JDK动态代理,来了解它的底层实现原理。我们先来回顾一下JDK动态代理动态代理的条件两个角色: 代理对象,被代理对象代理对象需要完成被代理对象的需要完成的业务操作代理对象持有被代理对象的引用JDK动态代理 被代理对象必须实现接口,CGLI...原创 2019-07-14 20:46:03 · 457 阅读 · 0 评论