自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

高行行

个人网站 gaohanghang.cn

  • 博客(70)
  • 收藏
  • 关注

翻译 翻译 | Redis Redisson 指南

在本文中,我们将探讨它的一些功能,并演示它如何帮助构建分布式业务应用程序。

2024-09-03 04:09:08 405

原创 单例设计模式双重检查的作用

第二个 if 判断是为了避免生成多个对象实例。比如在未创建实例的情况下,A线程和B线程都通过了第一次校验,这时如果通过竞争B线程拿到了锁就会执行一次 new 操作,生成一个实例,然后 B 执行完了 A 就会拿到资源的锁,如果没有第二次判断的话,这时A线程也会执行一次 new 操作,这里就出现了第二个类实例,违背了单例原则。第一个 if 判断是为了减少性能开销,不用走 synchronized 代码,避免多余的加锁操作,以及锁的等待和竞争。为什么要进行两次非空校验?先看双重校验锁的写法。

2024-06-18 22:05:15 398

原创 TCP协议是安全的吗?

不安全虽然 TCP 提供了一种可靠且高效的数据传输方式,但它不提供任何加密或身份验证机制来保护数据。因此,传输的数据可能会被未经授权的用户拦截和读取,而且其真实性无法验证。因此,为了确保 TCP 通信的安全,必须在 TCP 之上添加加密和身份验证等额外安全措施。与 TCP 结合使用的常见安全协议包括、SSH 和 IPSec。

2024-06-18 16:24:06 483

翻译 Spring 与 Spring Boot:10个关键差异的全面对比

了解 Spring 和 Spring Boot 之间的关键区别对于根据项目需求做出明智的选择至关重要,Spring Framework 可满足复杂的企业应用程序需求,而 Spring Boot 则擅长快速开发和微服务,可消除样板代码。在这次详细的比较中,我们将探讨 Spring 和 Spring Boot 之间的十个主要区别,以指导你在为项目选择正确的框架时的决策过程。Spring Boot 是专为微服务而设计的,提供嵌入式 Web 服务器并简化基于微服务的应用程序的开发和部署。

2024-06-06 17:09:43 51

翻译 Java 中 Runnable 和 Callable 区别(翻译)

原文地址:https://www.baeldung.com/java-runnable-callable翻译可以不准确,以原文为准。

2024-05-10 11:32:22 58 1

原创 IDEA 2023.3 start failed 启动失败修复

发现是 RestfulToolkit 插件有冲突导致的,删除插件后成功启动。

2023-12-11 14:29:42 1175

原创 2021 年最喜欢的书和影视作品

2021 年最喜欢的书:《微习惯》《精准努力:刘媛媛的逆袭课》《内在自信:如何战胜形形色色的畏惧心理》《认知觉醒:开启自我改变的原动力》《认知驱动》《如何成为不完美主义者》《学习的逻辑:中学生高效学习策略体系》《详谈01:左晖》2021 年最喜欢的影视作品:《觉醒年代》| 10分《芬奇》 | 9分《扬名立万》 (2021) | 8分《雄狮少年》 (2021) | 8分​...

2022-01-01 01:09:01 347

原创 Chrome 开发者工具新功能-网络面板新增载荷(Payload)边栏

最近开发发现 Chrome 开发者工具里网络请求参数信息被放到了Payload一栏里,感觉可以,查找信息更方便了些官方新功能介绍文档:https://developer.chrome.com/zh/blog/new-in-devtools-96/网络面板新增载荷(Payload)边栏当您想查看网络请求中的 payload 信息时,可以使用网络面板里面的 Payload 边栏。此前,payload 信息出现在报头边栏里。Chromium 议题:1214030...

2021-12-09 00:35:51 12001

原创 Google 搜索时,频繁遇到小 X 知识网等内容农场式结果解决方案

问题解决方法下载 uBlacklist 插件Chrome Web StoreFirefox Add-onsMac App Store在 uBlacklist 的设置选项中找到「订阅」并添加链接地址即可。订阅规则Github : https://git.io/gblockhttps://github.com/Paxxs/Google-Blocklist/raw/develop/uBlacklist_subscription.txtCDN加速(适合内陆用户):https://c

2021-10-14 20:28:34 280

原创 句柄耗尽导致前端页面访问不了

报 Too Many Open Files 错误原因:文件上传代码有流未正确关闭导致,关闭流即可

