自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(214)
  • 资源 (8)
  • 收藏
  • 关注

原创 线程到底设置数量多少合适的探讨

一个极端的线程(不停执行“计算”型操作时),就可以把单个核心的利用率跑满,多核心CPU最多只能同时执行等于核心数的“极端”线程数如果每个线程都这么“极端”,且同时执行的线程数超过核心数,会导致不必要的切换,造成负载过高,只会让执行更慢I/O 等暂停类操作时,CPU处于空闲状态,操作系统调度CPU执行其他线程,可以提高CPU利用率,同时执行更多的线程I/O 事件的频率频率越高,或者等待/暂停时间越长,CPU的空闲时间也就更长,利用率越低,操作系统可以调度CPU执行更多的线程。

2024-01-12 10:23:41 940

原创 使用上下文获取用户IP信息

原理:使用拦截器拦截所有请求,并把请求中的。,这样在业务逻辑中,我们可以很轻松的拿到。

2024-01-02 15:53:18 704

原创 一个注解实现分布式锁

我们平常使用redisson的分布式锁是怎么做的?是不是基本都用的这个模板,既然是模板,那为何不把他抽出来呢?

2023-12-28 16:14:45 501

原创 JDK8 新特性

创建一个新的线程,指定线程要执行的任务代码分析:Lambda表达式是一个匿名函数,可以理解为一段可以传递的代码Lambda表达式的优点:简化了匿名内部类的使用,语法更加简单。匿名内部类语法冗余,体验了Lambda表达式后,发现Lambda表达式是简化匿名内部类的一种方式。Lambda省去了面向对象的条条框框,Lambda的标准格式由3个部分组成:格式说明:练习无参无返回值的Lambda定义一个接口然后创建主方法使用输出:3.2 Lambda练习2完成一个有参且有返回值得Lambda表达式案例创

2023-12-28 15:24:22 1020

原创 AOT编程

