自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(317)
  • 收藏
  • 关注

原创 Java核心技术知识导航(周更)

面试旺季笔者也收到很多读者的私信,所以笔者就对近期不断更新迭代补充的Java核心知识点进行一个导航汇总。,实时获取笔者最新的技术推文同时还能和笔者进行深入交流。,同时我的公众号也有我精心整理的。

2024-03-02 15:11:50 709 1

原创 JVM进阶专栏汇总(周更)

这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-28 11:17:51 972

原创 MySQL进阶专栏(周更)

这是截至今日写过的文章汇总,对于关注笔者公众号有一段时间的读者都知道,笔者会每周对自己写过的文章整理至相关专栏,以便读者可以按需进行检索阅读。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-27 11:23:58 478

原创 Java并发编程进阶面试题专栏导航(周更)

这是笔者目前为止整理的并发编程,笔者后续会在每个周末进行周期性的补充和迭代,欢迎读者进行补充指正。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。,同时我的公众号也有我精心整理的。

2024-01-07 16:20:19 1213

原创 go语言是如何实现协程的

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。的精华就在于协程的设计,只有理解协程的设计思想和工作机制,才能确保我们能够完全的利用协程编写强大的并发程序。自此我们从go语言底层实现的角度完整的剖析的协程与线程的关系和实现,希望对你有帮助。记录整个foo1函数的高低地址,假设我们当前的协程。

2024-04-19 08:30:00 545

原创 聊聊go语言中的内存填充

在进行不同的内存填充的时候,不同类型变量都着不同的对齐系数,例如布尔和int32对应的内存系统为1和4,以下图为例,布尔的对齐系统为1就意味着它的内存空间首地址能被1整除,所以我们分配为。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。字节,原因很简单,bool为1字节,填充首位。

2024-04-18 09:08:24 380

原创 基于Windows打造属于个人的Linux子系统

总的来说WSL对于笔者的日常开发带来不少便利,通过在Windows系统下安装一个Linux子系统简化了一些个人日常的开发和部署调试工作,提高了笔者的生产力,也希望对你有帮助。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。即可和笔者和笔者的朋友们进行深入交流。即可和笔者和笔者的朋友们进行深入交流。

2024-04-17 08:30:00 893

原创 深入理解go语言中的切片

本文通过切片的创建结合汇编码了解的切片底层数据结构和创建过程,再通过代码示例结合源码的方式了解了切片的动态扩容机制,了解切片在扩容时如何在空间和时间上实现折中,希望对你有帮助。都说切片会动态扩容,这里我们创建一个容量为10的切片,在容量以内添加元素,其容量和size都没有变化,一旦追加元素就会触发扩容,可以看到此时已用。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。若新的长度大于容量的2倍则判断旧的容量是否超。

2024-04-16 08:34:52 585

原创 来聊聊某大厂面试常聊的Spring生命周期

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。生命周期的文章,文章行为生涩,于是抽空再次进行复盘整理了这篇关于。对于源码的阅读,大部分答案其实都可以在注释中得到答案,所以对于。对应的我们也给出整个生命周期的核心图解,可以看到实例化会调用。即可和笔者和笔者的朋友们进行深入交流。

2024-04-15 09:23:55 3319

原创 解决IDEA打开java项目出现橙色j无法运行

近期看到很多新人接手一些上古老项目,打开看到的Java文件都是显示橙色J,不知道如何调整项目结构并完成编译启动,所以笔者就以此文章整理一下IDEA配置和启动老项目的方式。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。即可和笔者和笔者的朋友们进行深入交流。即可和笔者和笔者的朋友们进行深入交流。

2024-04-15 08:30:00 3681

原创 聊聊Go语言中的字符串

字符类型是开发中最常用到的类型,不同的语言有着不同的实现,这篇文章我们来聊聊go语言的字符串类型,本文会从go语言底层实现的角度分析字符串的设计与实现,相信读者通过对本文的阅读会对go语言中字符的实现有着不错的理解和掌握。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。

