ZhiguoXue_IT
求真至善,登崇俊良,有信心,一直在,一直在追求高光时刻
展开
-
java堆文件排查
在之前的开发的一个项目中,因为程序的一个bug,导致一些引用的对象一直没有回收,从而导致堆内存一直在增大,老年代一直在增大,老年代进行堆积,后来的排查思路是通过dump堆的文件,然后对文件进行分析,判断当前未回收的大对象。然后在程序中定位到代码,从而进行分析,我写这个博客是为了在这里总结一下,分析堆文件。首先在堆内存偏高的实例上进行dump分析,命令为这里的pid是当前进程id,首先通过jps获取当前第一种是直接在Idea打开profiler,然后将文件放到这里直接在fastthread.io进行分析,原创 2023-11-24 14:04:25 · 526 阅读 · 0 评论 -
java中锁的使用-实战
在实际的业务中,为了保证线程安全,会进行对一些逻辑进行加锁,保证当前只有一个线程在操作。在代码中,我们经常使用两种方式进行加锁,来保证线程安全。一种是synchronized关键字,另一种是ReentrantLock加锁。写这一份的博客,就是为了记录下锁的基本使用,也算是基础积累,方便在之后的工作中,能够安全的使用到。原创 2023-11-23 23:54:45 · 567 阅读 · 0 评论 -
Spring中的接口使用
在我们的项目中,经常会使用一些注解,注解带给我们代码简洁,本质是用于在代码中添加元数据信息,从而实现更加灵活、高效和可维护的代码结构。原创 2023-08-12 16:58:59 · 426 阅读 · 0 评论 -
ConcurrentHashmap1.7和1.8的差别
分段锁(Segment-Based Locking)是一种并发编程中用于提高性能的策略,特别适用于需要高并发访问的数据结构,如哈希表。它的基本思想是将一个大的数据结构分成多个小的部分,每个部分都有自己的锁,从而允许多个线程同时访问不同的部分,减少了竞争和阻塞。在分段锁的实现中,每个段内部维护一部分数据,并有一个对应的锁来保护这部分数据的并发访问。这样,不同的线程可以同时访问不同的段,而不会相互阻塞。分段锁可以显著提高并发性能,因为只有在同一个段内的数据访问才会发生竞争。原创 2023-08-06 11:18:08 · 243 阅读 · 0 评论 -
Dubbo中使用netty
netty在Dubbo中的使用,主要集中在网络通信上,高性能、轻量级的开源java的RPC框架,提供三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1、魔数标识符(四个字节),用于区分不同的协议。2、消息标志(一个字节),用于表示消息类型,如调用请求、调用结果、异常等。3、状态标志(一个字节),用于表示消息状态,如成功、失败等。4、消息ID(8个字节),用于标识消息的唯一性,在异步调用场景下用于匹配请求和响应。5、消息长度(四个字节),用于表示消息体的长度。6、原创 2023-08-05 16:34:56 · 418 阅读 · 0 评论 -
synchronized的底层实现原理
synchronized 是 Java 中用于实现线程同步的关键字。它的底层原理涉及到对象头、Monitor(监视器)和内存屏障等概念。原创 2023-08-05 16:15:29 · 242 阅读 · 0 评论 -
计算机中的AQS
Abstract Queue Service (AQS)就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下的很多内容都是基于AQS实现了部分功能,比如ReentrantLock、ThreadPoolExecutor、阻塞队列、CountDownLatch、Semaphore、CyclicBarrier等都是基于AQS实现的。首先AQS中提供了一个由volatile修饰,并且采用CAS方式修改的int类型的state变量。原创 2023-07-29 18:13:44 · 150 阅读 · 0 评论 -
计算机中的各种树
计算机中最典型的数据结构就是树,掌握底层的树的数据结构,是成为一名优秀的工程师的基础。原创 2023-07-26 21:31:29 · 300 阅读 · 0 评论 -
伙伴圈推荐加权算法
关注新闻热点:定期浏览新闻网站或订阅一些新闻播报,关注国内外的时事热点,及时了解一些突发事件和社会热点话题。关注社交媒体热点:关注微博、知乎、贴吧等社交媒体平台,读取热门话题讨论,发掘用户分享的优质内容。关注行业热点:如果您的朋友圈针对某个具体行业,可以关注该行业最新的发展动态、相关活动、专业的论坛和会议等。分享自己的生活:在分享生活的同时,可以多关注一些热门话题,结合自己的生活经验和体会,通过自己的方式给大家带来一些新鲜的视角和思考。原创 2023-04-20 11:39:35 · 205 阅读 · 0 评论 -
业界内源码学习第一节
业界内的技术研究。原创 2023-04-27 23:46:25 · 398 阅读 · 0 评论 -
CompletableFuture学习及实践应用
CompletableFuture并发任务多线程进行管理,CompletableFuture是一种非常灵活和高效的异步编程工具,它的内部实现是基于链表、锁、线程池和异步调用的概念。它可以用来处理复杂的异步任务和多个任务之间的依赖关系,让程序的并发执行更加高效和简单。原创 2023-04-05 11:43:38 · 426 阅读 · 2 评论 -
线程的生命周期
有一次在面试的时候,那个面试官给我出了一道多线程的题,因为我在实际业务中,用到的多线程往往是线程池来完成的,然后我就用线程池来异步调多个接口,返回的参数拼接到一个map中,当时提出的一个问题是,如果其中一个请求的请求时间太长,这里的map是完整的吗?后来发现确实线程这块没理清楚,觉得想学一个多线程。了解一下线程的生命周期。原创 2023-03-16 23:25:39 · 132 阅读 · 0 评论 -
多线程-线程池的七个核心参数
线程池在日常工作中经常使用并发编程,线程池是必不可少的。原创 2023-02-23 21:29:05 · 671 阅读 · 0 评论 -
本地缓存实现
本地缓存的学习,本地缓存在实际中应用很广,缓存同时需要许多需要注意的点。原创 2023-02-05 19:13:28 · 118 阅读 · 0 评论 -
日常工作中常用的linux或者别的指令
2.查看docker正在运行的容器。1.查看docker的镜像命令。3.docker启动容器。4.进入容器内部的命令。原创 2023-01-12 23:14:04 · 56 阅读 · 0 评论 -
Docker学习
1)四套环境,环境配置十分麻烦,每一个机器都要部署环境2)发布一个环境(jar + (redis mysql jdk es)),项目能不能带上环境安装打包3)java – jar(环境) —打包项目带上环境(镜像) —(Docker仓库,商店)—下载我们发布的镜像—直接运行即可4)Docker思想来自集装箱jre—多个应用—原来都是交叉的隔离:Docker核心思想,每个箱子都是隔离的、5)14年,Docker1.0发布,Docker基于Go语言开发。原创 2022-12-02 00:18:32 · 323 阅读 · 0 评论 -
探究java中的@PostConstruct注解
注解在java生态中占据重要的角色,从javaEE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解。原创 2022-11-28 00:31:11 · 95 阅读 · 0 评论 -
java1.8流式用法-工作使用总结经验
工作中经常需要用到流的用法,通过使用流让程序的阅读性更强,代码更简洁。原创 2022-10-26 23:20:24 · 216 阅读 · 0 评论 -
数字签名和验签的理解
在发送请求的时候,附带一个 refresh key ,该值和 token 的失效时长并不保持一致,通常会比 token 拥有更长的有效期。在客户端和服务端的通信过程中,会遇到很多的安全问题,无法确认收到的信息是否是真实有效的,而不是中途被人掉包,这个时候数字签名就可以站出来,他的作用就是用来证明消息在通信的过程中未被掉包,是真实有效的。区别是 Https 中使用的是 CA 来进行签名的核验和公钥的发布,使用的是系统层面写定的 CA 证书,相比于网络环境中公开的天然具有更高的安全性。原创 2022-10-20 00:02:06 · 2501 阅读 · 0 评论 -
java中的instanceof 关键字以及作用
2)instanceof关键字的作用是判断左边对象是否是右边类的实例-(通俗易懂来说就是左边的对象是否是右子类对象。或者右边类本身的对象)返回的boolean对象,是就是true,不是就是false。1)instanceof是java中的一个关键字,java中的关键字都是小写字母。1)使用instanceof增加了代码的灵活性。原创 2022-10-05 10:52:04 · 6968 阅读 · 0 评论 -
<distributionManagement>学习-管理构件的发布
而使用正式版本的模块,在不更改版本号的情况下,编译打包时,如果本地已经存在该版本的模块则使用本地的而不是主动去镜像服务器上下载。而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本.2): 当前Maven项目的状态.可用的状态有以下几种.并且这个值不是人为设置的.而是Maven自动设置的。deployed : 该Maven项目的构件是通过Maven 2或Maven 3发布的,最常用的值。1)snapshot快照仓库用于保存开发过程中的不稳定版本。原创 2022-09-20 23:26:07 · 185 阅读 · 0 评论 -
dependencyManagement使用简介
1)Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。2)在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。原创 2022-09-20 21:56:56 · 116 阅读 · 0 评论 -
工作中经常用到的linux指令及基础知识
java基本技术栈用到的命令原创 2022-07-24 08:36:45 · 71 阅读 · 0 评论 -
java的过滤器和拦截器的区别与实际应用
java的过滤器和拦截器的区别与实际应用技术原理技术原理-细讲一技术原理-细讲二技术原理-细讲三技术在实际项目的应用应用一:项目应用一应用二:项目应用二原创 2022-07-23 16:38:23 · 339 阅读 · 0 评论 -
用实例的方式理解IO多路复用机制
IO多路复用技术IO多路复用机制带来了技术原理概述IO多路复用技术是为了解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调用。在IO多路复用技术描述前,讲解下同步,异步,阻塞,非阻塞的概念。技术原理-细讲一linux网络IO中涉及到的模型如下:1)阻塞式IO2)非阻塞式IO3)IO多路复用4)信号驱动IO5)异步IO技术原理-同步/异步在学习IO模型的时候,我们必须明确一个概念,处理IO的时候,阻塞和非阻塞都是同步的IO。只有使用了特殊的API原创 2022-05-28 16:50:19 · 274 阅读 · 0 评论