
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 · 1325 阅读 · 0 评论 -
细数23种设计模式以及Java代码实现
设计模式是在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 创建型 创建型模式是抽象对象实例化的过程,用于帮助创建对象的实例。 工厂模式 简单工厂 描述 定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。简单工厂方法的功能是选择合适的实现类并创建。本质是选择实现。简单工厂也称为静态工厂,可以把简单工...原创 2019-03-15 22:59:24 · 2076 阅读 · 0 评论 -
JDK1.8新特性(一)
官方文档 https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html 教程 http://www.runoob.com/java/java8-new-features.html Lambda表达式 //示例:集合排序(函数体只有一行不需大括号) List<String> strList = A...原创 2019-03-21 20:12:14 · 286 阅读 · 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 · 1765 阅读 · 0 评论 -
jdk1.8新特性(三)
Optional类 常用方法 Optional.of(T t):创建一个Optional实例 Optional.empty():创建一个空的Optional实例 Optional.ofNullable(T t):若t不为null,创建Optional实例,否则创建空实例 isPresent():判断是否包含值 orElse(T t):如果调用对象包含值,返回该值,否则返回t orElseGet(...原创 2019-03-21 20:44:58 · 322 阅读 · 0 评论 -
自己实现一个JDK动态代理
回顾JDK代理 Spring AOP 用到了两种动态代理模式:JDK动态代理和CGLIB动态代理,两种动态代理形成互补。今天我们来尝试纯手写一个简版的JDK动态代理,来了解它的底层实现原理。我们先来回顾一下JDK动态代理 动态代理的条件 两个角色: 代理对象,被代理对象 代理对象需要完成被代理对象的需要完成的业务操作 代理对象持有被代理对象的引用 JDK动态代理 被代理对象必须实现接口,CGLI...原创 2019-07-14 20:46:03 · 478 阅读 · 0 评论