Ahead-of-Time(提前,全部被编译成:Just in Time(即时): 程序边,边运行;

2023-12-26 16:04:43 996

原创 SpringBoot3 整合Kafka

官网:https://kafka.apache.org/documentation/

2023-12-26 15:44:46 971

原创 SpringBoot3 整合Swagger

Swagger 可以快速生成文档,方便前后开发人员进行协调沟通。遵循规范。文档:https://springdoc.org/v2/

2023-12-26 15:34:07 1314 2

原创 SpringBoot3 整合Redis

RedisTemplate、StringRedisTemplate: 操作redis的工具类。要从redis的连接工厂获取链接才能操作redis。属于 JPA 操作,也不用管。属于响应式编程,不用管。

2023-12-26 15:27:29 937

原创 SpringBoot3 核心原理

抽取聊天机器人场景,它可以打招呼。效果:任何项目导入此starter都具有打招呼功能,并且问候语中的人名需要可以在配置文件中修改创建自定义starter项目,引入基础依赖编写模块功能,引入模块所有需要的依赖。编写自动配置类,帮其他项目导入这个模块需要的所有组件编写配置文件指定启动需要加载的自动配置其他项目引入即可使用。

2023-12-26 15:14:47 869

原创 SpringBoot3 基础特性

1.3. FluentBuilder API2. Profiles环境隔离能力;快速切换开发、测试、生产环境步骤:2.1.1 指定环境Spring Profiles 提供一种隔离配置的方式,使其仅在特定环境生效;任何@Component, @Configuration 或 @ConfigurationProperties 可以使用 @Profile 标记,来指定何时被加载。【容器中的组件都可以被 标记】@prifile是可以用在组件@Bean上的,表示此组件的生效环境,如果没有具体指定环境就

2023-12-26 14:51:54 972

原创 SpringBoot3 数据访问

SpringBoot 整合 、、 进行数据访问场景开发2. 配置数据源安装MyBatisX 插件,帮我们生成Mapper接口的xml文件即可需要再SpringBoot的启动类上添加@MapperScan(basePackages=“xxx”)来告诉mybatis,扫描哪个包下的所有接口4. CRUD编写编写Bean编写Mapper使用插件,快速生成MapperXML测试CRUD5. 自动配置原理SSM整合总结:导入 配置数据源信息配置mybatis的与编写bean,mapper,生成

2023-12-26 12:43:07 408

原创 SpringBoot3 Web开发

自定义静态资源路径、自定义缓存规则导入依赖

2023-12-26 11:44:12 497

原创 SpringBoot3 核心技能

Spring使用commons-logging作为内部日志,但底层日志实现是开放的。可对接其他日志框架。spring5及以后 commons-logging被spring直接自己写了。支持 jul,log4j2,logback。SpringBoot 提供了默认的控制台输出配置,也可以配置输出为文件。logback是默认使用的。虽然日志框架很多,但是我们不用担心,使用 SpringBoot 的默认配置就能工作的很好。SpringBoot怎么把日志默认配置好的1、每个starter。

2023-12-26 10:04:00 1537 1

原创 SpringBoot3 应用分析

​导入相关的场景,就拥有相关的功能。即场景启动器。默认支持的所有场景:Developing with Spring Boot官方提供的场景:命名为:spring-boot-starter-*第三方提供场景:命名为:*-spring-boot-starter

2023-12-26 09:32:43 933

原创 JVM 性能调优

配置完线程数之后,我们的请求的平均响应时间和GC时间都有一个明显的减少了,仅从效果上来看,我们这次的优化是有一定效果的。大家在工作中对于线上项目进行优化的时候,可以考虑到这方面的优化。

2023-12-08 10:34:02 466

原创 JVM 运行时参数

面试题JVM的参数,你知道的说一下 (百度)说说你知道的几种主要的JVM参数(京东)JVM调优调的哪些参数?在哪里写这些参数?(亚信)内存调优参数都有什么?(顺丰)JVM调优调的哪些参数?问这样有什么好处?在哪里写这些参数(浪潮)

2023-12-07 15:50:42 417

原创 JVM GUI可视化监控及诊断工具

MAT(Memory Analyzer Tool)工具是一款功能强大的Java堆内存分析器。可以用于查找内存泄漏以及查看内存消耗情况。MAT是基于Eclipse开发的,不仅可以单独使用,还可以作为插件的形式嵌入在Eclipse中使用。是一款免费的性能分析工具,使用起来非常方便。大家可以在https://www.eclipse.org/mat/downloads.php下载并使用MAT。只要确保机器上装有JDK并配置好相关的环境变量,MAT可正常启动。

2023-12-07 11:49:36 485

原创 JVM 命令行监控及诊断工具

性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成 Java 应用出现性能问题的因素非常多,例如线程控制、磁盘读写、数据库访问、网络I/O、垃圾收集等。想要定位这些问题,一款优秀的性能诊断工具必不可少。体会1:使用数据说明问题,使用知识分析问题,使用工具处理问题。体会2:无监控、不调优!简单命令行工具。

2023-12-07 10:10:08 282

原创 JVM 分析GC日志

输出gc日志信息,默认输出到标准输出。

2023-12-06 15:50:41 247

原创 JVM 垃圾回收

什么是垃圾( Garbage) 呢?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。外文:An object is considered garbage when it can no longer be reached from any pointer in the running program.如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。

2023-12-06 15:19:09 879

原创 JVM 执行引擎篇

动态编译(compile during run-time),英文称Dynamic compilation;Just In Time也是这个意思。HotSpot对bytecode的编译不是在程序运行前编译的,而是在程序运行过程中编译的。HotSpot里运行着一个监视器(Profile Monitor),用来监视程序的运行状况。Java字节码(class文件)是以解释的方式被加载到虚拟机中(默认启动时解释执行)。程序运行过程中,那一部分运用频率大,那些对程序的性能影响重要。

2023-12-06 10:39:35 1334

原创 JVM 对象内存布局篇

1、new对象最常见的方式变形1:X的静态方法变形2:XxxBuilder/XxxFactory的静态方法2、Class的newlnstance0:反射的方式,只能调用空参的构造器,权限必须是public3、Constructor的newinstance(X):反射的方式,可以调用空参、带参的构造器,权限没有要求,实用性更广4、使用clone():不调用任何构造器,当前类需要实现Cloneable接口,实现clone(),默认浅拷贝int age;

2023-12-06 09:18:21 216

原创 JVM 运行时内存篇

Java虚拟机栈是什么?Java虚拟机栈(Java Virtual Machine Stack),早期也叫Java栈。每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的Java方法调用。是线程私有的。生命周期生命周期和线程一致。特点栈是一种快速有效的分配存储方式,访问速度仅次于程序计数器。如何理解栈管运行,堆管存储?面试题堆和栈的区别、谁的性能更高(艾绒软件)为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?(阿里)

2023-12-04 11:38:58 540

原创 JVM 类的加载

类模板对象所谓类模板对象,其实就是Java类在JVM内存中的一个快照,JVM将从字节码文件中解析出的常量池、类字段、类方法等信息存储到类模板中,这样JVM在运行期便能通过类模板而获取Java类中的任意信息,能够对Java类的成员变量进行遍历,也能进行Java方法的调用。反射的机制即基于这一基础。如果JVM没有将Java类的声明信息存储起来,则JVM在运行期也无法反射。类模型的位置加载的类在JVM中创建相应的类结构,类结构会存储在方法区(JDK1.8之前:永久代;JDK1.8及之后:元空间)。

2023-12-01 14:31:48 179

原创 JVM 字节码

Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与“Class 文件”这种特定的二进制文件格式所关联。无论使用何种语言进行软件开发,只要能将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行。可以说,统一而强大的Class文件结构,就是Java虚拟机的基石、桥梁。想要让一个Java程序正确地运行在JVM中,Java源码就必须要被编译为符合JVM规范的字节码。Java SE规范。

2023-11-30 17:32:10 319

原创 Docker 容器监控之CAdvisor+InfluxDB+Granfana

1、新建目录2、新建docker-compose.yml文件volumes:services:influxdb:ports:volumes:cadvisor:links:ports:volumes:grafana:links:ports:volumes:3、启动docker-compose文件命令:docker-compose up4、查看服务是否启动5、浏览cAdvisorL收集服务。

2023-09-25 20:37:59 229

原创 Docker 容器编排

Docker-Compose是 Docker 官方的开源项目,负责实现对Docker容器集群的快速编排。Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

2023-09-25 20:24:18 440

原创 Docker 网络

Docker 网络是 Docker 容器连接到同一主机或不同主机上的其他容器以及外部世界(即通过互联网)的一种方式。Docker 的网络子系统可以使用驱动程序进行插拔。默认情况下存在多个驱动程序,并提供核心网络功能。1、不启动docker模式下的网络配置情况virbr0解释:在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后。

2023-09-25 19:50:39 296

原创 Docker Dockerfile解析

从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,* Dockerfile是软件的原材料* Docker镜像是软件的交付品* Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

2023-09-22 18:32:18 358

原创 Docker 安装Redis(集群)

1、新建6个docker容器 redis 实例运行结果:2、进入容器redis-node-1并为6台机器构建集群关系进入容器:docker exec -it redis-node-1 /bin/bash3、链接进入6381作为切入点,查看集群状态 命令:cluster info 和 cluster nodes1、启动6台redis构成的集群并通过exec进入2、对6381新增两个key3、防止路由失效加参数-c并新增两个key4、查看集群信息实例:redis-cli --cluster check 1

2023-09-22 17:33:55 379

原创 Docker 安装MySQL(主从复制)

change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;默认值为0,表示不自动清理。

2023-09-22 17:30:44 388

原创 Docker 容器数据卷

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。一句话:有点类似我们Redis里面的rdb和aof文件,将docker容器内的数据保存进宿主机的磁盘中。-v /宿主机绝对路径目录:/容器内目录 镜像名记得加入:--privileged=true原因:如果。

2023-09-21 10:52:34 384

原创 Docker 镜像

是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。:以我们的pull为例,在下载的过程中我们可以看到docker的镜像好像是在一层一层的在下载。Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持。

2023-09-19 21:52:02 463

原创 Docker 常用命令

1、启动docker:systemctl start docker2、停l止docker:systemctl stop docker3、重启docker:systemctl restart docker4、查看docker状态:systemctl status docker5、开机启动:systemctl enable docker6、查看dockeri慨要信息:docker info7、查看docker总体帮助文档:docker --help。

2023-09-19 21:14:29 670

原创 Docker 安装

需要正确的理解仓库 / 镜像 / 容器这几个概念:Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。镜像文件:image 文件生成的容器实例,本身也是一个文件,称为镜像文件。

2023-09-19 20:28:10 250

原创 Redis 高性能设计之epoll和IO多路复用深度解析

a、同步阻塞:服务员说快到你了,先别离开我后台看一眼马上通知你。客户在海底捞火锅前台干等着,啥都不干。b、同步非阻塞:服务员说快到你了,先别离开。客户在海底捞火锅前台边刷抖音边等着叫号。c、异步阻塞:服务员说还要再等等,你先去逛逛,一会儿通知你。客户怕过号在海底捞火锅前台拿着排号小票啥都不干,一直等着店员通知。d、异步非阻塞:服务员说还要再等等,你先去逛逛,一会儿通知你。拿着排号小票+刷着抖音,等着店员通知。

2023-09-16 20:42:09 436

原创 Redis 五大类型源码及底层实现

面试题:谈谈Redis数据类型的底层数据结构:官网:GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.源码

2023-09-14 14:35:07 336

原创 Redis 缓存过期淘汰策略

数据到达过期时间,不做处理。等下次访问该数据时,如果未过期,返回数据;发现已过期,删除,返回不存在。开启隋性淘汰,配置文件中修改:lazyfree-ay-eviction=yes惰性删除策略的缺点是,它对内存是最不友好的。如果一个键已经过期,而这个键又仍然保留在redis中,那么只要这个过期键不被删除,它所占用的内存就不会释放。在使用惰性删除策略时,如果数据库中有非常多的过期键,而这些过期键又恰好没有被访问到的话。

2023-09-13 11:08:36 306

原创 Redis RedLock算法和底层源码分析

失败了多少个机器实例后我还是可以容忍的,所谓的容忍就是数据一致性还是可以Ok的,CP数据一致性还是可以满足。加入在集群环境中,redis失败1台,可接受。2X+1 = 2 * 1+1 =3,部署3台,死了1个剩下2个可以正常工作,那就部署3台。加入在集群环境中,redis失败2台,可接受。2X+1 = 2 * 2+1 =5,部署5台,死了2个剩下3个可以正常工作,那就部署5台。

2023-09-13 10:40:41 340

原创 Redis 分布式锁

1.数据共享,分布式Session2.分布式锁3.全局ID5.位统计6.购物车7.轻量级消息队列:list、stream8.抽奖10.差集交集并集,用户关注、可能认识的人,推荐模型11.热点新间、热搜排行榜。

2023-09-06 21:58:45 442

Maven 打包生成Windows和Liunx启动文件模板

Maven 打包生成Windows和Liunx启动文件模板

2023-08-07

Java设计模式(图解+框架源码分析+实战)- 黑马课件

Java设计模式(图解+框架源码分析+实战)- 黑马课件

2023-07-24

Arthas阿尔萨斯诊断工具

阿里巴巴开源的 Java 诊断工具

2023-07-18

MySQL 8.0 解压版

MySQL 8.0 解压版

2022-06-07

HTML实现计算器+留言板的项目

功能:计算器+留言板+读取json文件+时间展示

2021-06-23

基于大数据的商品推荐系统

推荐算法有:统计推荐、基于LFM的协同过滤推荐、Item-CF、TF-IDF、实时推荐,采用Java+Scala语言编写,MongoDB作为数据库。

2021-04-12

手写一个SpringIoc容器

仿照Spring写的一个Ioc容器,注释很详细!

2021-04-12

【猿来入此】SSM框架角色权限管理系统脚手架源码

本人自己购买的资源,现在分享给大家系统源码。 系统其他资源也有,运行截图、项目源码、项目素材、数据库文件、视频教程、课堂笔记等,有需要的可以私聊我!!

2021-03-22

【猿来入此】Jsp+Ssm+Mysql框架实现的手机电脑自适应新闻博客系统源码

本人自己购买的教程,现在分享给系统大家源码! 项目其他资源还有运行截图、项目源码、项目素材、数据库文件、视频教程、课堂笔记等,有需要的可以私聊我!!

2021-03-22

openjdk-14_src.zip

JDK14源码

2021-03-14

jdk-7u80-windows-x64.zip

直接解压,添加环境变量就可以使用

2021-02-18

空空如也

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

TA关注的人

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