2024-04-12 08:44:03 971

原创 go语言是如何解决map并发安全问题的?

常说go语言是一门并发友好的语言,对于并发操作总会在编译期完成安全检查,所以这篇文章我们就来聊聊go语言是如何解决map这个数据结构的线程安全问题。Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护者之一,熟悉 Java 也会一点 Go ,偶尔也会在 C源码 边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我的文章对你有帮助,非常欢迎你关注我的公众号: 写代码的SharkChili

2024-04-11 08:41:28 812

原创 Go语言企业级日志管理

这里也补充一下为什么可以用异或运算符拼接配置的原因,因为这些日志参数的常量都会对应一个不同的二进制数,通过不同的二进制数对应到不同的配置项从而生成日志配置。即使系统没有任何表现,程序也可能会有一些潜藏的隐患,所以通过日志来监控程序的运行就显得尤为重要,对此笔者便基于此文来聊聊go语言中的日志的配置和使用。的三个配置决定日志的输出目的地,前缀、格式,如下所示,对应的日志就是不输出,且前缀为Trance,格式为。如果我们希望打印的错误显示异常的堆栈信息,我们可以通过。即可和笔者和笔者的朋友们进行深入交流。

2024-04-10 08:30:00 1009

原创 主键自增是否会降低数据库insert性能?

的默认模式,在这种模式下进行插入时插入语句不会一致持有auto_inc锁到语句结束,而是一拿到锁就释放,这就是为什么插入11的语句因为gap锁阻塞不影响插入语句2自增id的获取。锁,它会在语句结束之后释放当前锁,注意这里所说的是语句级别下的锁,而不是事务级的锁(一个事务可能存在多个插入语句)。的插入不会导致任何性能问题,作为开发者我们更应该关心的是进行插入期间,业务上是否会存在那些干扰插入的间隙锁的情况。我们再设置为1,还是以上述的SQL为例,进行3个会话操作,首先会话1的范围删除,持有。

2024-04-09 08:30:00 194

原创 聊一聊go语言的空值

这样的数据结构,我们只能自行实现,了解Java的Hashset的读者都知道,Hashset本质就是对hashMap的封装,用map的key作为set的value,将value全部设置为null。那么问题来了,既然空结构体的大小为0,如果考虑到空结构体0大小的特点,我们是否可以认为如果这些空结构体存在地址时,它们的地址都是一样的呢?因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。关于这个地址值,我们可以在内存分配的工具包。

2024-04-07 08:30:00 578

原创 聊聊go语言中的maven

我们通过goland创建的项目,默认情况下goland为默认为我们生成一个go.mod文件,其内容标明了我们项目的名称以及go工具包。

2024-04-03 08:30:00 746

原创 某大厂线程池拒绝策略连环问

随着任务的递增,任务队列无法容纳最新的任务,线程池就会认为现处于高峰期,便临时增加应急线程处理任务。我们先来复习一下线程池的工作流程,每次任务提交时,线程池都会尝试将任务提交到核心线程上,如果线程数小于核心线程数,线程池就会添加工作线程并执行当前任务。是希望所有的任务都能够被执行,按照笔者的经验,假如我们的场景是偶发这种突发场景,在内存允许的情况下,我们建议增加阻塞队列。这个拒绝策略,导致耗时的任务用了主线程执行,导致线程池阻塞,进而导致后续任务无法及时执行,严重的情况下很可能导致。

2024-04-03 08:30:00 29

原创 仿MyBatis-Plus实现跨数据源事务

我们有了大概的思路,首先自然是先定义一个注解,后续所有的方法可以通过这个注解标识为需要进行多数据源事务管理。

2024-04-01 08:30:00 1074

原创 一文速通Go语言面向对象编程

notify()

2024-04-01 08:30:00 1519

原创 一文速通go语言类型系统

