什么是I8n 国际化(I18n)指的是设计和开发产品的过程,使得它们能够适应多种语言和文化环境,而不需要进行大量的代码更改。这通常涉及到创建一个基础版本的产品,然后通过配置和资源文件来添加对不同语言和地区的支持。 这样,当产品需要在新的地理区域或语言环境中使用时,只需要添加或更新相应的资源文件,而不需要修改产品本身的代码。 ❝ "I18n"是"Internationalization"的缩写形式,之所以是"I18n"而不是"Int"或者其他缩写,是因为"Internationalization"这个词的第一个字母是"I",最后一个字母是"n",而在这两个字母之间有18个字符。因此,"I18...
前言 在讨论ThreadLocal存在内存泄漏问题之前,需要先了解下面几个知识点: 什么是内存泄漏? 什么是ThreadLocal? 为什么需要ThreadLocal? 数据一致性问题 如何解决数据一致性问题? 当我们了解了上面的知识点以后,会带大家一起去了解真相。包括下面几个知识点: 为什么会产生内存泄漏? 实战复现问题 如何解决内存泄漏? 为什么是弱引用? 只有了解上面的知识点,才能更好的理解以及如何解决ThreadLocal内存泄漏问题。下面我们就开始带大家一步一步的去了解。 什么是内存泄漏? 在讨论ThreadLoca...
编解码 人类世界常见的语言文字多种多样,有英文字母例如a,有阿拉伯数字例如6,有中文例如好等等。但是计算机的世界里面只有二进制即0和1,所以我们要存储和计算的时候就需要将人类世界的语言文字转换为计算机能识别的二进制,而人类的语言文字与计算机二进制相互转换的过程就是编解码。 ASCII 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制之间的关系,做了统一规定被称为ASCII码。ASCII码一共规定了128个字符的编码,例如大写的字母A是十进制65(二进制01000001),而计算机中一个字节(byte)有8位(bit),一位能表示一个二进制0或者1,所以一个字节能表示最多256个符...
什么是SpringSecurity SpringSecurity是一个Java框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。SpringSecurity基于过滤器链的概念,可以轻松地集成到任何基于Spring的应用程序中。它支持多种身份验证选项和授权策略,开发人员可以根据需要选择适合的方式。此外,SpringSecurity还提供了一些附加功能,如集成第三方身份验证提供商和单点登录,以及会话管理和密码编码等。 SpringSecurity是一个强大且易于使用的框架,可以帮助开发人员提高应用程序的安全性和可靠性。而我们最常用的两个功能就是认...
背景 git规定提交时必须要写提交信息,作为改动说明保存在commit历史中,方便回溯。规范的log不仅有助于他人review,还可以有效的输出change_log甚至对于项目的研发质量都有很大的提升。参考目前比较流行的Angular团队的commit规范 「Angularcommit规范格式」 <type>(<scope>): <subject>// 空一行<body>// 空一行<footer> 分别对应Commitmessage的三个部分:Header,Body和Footer Header Hea...
💡说明:以下结果都是在mysql8.2及Innodb环境下测试。 varcahr(255)是什么含义? varchar(255)表示可以存储最大255个字符,至于占多少个字节由字符集决定。 varchar的最大值是多少? 如果你去搜索过这个答案,我相信你或多或少都看到过65535这个答案。比如我们尝试询问一下当下最火的人工智能,你可能会得到和我类似答案。 那么varchar的最大值真的是65535吗?我们不妨实验一下。 create table test( test_varchar_max varchar(65535) no...
系统选择 目前市面上主流的桌面操作系统在大多数人眼里只有Windows和MacOS,那为什么我没选择它们两呢? 首先,不选MacOS的原因,就是太贵。当然这是我的原因不是苹果的原因,我最早使用Linux写代码的时候是2018年,那时候刚毕业上班不久,根本买不起Mac(虽然现在也觉得有点贵)。 在没有接触Linux之前,我也是使用Winows的。众所周知,其实Windows也是收费的,那时候用的基本是破解版本的Windows系统。虽然当时买笔记本电脑会预装Windows系统,但是预装的基本都是家庭版。依稀记得当时Windows家庭版无法开启某些Windows功能(没记错的话当时是无法开启Wi...