2021-10-12 23:40:18 172

翻译 翻译 | 包装类 VS 基本数据类型

英语原文地址:https://sunilkanzar.wordpress.com/2017/11/11/wrapper-vs-primitive/翻译:高行行英文水平有限,有错误的地方欢迎指正1. Generi 泛型Wrapper is a reference type so you can use it as Generic [template]包装器是一种引用类型,因此你可以将其用作泛型 [模板]For Example :例如 :public class Tmp<T> ..

2021-06-17 00:15:46 162

原创 视频学习笔记 | 系统学习让你轻松定义 Java 类加载器

视频地址:https://www.bilibili.com/video/BV1vJ41177cw代码地址:https://github.com/gaohanghang/technology/tree/master/jvm/src/main/java/com/a%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E8%AE%A9%E4%BD%A0%E8%BD%BB%E6%9D%BE%E5%AE%9A%E4%B9%89java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5.

2021-03-14 11:43:36 123

原创 m1 mac jdk 报错

最近买了个 m1 芯片的 mac mini ,我把 MacBook Pro 的数据迁移到了 M1 Mac mini 上,发现在 Mac mini 上运行 java 程序的时候报错。报错:Failed to write core dump. Core dumps have been disabled. To enable core dumping, try “ulimit -c unlimited” before starting Java againBuild process started. Cla

2021-03-06 19:08:08 1488 1

翻译 翻译 | 我在软件行业45年学到的东西

英语原文地址:https://www.bti360.com/what-ive-learned-in-45-years-in-the-software-industry/翻译借助的工具:DeepL 翻译,Google翻译、维基百科BTI360(弗吉尼亚阿什本的一家软件公司)的团队伙伴乔尔·戈德堡(Joel Goldberg)在软件行业工作了超过四十年后,最近退休。当他离开时,他与我们的团队分享了他在职业生涯中学到的一些经验教训。在他的允许下,我们在这里分享他的智慧。回顾软件行业的四十年,我为之震惊.

2021-01-24 19:15:36 126

原创 Java 开发工程师常用软件和网站

我常用的一些软件和网站1、常用开发工具1.1 IntelliJ IDEAIntelliJ IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2EE,Ant,JUnit,SVN和Git集成,非平行的编码检查和创新的GUI设计器。IDEA把Java开发人员从一些耗时的常规工作中解放出来,显著地提高了开发效率。具有运行更快速,生成更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;.

2021-01-15 11:24:30 1197

原创 Lombok 插件在 idea 2020.3 中已经是内置插件

2020-12-09 21:51:33 1785 1

原创 解决安装 MacOS big sur 卡在12分钟不动的问题

表现升级卡在12分钟不动升级成功效果原因表面上看是卡在了12分钟,其实是有在安装的,打开关于本机-存储空间可以看到存储空间是在一直变小的,耐性等待就行。

2020-12-07 00:29:21 22667 1

原创 IntelliJ IDEA的代码搁置功能

当遇到需要临时修改的 bug,当前正在开发的内容总不能删掉吧,这个时候就需要把当前已经开发的代码另外保存下来(即保存现场),当把 bug 改完后再恢复,来回归之前的开发工作,IntelliJ IDEA的搁置功能就能帮助我们解决这个问题IDEA 提供了 shelve 的功能,shelve 的意思是“将…搁在一边”,即把还没写完的代码先搁在一边。我开发都是使用 jetbrains 公司的 IDEA 和 PhpStorm,它们就提供了 shelve 的功能,方法:首先在 IDE 的底部找到“Git”,点..

2020-10-30 01:20:09 10105 1

原创 IntelliJ IDEA使用技巧,复制字符串连接文本到剪切板