id intage int如果希望声明这个变量的初始值,可直接用varvar u useru := user{id: 1,age: 18,//按照字段顺序略去字段名的声明如果我们声明了一个自定义的类型Duration,如下所示,可以看到它其实就是int64,初学go语言的读者可能会认为它和int64如果是用这种语法,编译是无法通过的var dur Duration //正确的做法 dur = 5 fmt . Println(dur)

2024-03-29 08:30:00 1642

原创 一文速通Go语言的map

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。的映射,映射即根据指定算法将键值对落地指定的位置的数据结构,这使得我们再进行定位时就像查阅字典一样可以快速检索和操作。还有一种则是通过字面量的方式完成声明,注意如果按照下述语法进行声明的话,映射的长度就会根据初始化制定的键值对长度而定。

2024-03-28 08:30:00 866

原创 一文快速掌握Go语言切片

同样的假如我们希望通过字面量的方式完成创建,例如我们希望通过字面量的方式创建一个长度为7的切片,那么我们就可以给索引6的元素设置一个值,让编译器自动根据我们字面量声明的上限设置一个。因为切片是对数组的封装,在函数传递时复制的是切片的引用,这使得切片作为参数时,操作的元素就是入参的值,这也就意味着切片在函数间的传递是没有大量元素拷贝的开销的。我们也可以从一个切片上截取一部分元素生成一个新的切片,假设我们的源切片有元素1-5,我们希望从截取长度为2,容量为4的切片。这里我们给出切片的创建语法为为。

2024-03-27 08:30:00 1570

原创 线程池大小设置多少合理

每个人都有每个人的看法,有的人说通过压测得到一个TPS并基于这个结果设置线程数,有的说需要结合一定的一套规范去推算大概的范围,最后通过公式获得较为准确的结果。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。核心,由此也可推出,对于计算密集型的任务,满载情况下,所有的。

2024-03-25 08:30:00 212 1

原创 聊聊go语言中map如何解决散列性能下降

很明显,如果极端情况下因为有限的桶导致大量的冲突就很可能使map元素定位的时间复杂度退化为O(n),所以我们需要重新计算哈希值以及对桶进行扩容,从而解决极端的哈希冲突场景。的键值对的值,在进行修改的过程中,map就会通过哈希定位到旧的bucket的key-111的值,然后进行修改,完成后基于全新的哈希算法。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。上的桶的数据也就都驱逐完成了,随后跳出这些代码段,再次回到。

2024-03-25 08:30:00 666

原创 来聊聊go语言的hashMap

这个文件中定位到这个方法,该方法会先判断需要分配的内存是否超出最大值,如果未超过则会进行哈希种子初始化、桶的大小计算,以及考虑到后续的空间会根据B的值判断,根据设计者们的经验来看,它们认为当B大于4即桶的个数大于8的情况下的场景有很大概率出现溢出的情况,所以它们会在。设计有着不同的设计思想,而这篇文章我将从go语言的角度来聊聊哈希集的设计,希望通过这篇文章的阅读可以让读者对于map的设计有着更进一步的理解。的索引为2,但是索引2的bmap空间全被占用,那么go语言就会基于拉链法的思想,创建一个全新的。

2024-03-22 08:30:00 669

原创 一文带你速通go语言指针

指针即指向变量的地址,在计算机宝贵的内存中存在成千上万的变量,对于某些可复用的变量,我们可以通过指针进行操作,避免拷贝的开销,从而提升系统的执行效率。

2024-03-21 08:30:00 16357

原创 实用的IDEA配置和操作技巧总结

如下图所示,打出勾选的字母就会弹出白色框中的代码段,所以如果我们有希望可以快捷输出的代码也可以自己制作一个代码模板。

2024-03-20 08:30:00 2912 1

原创 聊聊Go程序是如何运行的

我们先来看看运行时检查的步骤,这段代码在runtime1.go上,从笔者贴出的代码不难看出,这个方法会在程序运行进行类型长度、CAS、指针、原子类的进行正确性的检查操作。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。是跨平台的语言,所以底层对各大平台的启动都做了特定的封装,以笔者的。

2024-03-19 08:30:00 1130

原创 读者交流群

在这个读者群中,我们有机会与来自不同背景和经验的Java和Go语言爱好者交流。无论你是初学者还是有丰富经验的开发者,这个群都欢迎你的加入。我们鼓励成员之间的互动和讨论,分享最新的技术趋势、最佳实践以及解决方案。自开设公众号以来,收到众多读者的关注,所以我很高兴在这里向大家推荐加入我的技术交流群。如果你对Java和Go语言有兴趣,想要与其他同好分享经验和知识,那么这个读者群将是一个理想的选择。欢迎加入我们的读者群,一起探索Java和Go核心技术!加入我们的群组,与我们一起学习和成长。期待在读者群中见到你!

2024-03-18 08:30:00 312

原创 一文快速掌握docker的理念和基本使用

我们都知道docker的隔离性,网络也是个隔离性的一部分,Linux使用了命名空间来进行资源的隔离,比如就是用来隔离进程的,是用来隔离文件系统的,是用来隔离网络的.每一个都提供了一个独立的网络环境,包括网卡路由iptable规则等等,都是与以其它的隔离的.docker容器在默认情况下,一般会分配一个独立的,也就是网络类型中的Bridge模式(可以理解为虚拟机的那种桥接模式)。因为Bridge使用的独立的,这就我们需要使用桥接的方式的服务器和docker。

2024-03-18 08:30:00 4588

原创 速通Go语言编译过程

通过上述的步骤之后,系统就会得到中间码,自此各个平台都会基于这段中间码生成汇编码,当然如果你对汇编码感兴趣,可以通过下面这段执行看到我们的代码转为。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。,而笔者这里所说的最小语义,读者完全可以理解为上述的每一个关键字,例如。

2024-03-13 08:30:00 655

原创 一文带你速通Go语言数组

但是需要注意的是指针复制的都是每个元素的指针,也就意味着我们修改任意一个数组元素指针所指向的地址空间,都会影响到另一个数组指针指向的值。是必传的,否者声明的就是切片,关于切片的知识点笔者会在后续的文章中推出,建议感兴趣的读者留意文章的联系方式实时关注笔者推送的系列专栏。对于数组的声明,其语法格式如下所示,可以看到变量名在前,类型在后,与Java数组声明不同的是,Go语言的数组声明格式为。对应的输出结果如下,可以看到go语言的遍历都是由默认值的,以int为例,每个数组空间的值都是默认为0。

2024-03-12 08:30:00 1003

原创 JVM内存问题排错最佳实践

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。上一篇的文章中分享了一个入门级别的调优实践,收到很多读者的好评,所以笔者今天再次分享一个进阶一点的案例,希望对近期在面试的读者对于。正是因为这样一个为了保证数据散列均摊且还能顺序遍历的数据结构,导致仅仅10w条的数据占用了大量的内存,从而导致了。

2024-03-10 08:30:00 1481

原创 一文带你速通Go语言基础语法

Hi,我是sharkChili,是个不断在硬核技术上作死的java coder,是CSDN的博客专家,也是开源项目Java Guide的维护者之一,熟悉Java也会一点Go,偶尔也会在C源码边缘徘徊。与其他的编程语言(Java)有所不同,Go语言对不同的精度数字类型计算时不会进行自动的类型升级,所以在进行整数和小数的运算时,我们需要进行一下强转,强转的语法如下即。这篇文章算是一篇基本的语法速通的扫盲,通过这篇文章你将会对Go的语法和一些编程习惯有一个初步的了解和掌握。

2024-03-08 08:30:00 2467

原创 关于我想写一个Go系列的这件事

因为笔者是日常开发只用到Windows和Linux下载集成开发环境安装包。安装。配置环境变量。

2024-03-07 08:30:00 997

原创 写给新手的一个JVM调优入门级案例

Hi,我是sharkChili,是个不断在硬核技术上作死的java coder,是CSDN的博客专家,也是开源项目Java Guide的维护者之一,熟悉Java也会一点Go,偶尔也会在C源码边缘徘徊。自此我们大概知道因为大数据文件导入内存导致堆内存被打满,对于这类问题,我们首先要考虑单位时间内的内存使用率不会超过设置的堆内存大小,对于上述代码,我们对文件采用逐行批次读取一次然后解析插入的方式。接口将文件提交到文件服务器上,完成所有文件上传之后,用户会通过。接口会根据接口传入的文件名将数据导入的数据库中。

2024-03-06 08:30:00 693

原创 聊聊面试必问的千万级数据库分页查询

进行改造,因为笔者这张表是以id作为主键的,所以我们可以很好的利用这一点,通过定位当前页的第一个id,然后通过这个id筛选对应页的数据,对应SQL如下所示,经过笔者的实验耗时大约在。的基本单位是页,所以每次查询都是以页为单位进行查询,所以高效的查询也要求我们用尽可能少的块查到存储尽可能多的数据,所以查询时我们建议没有用到的列就不要查询来了。可以看到随着数据量的增加,查询耗时主键增大,所以读者在进行这方面考虑的时候务必要结合压测,根据自己业务上所能容忍的延迟涉及最大的。面试官:一千万的数据,你是怎么查询的?

2024-03-05 08:30:00 834

原创 解决Java并发问题的常见思路

我们都知道重构代码对于测试的回归,逻辑的扭转变化都存在很大的风险点,所以笔者在对这段代码重构时非常明确的梳理的任务执行的数据流,明确了业务逻辑,这位作者意图是想在任务暂停时及时更新任务状态且让线程1不执行被暂停的任务,所以为了保证暂停的数据集不被线程1发送,首先就需要保证两个线程操作的集合处于一个维度,而不是像上面的代码一样线程1用。笔者发现这个启动和暂停任务的场景执行的数据量非常大,因为庞大的数据量,被暂停了任务基本都会在排队或者刚刚完成数据集状态更新为发送中就被类似于线程2的代码完美暂停掉。

2024-03-03 08:30:00 1042

原创 来聊聊事务监听

通过该注解我们可以感知到因为失败而回滚的事务,进行进一步的操作,所以对于某些需要保证事务可靠性或者需要对失败事务进行监控的场景,该注解是非常的实用,下面笔者就会以一个简单的保存接口演示一下事务监听的实用。了解整体工作流程之后,我们就可以开始编码,由上可知,我们感知失败事务时要发送错误消息,所以我们封装一个事件对象,记录保存失败的TData。完成事件编写之后,我们就需要事件发布事务失败事件这一步,所以我们要编写一个事件发布者,如下所示,可以看到笔者注入。接口会提交一个保存的请求,交由带有事务的。

2024-03-01 08:30:00 1833

原创 MySQL批量更新最佳实践

可以看到3000条数据花费了500毫秒左右,执行效率还是很客观的,但笔者认为这还不是最优解,原因很简单,每次进行批量更新操作都需要进行多次网络IO,如果在并发量非常大的场景,很可能导致。笔者希望可以一批更新操作可以一个批次的进行提交,所以接下来介绍这种方案就是一次性组装一批量的更新语句,然后一次性提交。数据库批量更新操作比较耗时,对此笔者查阅相关资料比进行压测后,得出最优解,遂以此文章记录一下笔者的解决方案。,这里面会有笔者精心挑选的并发、JVM、MySQL数据库专栏,也有笔者日常分享的硬核技术小文。

2024-02-23 08:30:00 864 1

空空如也

空空如也

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

TA关注的人

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