#Java

Fenix(菲尼克斯)是一个比 MyBatis 更加强大,为解决复杂、动态 SQL (JPQL) 而生的 Spring Data JPA 扩展库,目的是辅助开发者更方便、快捷的书写复杂、动态且易于维护的 SQL,支持 XML 和 Java 链式 API 两种方式来书写动态 SQL。 使用文档: https://blinkfox.github.io/fenix 特性 简单、轻量级、无副作用的集成和使用; 作为 JPA 的扩展和增强,兼容 Spring Dat...

阅读更多

一个 bug 被隐藏的时间越长,修复这个 bug 的代价就越大。 我曾经在 单元测试指南 一文中写到过单元测试的必要性和 Java 单元测试相关的工具及方法。单元测试能帮助我们在早期就规避、发现和修复很多不易察觉的 bug 和漏洞,而且更能保障后期的需求变动和代码重构时所带来的隐患,减少测&#x...

阅读更多

English Document 这是一个简单的用来对Java代码做性能评估的工具库。 特性 轻量级(jar包仅26kb) API简单易用 易于集成或扩展 Maven集成12345<dependency> <groupId>com.blinkfox</groupId> <artifactId>stalker</artifactId> <version>1.0.0</version></dependency> API 介绍和使用预先准备在对Java方法做性能测试之前,先准备好待测试的类和方法: 1234567891011121314151617181920212223242526272829303132333435363738394041424344/** * 用于测量(仅测...

阅读更多

一个轻量级、零依赖的 Java ASCII 表格生成库。 特性 轻量级、无依赖(jar包仅9kb) API简单易用 易于集成或定制修改,仅一个Java文件,且代码规范 集成使用Maven集成12345<dependency> <groupId>com.blinkfox</groupId> <artifactId>mini-table</artifactId> <version>1.0.0</version></dependency> API 使用示例1(无标题)123456String table = new MiniTable() .addHeaders("header1", "header2") .addDatas("col11", "col12") .addDatas("col21", "col22") .rend...

阅读更多

模式动机设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套各种颜色的版本。 第二种设计方案是根据实际需要对形状和&...

阅读更多

模式动机 在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类&#x...

阅读更多

一、前言软件也像人一样,具有生命力,从出生到死亡,会经历多种变化。软件架构设计也不是一蹴而就的,是不断地演进发展。每个程序员都可以从理解编程原则和模式中受益。 软件设计原则是一组帮助我们避开不良设计的指导方针。根据Robert Martin的理论,应该避免不良设计的以下三个...

阅读更多

一、必要性在我们公司中要做单元测试,确实比较难,因为公司缺少这种氛围,有也只是局部的,大多数工程师没有这方面的习惯和素养,很多人都是有一定的抵触的心理,经过我私下的了解大概有以下几种原因吧。 写单元测试太耗费时间了,项目要赶进度,编写单元测试会导致不&#x...

阅读更多

扩展注解的支持Java 8扩展了注解的上下文。现在几乎可以为任何东西添加注解:局部变量、泛型类、父类与接口的实现,就连方法的异常也能添加注解。下面演示几个例子: 1234567891011121314151617181920212223242526import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.util.ArrayList;import java.util.Collection;public class Annotations { @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE_USE, ElementType.TYPE_PARAMETER }) public @i...

阅读更多

新特性列表以下是Java8中的引入的部分新特性。关于Java8新特性更详细的介绍可参考这里。 接口默认方法和静态方法 Lambda 表达式 函数式接口 方法引用 Stream Optional Date/Time API 重复注解 扩展注解的支持 Base64 JavaFX 其它 JDBC4.2规范 更好的类型推测机制 HashMap性能提升 IO/NIO 的改进 JavaScript引擎Nashorn 并发(Concurrency) 类依赖分析器jdeps JVM的PermGen空间被移...

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×