比如有以下代码,字符串中是一个查询男生、女生人数的 sqlpublic class Test { public static void main(String[] args) { // 查询男生、女生人数 String sql = "select sex,count(*)" + "from student" + "group by sex;"; }}如果我想复制出 sql,一般的做法

2020-10-30 00:48:11 1413 1

原创 Java 单例模式从入门到入坟(全解全析)

代码地址:https://github.com/gaohanghang/leetcode一,什么是单例模式二,介绍这两个可以先不看,都是概念性的东西,直接看后面的就行,当然看了也可以 ????单例模式为什么那么常问?是因为这个题目可以问到很多知识点。比如线程安全、类加载机制、synchronized 的原理、volatile 的原理、指令重排与内存屏障、枚举的实现、反射与单例模式、序列化如何破坏单例、CAS、CAS 的 ABA 问题、Threadlocal 等知识。一般情况下,只需要从单例开始

2020-08-28 09:42:41 505

原创 从《上瘾》到 《不被干扰》

忘了在哪里看到说《上瘾》的作者出了本新书教人如何控制自己的注意力并选择自己的生活,感觉很有意思,亚马逊看了下是2019年出的新书,好像还没中文版https://www.amazon.com/Indistractable-Nir-Eyal-Julie-Li-audiobook/dp/B07SV4V6ZK/作者一本书教如何让别人上瘾,一本书教人如何摆脱上瘾。左右互搏,哈哈让别人上瘾,而让自己控制注意力的这一行为,让我想到张一鸣和他的字节跳动,推荐看下这篇文章 抖音设局:张一鸣的“延迟满足”和大众的及时

2020-07-26 10:41:48 269

原创 ERROR: parameter “default_transaction_read_only“ cannot be change 错误解决方法

service 类加 @Transactional(readOnly = false) 注解

2020-07-22 11:16:28 1217

原创 配置 Swagger 带 token 访问的两种方式

推荐使用全局的方式1. 每个接口单独传import com.google.common.collect.Lists;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springfra..

2020-07-15 21:01:45 1030

原创 git 如何忽略已经提交的文件或文件夹 (.gitignore文件无效)

"git rm --cached " 。这个命令会直接从暂存区删除文件,工作区则不做出改变。"git rm --cached "命令比"git reset head"更好,前者是删除掉,后者是替换掉。git rm -r --cached 可以删除文件和文件夹git rm -r --cached 文件或文件夹路径例如git rm -r --cached .idea/...

2020-07-14 21:44:37 1087

原创 慕课网《Mybatis缓存详解》视频学习笔记

视频地址:https://www.imooc.com/learn/1238代码地址:https://github.com/gaohanghang/mybatisCache简介:基于mybatis 3.5.1版本,全面介绍mybatis一级缓存、二级缓存以及自定义缓存的使用方法、实现原理、应用场景、优缺点等,并进行现场验证第1章 课程介绍1-1 课程介绍 (02:51)第2章 mybatis一级缓存2-1 初识mybatis一级缓存 (11:00)代码地址:https:/.

2020-07-12 14:27:33 173

原创 Linux中递归更改文件扩展名的命令

比如我需要将 jpg 结尾的图片文件修改为 png 结尾的如果能用rename命令,运行下面的find . -name '*.jpg' -exec rename .jpg .png {} +如果不能用rename命令,使用下面的find . -name "*.jpg" -exec bash -c 'mv "$1" "${1%.jpg}".png' - '{}' \;...

2020-06-18 14:40:42 467

原创 慕课网《二进制与Java中的基本数据类型》视频学习笔记

《二进制与Java中的基本数据类型》(完)视频地址:https://www.imooc.com/video/21195简介:我们都知道,计算机中都是使用2进制进行存储的。学习好二进制,对理解计算机如何处理数据以及Java中的数据类型在计算机中如何存储,都有实质性的帮助。本课程将从二进制的历史开始讲解位值制计数法、进制转换、小数的二进制化等二进制相关知识。并由此拓展介绍了Java中的整型、浮点型以及字符型。在这里还可以看到BigInteger、BigDecimal如何使用、ASCII与unicod

2020-05-24 17:25:54 741

翻译 Java – 如何在 String.Format 中显示 % ?

原文地址:https://mkyong.com/java/java-how-to-display-in-string-format/作者:mkyong翻译:高行行这个例子说明了如何在String.format中显示百分比 %JavaStringFormat1.javapackage com.mkyong;public class JavaStringFormat1 { ...

2020-05-03 00:39:05 1566

原创 SpringBoot 控制台输出 Swagger 接口文档地址

SpringBoot 控制台输出 Swagger 接口文档地址便于在 idea 控制台直接打开接口文档地址/** * @Description 控制台输出 Swagger 接口文档地址 * @Author Gao Hang Hang * @Date 2019-12-11 01:09 **/@Component@Slf4jpublic class ServerConfig im...

2020-04-27 01:18:43 1542

原创 华为云大数据集群 kafka 组件报错解决 KrbException: Message stream modified (41)

1. 报错KrbException: Message stream modified (41)2. 解决办法删除 krb5.conf 配置文件里的 renew_lifetime = xxx 这行配置即可

2020-04-16 03:34:48 3343 3

原创 CDH 重装 kafka 报错,挺常见的错误

报错日志kafka.common.InconsistentBrokerIdException: Configured broker.id 300 doesn’t match stored broker.id 97 in meta.properties. If you moved your data, make sure your configured broker.id matches. If ...

2020-04-14 00:46:49 651

原创 SpringBoot + easyexcel + vue 下载 excel 问题

SpringBoot + easyexcel + vue 下载 excel 问题最近有个下载 excel 的需求,后端导出 excel 的功能实现我选用了 easyexcel,但是 vue 前端老是下载不了,发现网上写的很多普遍的方法用着不行。查了下发现了可行的方法,这里写下总结。1. 后端不知为啥用 Post 请求下载不了,这里改成了 Get 请求Param.java 请求参数对...

2020-04-08 09:08:36 2624 2

翻译 SQL 查询中的 NULL 值

本文通过各种 SQL 小例子,解释 NULL 值的用途和带来的问题。英语原文地址:https://mitchum.blog/null-values-in-sql-queries/作者:MITCHUM翻译:高行行参考翻译文章:https://blog.csdn.net/lnotime/article/details/104847946小结:SQL 里的 NULL 和其他编程语言...

2020-04-05 13:40:02 622 1

翻译 在 Java 中遍历 HashMap 的5种最佳方式

原文地址:https://www.javaguides.net/2020/03/5-best-ways-to-iterate-over-hashmap-in-java.html作者:Ramesh Fadatare翻译:高行行在本文中,我们将通过示例讨论在 Java 上遍历  HashMap  的五种最佳方式。使用  Iterator  遍历 ...

2020-03-14 14:32:03 131

翻译 Java 8 Stream.reduce() 使用示例

原文地址:https://mkyong.com/java8/java-8-stream-reduce-examples/作者:mkyong翻译:高行行在 Java 8 中,Stream.reduce()合并流的元素并产生单个值。使用 for 循环的简单求和运算。 int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int sum...

2020-03-01 16:01:24 1632

原创 java8 常用代码

1. 使用java8 提取出 list 中 bean 的某一属性 public static void main(String[] args) { List<Student> stuList = new ArrayList<Student>(); Student st1 = new Student("123","aaa"); ...

2020-02-26 21:42:30 1107

原创 Docker 必备可视化工具 Portainer

推荐使用 Portainer 作为 docker 容器的 GUI 管理方案。Portainer 是一个开源、轻量级 Docker 管理用户界面,基于 Docker API,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。官方地址:http...

2020-02-26 18:04:15 458

翻译 为什么我们越娱乐反而会越无聊?

如果你无聊,那是因为你什么都没做。作者:Ibrahim Diallo原文地址:https://idiallo.com/blog/im-bored-what-do-i-do阅读本文大约需要 5 分钟翻译:高行行小结:1. 你消费得越多,就需要消费更多。一旦停止消费,你就会感到无聊。2. 解决无聊的方法并不是持续不断的娱乐。而是创造以前没有的东西。3. 生产胜于消费翻译水平有限,如...

2020-02-26 13:57:51 855

原创 Redis 为什么这么快?

1. 纯内存操作,肯定快数据存储在内存中,读取的时候不需要进行磁盘的 IO2. 单线程,无锁竞争损耗单线程保证了系统没有线程的上下文切换使用单线程,可以避免不必要的上下文切换和竞争条件,没有多进程或多线程引起的切换和 CPU 的消耗,不必考虑各种锁的问题,没有锁释放或锁定操作,不会因死锁而降低性能;3. C 语言实现,更接近底层操作Redis 是用 C 语言开发完成的4. 多路 I/...

2020-02-26 10:24:05 803

原创 为什么我们越娱乐反而会越无聊?

如果你无聊,那是因为你什么都没做。作者:Ibrahim Diallo原文地址:https://idiallo.com/blog/im-bored-what-do-i-do阅读本文大约需要 5 分钟翻译:高行行小结:1. 你消费得越多,就需要消费更多。一旦停止消费,你就会感到无聊。2. 解决无聊的方法并不是持续不断的娱乐。而是创造以前没有的东西。3. 生产胜于消费翻译水平有限,如...

2020-02-17 00:29:08 713 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除