Spring AOP可以在不侵入原有代码的情况下实现行为的拓展、增强,其内部就是通过动态代理来实现。本文我们将展示两大类、三种具体的代理方法
Ordinary Least Square(OLS) 普通最小二乘
最小二乘法作为一种常见的数学优化方法,其核心思想是通过对残差平方和的最小化来进行估计。这里我们将对线性条件下的最小二乘做相关说明与介绍,即 Ordinary Least Square(OLS) 普通最小二乘
Java 8之Stream实践
Java 8开始支持Stream流,Stream不同于IO流,它是对数据集合的一种高级抽象,配合Lambda通过函数式编程可以高效方便地对集合元素进行操作。这里通过具体的实例来讲解如何使用Java Stream
排序算法(八):Radix Sort 基数排序
Radix Sort 基数排序是对计数排序的改进,该算法可以支持针对浮点、字符串等类型元素进行排序。其主要思想是将排序元素按数位分割依次排序,从而实现整体有序。其同样可以具有线性时间的性能
Java IO:PrintStream、PrintWriter 打印流
虽然像FileOutputStream、OutputStreamWriter这些输出流可以输出信息,但是其会要求把数据先处理为字符串或字节数组,使用不便。为此在Java IO体系专门提供了两个打印流——PrintStream 字节打印流 、PrintWriter 字符打印流。二者均重载了print、printf 等函数,方便开发者直接输出打印其它类型的数据
MyBatis之分页查询:MyBatis PageHelper
MyBatis,作为目前流行的ORM框架,大大方便了日常开发。而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐。而MyBatis PageHelper的出现,则解决了这一痛点。这里将介绍如何在Spring Boot、MyBatis的环境中通过MyBatis PageHelper高效方便的实现分页查询
Java泛型(三):协变、通配符
本篇文章将会着重介绍Java泛型的协变性及通配符,以使得我们更好的更方便的来使用它
排序算法(七):Bucket Sort 桶排序
Couting Sort 计数排序虽然快,但其只能对整数进行排序有一点的局限性。而 Bucket Sort 桶排序则没有这个限制。这里我们就来详细介绍该算法,其一般在排序元素的值基本处于均匀分布的场景下应用
Java泛型(二):类型擦除与泛型翻译
之前的文章,我们介绍了Java泛型的基本使用,这里我们将深入到编译期、虚拟机层面当中去。具体地,将会分析介绍类型擦除、泛型翻译方面的内容
Java泛型(一):实践入门
说到泛型,大家肯定不会陌生。这个从Java SE5引入的新特性为我们的开发提供了极大地方便。一方面,使得我们可以对于不同数据类型的通用操作统一放在一个类或方法中去定义、实现,而无需针对每种不同的数据类型去提供多个类或方法;另一方面,泛型编程实现了编译期的类型安全检查,以避免运行期发生类型转换异常
Java IO:文件IO用法综述
Java的IO类体系庞大,初学者很容易迷失在其中。而解决这个问题的最好办法就是分门别类、各个击破。这里来介绍Java IO中关于文件IO一些常用类的具体用法
Linux之硬链接、软链接
在Linux中,我们可以通过ln命令来创建链接文件,具体地,其包含Hard Link硬链接、Sort Link软链接(或称为Symbolic Link符号链接)两种链接文件。本文就Linux的文件存储机制及如何建立链接文件进行介绍
Java 8之方法引用
Java 8开始支持Lambda表达式,其避免了我们创建匿名内部类的麻烦,形式上更加优雅简洁易读。而如果我们Lambda表达式中只是调用一个已经封装过的方法,则显得过于繁琐、不够简约,为此Java 8在支持Lambda表达式的同时,也提供了一个语法糖:方法引用
基于计量尺度的数据分类
在统计学中,可根据统计数据的计量尺度不同进行分类,具体地可划分为四类:Nominal Data 定类数据、Ordinal Data 定序数据、Interval Data 定距数据、Ratio Data 定比数据。这四种数据类型层次是由低到高的,高层次类型的数据可以应用低层次类型的数据的分析方法,反之则不行。这里来对这四种类型数据做详细的解释说明
SpringBoot之Runner启动器
一般项目在部署启动后,需要执行一些诸如清除缓存等初始化的工作,虽然可以通过人工手动调用接口等方式完成,但是会容易遗漏,且不够优雅。这里推荐使用SpringBoot的Runner启动器,其会在服务启动后自动地执行相关初始化任务
排序算法(六): Counting Sort 计数排序
之前文章介绍的一些排序算法都是基于比较来进行排序的,故它们在平均情况下的时间复杂度最好也不过是线性对数级别。这里我们来介绍一种简单的基于非比较的排序算法——Counting Sort 计数排序,其时间复杂度可以达到线性级别
Catalan Number 卡塔兰数及其应用
斐波那契数列对于很多人来说并不陌生,但对于Catalan Number卡塔兰数可能就那么熟悉了,其实它是一个组合数学中常在计数问题出现的数列
基于SSH的文件传输: scp命令
日常开发中,经常需要在服务器和本地之间进行文件传输。这里来介绍一种基于SSH的文件传输方法——scp命令
排序算法(五): Shell Sort 希尔排序
基本排序算法中的插入排序虽然逻辑较为简单,但当排序规模较大时,经常需要将元素一位一位地从一端移动到另一端,效率非常低。于是Donald Shell设计了一种基于插入排序的改进版排序算法,故被命名为 Shell Sort 希尔排序
误删Linux etc目录下shadow文件的解决方案
由于本人之前在博客服务器上部署了XXX服务导致服务器IP被封,所以这次换了一个新IP后,打算彻底清除了服务器中该服务相关的文件以避免IP再次被封。但是由于本人手贱,将etc目录下的shadow文件及其备份文件全部误删,本文将介绍shadow文件被误删后的解决方案