BigDecimal
简介Java中提供了对于大实数运算的相关类BigDecimal,对于那些无法用二进制数精确运算的数可以使用BigDecimal来进行精确运算,BigDecimal的底层存储的是一个 byte 数组,对应String中的每一位,比如:-132.131432⬇[45, 49, 51, 50, 46, 49, 51, 49, 52, 51, 50]⬇[‘-‘, ‘1’, ‘3’, ‘2’, ‘.’, ‘1’, ‘3’, ‘1’, ‘4’, ‘3’, ‘2’]
常用方法
方法名称
说明
BigDecimal(String val)
用字符串构造一个大实数
static BigDecimal valueOf(double val)
返回数值为 val 的大实数,对于 double 范围内数字推荐用此方法,底层有优化
BigDecimal add(BigDecimal val)
返回大实数之和
BigDecimal subtract(BigDecimal val)
返回大实数之差
BigDecimal multiply(BigDecimal val)
返回大实数之积
...
BigInteger
简介Java中提供了对于大整数运算的相关类BigInteger,BigInteger的底层会将符号位和绝对值分别存储,绝对值会被分割为几份长度为 32 位的二进制值并存到一个 int 数组当中,比如:27670116110564327424⬇[1, 10000000000000000000000000000000, 00000000000000000000000000000000]⬇[1, -2147483648, 0]
常用方法
方法名称
说明
BigInteger(int num,Random rnd)
获取随机大整数,取值范围$[0,2^{num}-1]$
BigInteger(String val)
用字符串构造一个大整数
BigIntege(String val,int radix)
用字符串构造指定进制的大整数
static BigInteger valueOf(long val)
返回数值为 val 的大整数,对于 long 范围内数字推荐用此方法,是因为当生成的 val 在$[-16,16]$会有优化
BigInteger add(BigInt ...
集合
集合的分类集合可以分类为以下两大种:
单列集合
双列集合
Java 中的集合框架的继承和实现体系大致如下:
Collection
List
ArrayList
LinkedList
Vector
Set
HashSet
LinkedHashSet
TreeSet
Map
HashMap
LinkedHashMap
Hashtable
Properties
TreeMap
红色标签 为接口(Interface),蓝色标签 为实现类(Implementation)
以上结构仅展示一些经常会用到的实现类和接口,并不是完整的结构,下图才是完整的结构:引用自Wikipedia 的 Java collections framework
Collection(单列集合)Collection 是单列集合的顶层接口,以下为常用方法:
方法名称
说明
boolean add(E e)
把给定的对象添加到当前集合当中
void clear()
清空集合中所有元素
boolean remove(E e)
...
regex和replacement转义
replacement 转义在使用 replaceAll 方法时,遇到 replacement 中含有’$’和’'的情况会发生报错。
12345678public class Main{ public static void main(String[] args){ String content = "Java8,Java11,Java17,Java21"; String regex = "Java"; System.out.println(content.replaceAll(regex, "$")); System.out.println(content.replaceAll(regex, "\\")); }}
解决方法:
12345678public class Main{ public static void main(String[] args){ ...
正则表达式
简介正则表达式是一种强大的工具 😎,用于描述和匹配字符串的特定模式,可用于各种编程语言和文本处理工具中,如 Java,Python,JavaScript 等。
语法正则表达式由元字符组成,下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:
字符
描述
\
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\‘ 匹配 “\“ 而 “\(“ 则匹配 “(“。
^
匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$
匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
*
匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。 * 等价于{0,}。
+
匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ ...
字符编码
字符编码在早期计算机系统中,为了给字符编码,美国国家标准学会(American National Standard Institute,ANSI)制定了一套英文编码规范,包含英文字母,数字和一些常用符号,编码范围从0到127,称为ascii编码,每个字素(grapheme,a single unit of a human writing system)只占用一个字节,比如A的编码为0x41(65)。
但是随着计算机的发展的全球化,计算机需要能支持更多的语言,也就是说每一种语言的文字都需要一套与之对应的编码,对于拉丁母来说,一个字节的大小就能基本包含常用的字母和符号,但是对于东亚的表意文字来说,一个字节的大小显然是不够用的,需要更多的字节数,比如一个中占用两个字节
在早期的时候并没有一套统一的规范,于是不同的国家和地区都制定了一套适用于本区域文字的编码,比如中文有GB2312,日文有Shift_JIS,韩文有EUC-KR,不同的编码之间会冲突,这也导致了乱码的问题出现。
Unicode为了统一全球所有语言的编码,全球统一码联盟发布了Unicode编码,它把世界上的主要语言都纳入同一套编码 ...
基于hexo搭建博客基础(三)
博客搭建导航 🌏基于hexo搭建博客基础(一)基于hexo搭建博客基础(二)基于hexo搭建博客基础(三)
1.前言
这个系列是关于如何基于hexo框架以及GitHub Pages搭建自己的博客网站。
❗创建本系列博客的初衷也只是为了记录一下自己的学习过程,以防之后健忘❗。
虽说如此,但是本系列博客已经写的很详细了,可能后面的内容会比较简略,就算是零基础也能懂大部分。
关于butterfly配置文件中的参数说明,可以参考官方,这里只讲述自己使用的部分。
2.导航栏每一项前为项的名称,中英文都可以,后面的参数分别为source文件夹中的对应的标签页路径和对应的图标,以||来分隔,列表项要在最后添加||hide,使列表保持隐藏。
1234567891011menu: 首页: / || fas fa-home 时间轴: /archives/ || fas fa-archive 标签: /tags/ || fas fa-tags 分类: /categories/ || fas fa-folder-open 休闲||fas fa-list||hide: 音乐: /mus ...
基于hexo搭建博客基础(二)
博客搭建导航 🌏基于hexo搭建博客基础(一)基于hexo搭建博客基础(二)基于hexo搭建博客基础(三)
1.前言
这个系列是关于如何基于hexo框架以及GitHub Pages搭建自己的博客网站。
❗创建本系列博客的初衷也只是为了记录一下自己的学习过程,以防之后健忘❗。
虽说如此,但是本系列博客已经写的很详细了,可能后面的内容会比较简略,就算是零基础也能懂大部分。
配置文件参数含义在官方处都有讲解,这里只讲述自己修改了的部分。
2.Site信息修改1234567title: AnAsubtitle: 🥳🥳欢迎来到我的小站🥳🥳description: 一个讨论技术和作为个人知识库的小站keywords: blogauthor: AnAlanguage: zh-CNtimezone: 'Asia/Shanghai'
language常用参数:
en(英文)
zh-CN(中文简体(中国大陆))
zh-HK(中文繁体(中国香港))
zh-TW(中文繁体(中国台湾))
3.URL信息修改123456url: https://ana-0823.gith ...
基于hexo搭建博客基础(一)
博客搭建导航 🌏基于hexo搭建博客基础(一)基于hexo搭建博客基础(二)基于hexo搭建博客基础(三)
1.前言
这个系列是关于如何基于 hexo 框架以及 GitHub Pages 搭建自己的博客网站。
❗ 创建本系列博客的初衷也只是为了记录一下自己的学习过程,以防之后健忘 ❗。
虽说如此,但是本系列博客已经写的很详细了,可能后面的内容会比较简略,就算是零基础也能懂大部分。
2.环境与工具准备本系列是面向 Windows 用户的,所需工具:
操作系统:Windows11
Node.js
Git
Hexo
GitHub 账号
文本编辑器(随便一个都行,甚至 word 文档也可以 🤣,不过还是推荐 VSCode)
3.Node.js 的安装
下载地址:https://nodejs.org/en/download/
安装。
打开终端,输入node -v来查看 node.js 的版本,看到版本号则为安装成功。
修改 npm 源,看情况,有梯子就不用了,要修改就按照输入以下命令:
1npm config set registry <替换的npm源>
4.安装 ...




