BladeCode

Life's a struggle!

0%

float 和 double 同样也是可以表示浮点数,为啥在对于要求精确的进度计算时,尤其是关于币值相关,都采用 BigDecimal 类型来处理?

  1. float 和 double 类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的 快速近似 计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该用于要求精确结果的场合。——《Effective Java》
  2. float 精度 7 位,double 精度 16 位
阅读全文 »

这是一篇在Windows系统下,持续更新常用开发软件安装汇总,当然一些简单得安装就在这里记录,不废话了

JDK

官方下载地址,选择需要的版本下载安装包

安装完成,设置环境变量,右击我的电脑–>属性–>高级系统设置–>高级–>环境变量

阅读全文 »

Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据等,众所周知,Flowable是Activit的一个分叉,Flowable的第一个版本(5.22.0)是基于Activit(5.21.0),关于为什么Flowable会从Activit分叉,感兴趣可以查看Flowable官方的文章Flowable and Activiti: What the Fork?!,这里不在赘述这些内容

阅读全文 »

连续三年申请参加 Google Developer Days,今年终于中签了,而且和好友大蛇丸及公司同事同时中签(可能是我们都使用了忍术)。嗯,终于离404公司又进了一步,哈哈哈~
废话不啰嗦了,这篇文章就唠唠参加 GDD 的前前后后。

阅读全文 »

在实际开发过程中,不管是服务端(Java),还是客户端(Android)都需要创建对应的实例bean对象,用来实例化对象,在对需要实例化的对象中,通常需要写 setget 方法,字段少的时候,还能忍受,尤其当客户端字段多的时候,而且字段类型或者字段名称来回改动时,稍不注意,就很大机率修改不全面,就会造成一些隐藏bug,有没有不需要手动取写(快捷键生成)这些方法,当然有,本片文章,我们就来学习 Lombok

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more(Project Lombok是一个java库,可以自动插入编辑器并构建工具,为您的java增添色彩。 永远不要再写另一个getter或equals方法,使用一个注释,你的类有一个功能齐全的构建器,自动化你的日志记录变量等等),这是官方对Lombok的介绍,简单来讲就是通过注解的方式,代替一些重复性的代码,让代码更加简洁

阅读全文 »

关于 SpringBoot 配置文件,在之前的文章中已经提到配置文件格式,主要是两种格式的配置,这里并没有哪个配置写法一定优于另一种写法,对于配置文件名(application.yml 或者 application.properties),可以更改,为了减少不必要的麻烦,不建议修改,本篇文章以 yml 文件作为示例

阅读全文 »

背景

和朋友一起维护的开源组织(我就是打个辅助,逃~),其中有一个系列的项目,这些项目统一通过 base 项目的 pom 文件管理这个系列项目依赖的第三方 jar,其他一些辅助项目(如:tools)项目主要是一些常用工具方法的封装,为了能让我们在不同机器,不同地点能够无缝切换,更重要的让使用的伙伴能以最简便的方式运行(避免不必要的配置),我们需要把通用的东西托管起来,那么就需要将这些配置依赖或辅助 jar 托管到 Maven中央仓库,话不多说,就跟着我的步骤来看看如何将 jar 发布到 Maven中央仓库

阅读全文 »

在 SpringBoot 系列的第二篇文章中,已经详细分析了 SpringBoot 的启动过程,那么这篇文章,我们通过源码调试的方式来验证我们的分析,首先我们在控制台中输入 java 命令,可用输出 JDK 给我们提供了一些命令,其中-agentlib命令就是本篇文章所介绍,用于我们进行源码调试

阅读全文 »

我们在开发过程中,使用 java -jar you-jar-name.jar 命令来启动应用,它是如何启动?以及它如何去寻找 .class 文件并执行这些文件?本节就带着这两个问题,让我们一层层解开 SpringBoot 项目的 jar 启动过程,废话不多说,跟着我的脚步一起去探索 spring-boot-load 的秘密。

SpringBoot(一)初识 已经解释了为什么在编译后的 jar 中根目录存在 org/springframework/boot/loader 内容,以及为了方便学习研究,我们需要在项目的依赖中导入 org.springframework.boot:spring-boot-loader 依赖。同时我们在解压的 you-jar-name.jar 文件中,查看对应的清单文件 MANIFEST.MF 内容,其中明确指出了应用的入口 org.springframework.boot.loader.JarLauncher 因此我们就从 JarLauncher 开始一步步深入

阅读全文 »