随笔分类 -  java

摘要:在Java程序中,可以通过给System.in和System.out重新赋值来重定向标准输入和输出。 在单元测试的时候,为了对涉及到标准输入和输出的程序进行测试,常用的做法是将标准输入和输出重定向到文件,这样就可以用程序实现自动化的比对。但是这样做会有文件读取的开销,可能会降低单元测试的运行效率。 阅读全文
posted @ 2022-05-03 10:24 baiyuxuan 阅读(95) 评论(0) 推荐(0) 编辑
摘要:大家都知道,Java在创建异常对象时会生成调用栈信息,这样当异常抛出时,开发者就能从报错信息中看到异常抛出的路径,非常有利于定位问题。 但是,调用栈信息的生成是一件非常耗时的工作。在某些特殊情况下,我们需要用异常来实现控制流跳转(比如从多层递归中跳出),此时不需要生成调用栈信息。在这种情况下,关闭异 阅读全文
posted @ 2022-04-27 16:01 baiyuxuan 阅读(68) 评论(0) 推荐(0) 编辑
摘要:前言 Java8新增的Stream API是一个强大的特性,它可以简化集合中的常用操作,包括过滤、映射、分组等。下面就来实现一个简易版的Stream。 从表面上看,流似乎和列表很接近,但实际上它们有着本质的区别。 列表是多个元素的容器,当列表被创建出来时,它里面的每个元素也已经被创建出来了。 流是一 阅读全文
posted @ 2022-03-19 16:03 baiyuxuan 阅读(65) 评论(0) 推荐(0) 编辑
摘要:Java 1.8之后,新增了一个叫做SerializedLambda的类,它用来保存Lambda表达式序列化之后的数据,通过SerializedLambda可以获取Lambda表达式的各种元信息,包括参数类型、返回值类型等。 下面的代码可以获取一个Lambda表达式对应的SerializedLamb 阅读全文
posted @ 2022-02-22 08:53 baiyuxuan 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:假设有以下接口: public interface Factory<T> { T create(); } 这是一个泛型接口,在实现Factory的时候需要指定泛型参数: public class StringFactory implements Factory<String> { @Override 阅读全文
posted @ 2021-12-12 18:40 baiyuxuan 阅读(974) 评论(0) 推荐(0) 编辑
摘要:这篇文章介绍如何用Parser Combinator实现一个简单的正则表达式引擎。 Cursor Cursor封装了字符串的状态,表示一个光标位置。光标位置只能向后移动,可以方便地获取光标指向的字符,以及判断是否到达字符串末尾。 public class Cursor { private final 阅读全文
posted @ 2021-10-20 20:00 baiyuxuan 阅读(95) 评论(0) 推荐(0) 编辑
摘要:示例工程 引入Maven依赖: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.5</version> </ 阅读全文
posted @ 2021-07-01 09:51 baiyuxuan 阅读(274) 评论(0) 推荐(0) 编辑
摘要:工程搭建 Maven依赖: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.5</version> </de 阅读全文
posted @ 2021-06-30 10:08 baiyuxuan 阅读(228) 评论(0) 推荐(0) 编辑
摘要:策略模式的简单实现 首先定义一个Strategy接口来表示一个策略: public interface Strategy { String flag(); void process(); } 其中flag方法返回当前策略的唯一标识,process则是该策略的具体执行逻辑。 下面是Strategy接口 阅读全文
posted @ 2021-06-11 08:04 baiyuxuan 阅读(1002) 评论(0) 推荐(0) 编辑
摘要:ByxOrm是一个模仿MyBatis设计的轻量级ORM框架,支持以下特性: 使用动态代理生成Dao接口的实现类 使用注解配置Dao方法对应的SQL语句 使用注解配置实体类字段与数据库列名的对应关系 动态查询和动态更新 项目地址:https://github.com/byx2000/byx-orm M 阅读全文
posted @ 2021-05-13 21:14 baiyuxuan 阅读(102) 评论(0) 推荐(0) 编辑
摘要:ByxContainerAnnotation是一个模仿Spring IOC容器基于注解的轻量级IOC容器,支持构造函数注入和字段注入,支持循环依赖处理和检测,具有高可扩展的插件系统。 项目地址:https://github.com/byx2000/byx-container-annotation M 阅读全文
posted @ 2021-05-13 14:24 baiyuxuan 阅读(57) 评论(0) 推荐(0) 编辑
摘要:开发byx-spring-boot-starter项目 首先创建一个Maven项目,名为byx-spring-boot-starter: <groupId>byx.spring</groupId> <artifactId>byx-spring-boot-starter</artifactId> <v 阅读全文
posted @ 2021-04-17 20:54 baiyuxuan 阅读(232) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://leetcode-cn.com/problems/print-in-order/ 解法1:使用synchronized、wait和notifyAll class Foo { private int state = 1; public Foo() {} public void 阅读全文
posted @ 2021-03-13 16:23 baiyuxuan 阅读(66) 评论(0) 推荐(0) 编辑
摘要:最近在写一个项目,里面需要频繁使用反射操作。由于Java的反射API使用起来比较复杂,所以我决定把常用的反射操作封装成一个工具类:ReflectUtils。 在ReflectUtils中,有这么一个call方法: public static <T> T call(Object obj, String 阅读全文
posted @ 2021-02-25 13:01 baiyuxuan 阅读(115) 评论(0) 推荐(0) 编辑
摘要:ByxAOP是一个基于JDK动态代理的简易AOP框架,具有以下功能特性: 对目标对象的特定方法进行拦截和增强 支持灵活的拦截规则和自定义拦截规则 动态实现接口和批量实现接口方法 灵活的对象代理机制 项目地址:github 码云 使用示例 首先来通过一个简单例子快速了解ByxAOP。 假设我们有一个U 阅读全文
posted @ 2021-02-24 11:24 baiyuxuan 阅读(52) 评论(0) 推荐(0) 编辑
摘要:假设有下面三个类: public class A { private B b; public A(B b) { this.b = b; } ... } public class B { private C c; public B(C c) { this.c = c; } ... } public c 阅读全文
posted @ 2021-02-16 17:07 baiyuxuan 阅读(52) 评论(0) 推荐(0) 编辑
摘要:本系列文章介绍ByxContainer的实现思路。 ByxContainer是一个简单的轻量级IOC容器,具有以下特性: 使用JSON格式的配置文件 支持构造函数注入、静态工厂注入、实例工厂注入、属性注入、setter注入、条件注入 组件的延迟加载和单例组件 根据id注册、获取容器中的组件 ByxC 阅读全文
posted @ 2021-02-15 12:02 baiyuxuan 阅读(30) 评论(0) 推荐(0) 编辑
摘要:本系列文章介绍ByxContainer的实现思路。 ByxContainer是一个简单的轻量级IOC容器,具有以下特性: 使用JSON格式的配置文件 支持构造函数注入、静态工厂注入、实例工厂注入、属性注入、setter注入、条件注入 组件的延迟加载和单例组件 根据id注册、获取容器中的组件 ByxC 阅读全文
posted @ 2021-02-13 11:50 baiyuxuan 阅读(44) 评论(0) 推荐(0) 编辑
摘要:ByxContainer是一个用Java编写的轻量级IOC容器,具有以下特性: 使用JSON格式的配置文件 支持构造函数注入、静态工厂注入、实例工厂注入、属性注入、setter注入、条件注入 组件的延迟加载和单例组件 根据id注册、获取容器中的组件 项目地址:https://github.com/b 阅读全文
posted @ 2021-02-10 17:46 baiyuxuan 阅读(105) 评论(0) 推荐(0) 编辑
摘要:本系列文章介绍ByxContainer的实现思路。 ByxContainer是一个简单的轻量级IOC容器,具有以下特性: 使用JSON格式的配置文件 支持构造函数注入、静态工厂注入、实例工厂注入、属性注入、setter注入、条件注入 组件的延迟加载和单例组件 根据id注册、获取容器中的组件 ByxC 阅读全文
posted @ 2021-02-09 21:15 baiyuxuan 阅读(51) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示