06 2022 档案

摘要:在 Java 中 String 对象是我们最常用的对象。 在本文章中,我们主要对 String 对象使用的 String Pool 进行一些简单的介绍。 Java 定义 String 后,String 是存储在 String Pool 中的,以便于加快字符串的访问和处理。 正是有这个方面的访问需求, 阅读全文
posted @ 2022-06-27 19:28 huyuchengus 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一直到 Java 8,Strings 在 Java 中使用字符数组进行存储的,同时使用的是 UTF-16 字符集,因此每一个字符将会使用 2 字节的内存。 从 Java 9 开始,Java 提供了一个叫做压缩字符(Compact Strings)的存储概念。 这个存储将会针对字符串使用 char[] 阅读全文
posted @ 2022-06-27 19:19 huyuchengus 阅读(39) 评论(0) 推荐(0) 编辑
摘要:在 Java 6 中,我们唯一可以做的优化就是通过增加 PermGen 内存空间来提供更多的存储。 可以通过在 JVM 中使用参数来实现: -XX:MaxPermSize=1G 从 Java 7 开始,我们可以为 String Pool 指定更多的参数来扩展和减少 String Pool 的大小。 阅读全文
posted @ 2022-06-22 05:25 huyuchengus 阅读(43) 评论(0) 推荐(0) 编辑
摘要:手工修改引用的意思就是通过程序来手工修改 String 字符串使用的指针来获得我们需要的值。 手工修改指针的方法为 intern()。 手工修改 String 在 String 存储池中的引用,JVM 将会在我们需要的时候返回这个引用。 让我们来创建一个测试用例: String constantSt 阅读全文
posted @ 2022-06-22 05:16 huyuchengus 阅读(61) 评论(0) 推荐(0) 编辑
摘要:当我们创建 String 对象的时候,如果使用 new() 的方式来创建一个 String 对象,JVM 将会每次都会在 heap 内存中为我们创建的 String 对象开辟一个存储空间来进行存储。 但是,如果我们使用赋值方式创建 String 对象的话,JVM 首先将会对我们赋的值到 String 阅读全文
posted @ 2022-06-22 04:13 huyuchengus 阅读(72) 评论(0) 推荐(0) 编辑
摘要:因为构造 String 对象有几种不同的方法,我们可以通过直接赋值的方式构造 String 对象,我们也可以通过 new 的方式来构造一个 String 对象。 在这里我们需要说说如果使用 new 这个关键字来构造的 String对象。 简单来说,如果你使用了 new 这个关键字来构造 String 阅读全文
posted @ 2022-06-22 03:27 huyuchengus 阅读(39) 评论(0) 推荐(0) 编辑
摘要:我们都知道 Strings 在 Java 中是不可变的( immutable),因此 JVM 可以通过访问这个字符串的引用,或者我们可以借用指针的这个概念来访问 String 字符串。 通过指针访问字符串值的这个过程就可以称为引用(interning)。 当我们在内存中创建一个字符串的时候,JVM 阅读全文
posted @ 2022-06-22 02:39 huyuchengus 阅读(117) 评论(0) 推荐(0) 编辑
摘要:概述 在本文章中,我们主要用来说明为什么应该使用 char[] 数组来存储密码,而不是使用 String 来存储密码。 需要注意的是,为了密码的安全,我们通常都会将用户输入的密码 MD5 加密哈希后进行存储。 我们通常是不会在后台中存储明文的用户密码的,这篇文章主要目的就是为了说明字符串在 Java 阅读全文
posted @ 2022-06-20 23:07 huyuchengus 阅读(138) 评论(0) 推荐(0) 编辑
摘要:Discourse 使用了用户等级的方式来识别用户的级别和对网站的忠诚程度。 通常新用户的级别是比较低,限制也是比较多的。 如下图显示的用户级别数量: 通常在网站中,第 0 和 第 1 的信任级别比较多。 建议,如果你使用 Discourse 的网站的话,尽量进入信任级别 1 中。 如何进入信任级别 阅读全文
posted @ 2022-06-20 22:57 huyuchengus 阅读(43) 评论(0) 推荐(0) 编辑
摘要:虽然这个问题不是一个非常大的问题。 但是还是比较闹心的。 针对新用户,Discourse 默认配置新用户只能插入 1 张图片。 如果你插入多张图片,上面的配置限制显然是有点闹心。 在技术文档中,显然这个是不够的。 解决方案 这个其实是可以在后台进行配置的。 在配置对话框中,搜索 new user,然 阅读全文
posted @ 2022-06-20 22:51 huyuchengus 阅读(21) 评论(0) 推荐(0) 编辑
摘要:在 2022 年发布版本中,IntelliJ IDEA 针对代码默认开启了作者提示功能。 主要用来方便的知道上面的代码最后是谁写的。 当然,你也可以对这个配置来进行调整。 选择后右键,在右键中你可以选择进行配置显示这个还是不显示这个。 在默认情况下,这个是开启的。 https://www.ossez 阅读全文
posted @ 2022-06-20 22:20 huyuchengus 阅读(691) 评论(0) 推荐(0) 编辑
摘要:最近在运行项目的时候 Jetty 出现了一个比较奇葩的错误。 一直显示是 503 错误,但是又找不到错误的原因。 后来通过查看可能的原因是 Jetty 的版本和 JDK 的版本没有办法支持导致的。 从上面的图片我们知道,当前运行 Jetty 的版本是 9.4。 但是我们服务器上装的 JDK 版本是 阅读全文
posted @ 2022-06-15 02:35 huyuchengus 阅读(460) 评论(0) 推荐(0) 编辑
摘要:如果我们的对象为空对象的时候,我们再使用 toString() 方法,我们将会得到空对象的异常。 这个对象有可能就是 String 对象,也有可能是其他的对象。 如下面的 2 行语句: Object obj = null; obj.toString(); 如果你执行上面 2 行语句的话,铁定会抛出下 阅读全文
posted @ 2022-06-09 13:31 huyuchengus 阅读(161) 评论(0) 推荐(0) 编辑
摘要:在判断输入的字符串是不是一个数字的时候,我们通常用的最多的方法就是 : NumberUtils.isNumber("12"); 但是这个方法将会在 Lang 4.0 版本中被丢弃。 可以使用的替代方法为:isCreatable(String) 通过查看源代码,我们可以看到 isNumber 也是调用 阅读全文
posted @ 2022-06-07 23:52 huyuchengus 阅读(141) 评论(0) 推荐(0) 编辑
摘要:本文对在 Junit 测试中如何对异常进行断言的几种方法进行说明。 使用 Junit 5 如果你使用 Junit 5 的话,你可以直接使用 assertThrows 方法来对异常进行断言。 代码如下: Exception exception = assertThrows(NumberFormatEx 阅读全文
posted @ 2022-06-07 04:48 huyuchengus 阅读(1069) 评论(0) 推荐(0) 编辑
摘要:本页面主要来说说 AssertJ 的异常断言。 概述 在本快速导航中,我们主要来聊聊的 AssertJ 的异常(exception)断言。 有关 AssertJ 的项目,请访问 AssertJ / Fluent assertions for java 页面。 不使用 AssertJ 如果不使用 As 阅读全文
posted @ 2022-06-07 02:39 huyuchengus 阅读(520) 评论(0) 推荐(0) 编辑
摘要:如果我在 Java 中对字符串和数字直接进行类型转换的话,我们有可能会遇到 NumberFormatException异常。 介绍 当 Java 在将 String 字符串转换为数字的时候,如果遇到没有办法转换的情况,Java 将会抛出一个 NumberFormatException 异常。 Num 阅读全文
posted @ 2022-06-06 22:40 huyuchengus 阅读(423) 评论(0) 推荐(0) 编辑
摘要:通常,我们可以使用构造方法来创建一个整数对象,例如下面的代码: Integer aIntegerObj = new Integer("1"); 但是,上面的代码有可能在 IDE 中提示将会被丢弃。 将要被丢弃的原因是: DeprecatedIt is rarely appropriate to us 阅读全文
posted @ 2022-06-06 22:26 huyuchengus 阅读(52) 评论(0) 推荐(0) 编辑
摘要:Discourse 在默认安装的情况下是不支持中文用户名的输入的。 根据官方的说明,从 Discourse 2.3.0.beta9 版本开始,Discourse 就已经能够支持 Unicode 的用户名了,包括中文的用户名。 官方发布的文章为:https://meta.discourse.org/t 阅读全文
posted @ 2022-06-04 20:28 huyuchengus 阅读(32) 评论(0) 推荐(0) 编辑
摘要:有时候我们希望找到一个提交历史,然后从这个提交历史中创建一个分支。 很多人应该都会使用命令行工具来做,其实 IDEA 已经帮你做了。 IDEA 首先在 IDEA 中找到 Git,然后找到你的提交历史。 在找到提交历史后,可以选择鼠标的右键。 然后选择新分支。 你就可以从当前的提交历史中来创建一个新的 阅读全文
posted @ 2022-06-04 02:44 huyuchengus 阅读(762) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示