热爱Java的分享家
码龄18年
关注
提问 私信
  • 博客:42,944
    社区:817
    43,761
    总访问量
  • 58
    原创
  • 448,913
    排名
  • 697
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2006-06-08
博客简介:

ygk004的博客

查看详细资料
个人成就
  • 获得18次点赞
  • 内容获得1次评论
  • 获得85次收藏
创作历程
  • 58篇
    2021年
成就勋章
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

慌,老大突然问我基于JDK和CGLib实现动态代理的区别和适用场景

在日常的开发中,Spring AOP 是一个非常常用的功能。谈到 AOP,自然离不开动态代理。那么,基于 JDK 和 CGLib 如何实现动态代理,他们之间的区别和适用场景是什么呢?接下来,我们一起来探讨一下这个问题。JDK 如何实现动态代理?话不多说,我们直接对照着代码来查看。代码示例Hello 接口public interface HelloInterface { /** * 代理的目标方法 */ void sayHello();
原创
发布博客 2021.12.18 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

万字总结IO多路复用技术

IO 多路复用概述I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。在IO多路复用技术描述前,先讲解下同步,异步,阻塞,非阻塞的概念。网络IO模型linux网络IO中涉及到的模型如下:(1)阻塞式IO(2)非阻塞式IO(3)IO多路复用(4)信号驱动IO(5)异步IO今天不谈信号驱动IO,略过..同步/异步在学习IO模型的时候,我们必须明确一个概念,处理 IO 的时候,阻塞和非阻塞都是
原创
发布博客 2021.12.18 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试官:讲一下Mybatis在SpringBoot中是如何被加载执行的?

本文主要讲述mybatis在springboot中是如何被加载执行的,由于涉及的内容会比较多,所以这次只会对调用关系及关键代码点进行讲解,为了避免文章太长,读起来昏昏欲睡,一些不影响整体流程的细节就不涉及了。源码位置https://github.com/wbo112/blogdemo/tree/main/springbootdemo/springboot-mybatis1、预备知识FactoryBean什么是FactoryBean?我们先看看FactoryBean的源码//由 BeanFac
原创
发布博客 2021.12.17 ·
415 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

一套方案轻松实现Zookeeper服务器动态上下线和分布式锁

ZooKeeper是⼀个典型的发布/订阅模式的分布式数据管理与协调框架,我们可以使⽤它来进⾏分布式 数据的发布与订阅。另⼀⽅⾯,通过对ZooKeeper中丰富的数据节点类型进⾏交叉使⽤,配合Watcher 事件通知机制,可以⾮常⽅便地构建⼀系列分布式应⽤中都会涉及的核⼼功能,如数据发布/订阅、命名 服务、集群管理、Master选举、分布式锁和分布式队列等。那接下来就针对这些典型的分布式应⽤场景 来做下介绍。Zookeeper的两⼤特性:1.客户端如果对Zookeeper的数据节点注册Watcher监
原创
发布博客 2021.12.17 ·
6404 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

系统重构:从Jar包冲突搞到类加载机制,就是这么霸气

接手了一套比较有年代感的系统,计划把重构及遇到的问题写成系列文章,老树发新枝,重温一些实战技术,分享给大家。【重构01篇】,给大家讲讲Jar包冲突及原理。背景目前市面上项目管理要么是基于Maven,要么是基于Gradle,最近接手了一套纯手动添加jar包的项目。对于纯手动添加jar包的项目已经是多年前的方式了,现在工作三五年的技术人员可能都没有经历过。就是把项目中所需的jar包挨个找出来,添加到一个lib目录中,在IDE中再将jar包依赖手动添加上。这种方式来添加jar包依赖,不仅费事,而且
原创
发布博客 2021.12.17 ·
196 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

阿里官方保姆级Java技术图谱发布,够学到2022年了,赶紧收藏

作为一个Java程序员,所有小伙伴都会有这么一个情况,想学习,不想被淘汰,结果天天加班,只能想想!2022年即将来了马上就是新年了,今年疫情假期都比之前长点,其实这也是一个提升自己最好的机会,现在对于Java开发的而言,对技能的要求比以前高了不是一点!但是直到今天,我看到这个Alibaba Java技术图谱之后,感觉这里面的内容真是为进击大厂的小伙伴量身打造的!所以,今天特地拿出来分享一下,这个非常值得每一个Java开发者去学习和收藏!图谱亮点为什么说这个图谱值得推荐呢?主要有这几点:
原创
发布博客 2021.12.17 ·
434 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

二本4年Java经验,五面阿里艰苦经历(定薪45K),回馈一波心得体会

4月准备跳槽,先后面试了各大小公司,拿了一些offer,有阿里,滴滴,快手,达达,得物等公司。面试的公司大部分都能过,所以这里给大家分享下自己的经验,也给自己做个归档,希望能给正在准备跳槽,找工作的朋友一点帮助,这里主要分享下阿里面试的经历!阿里一面自我介绍,聊项目, 这边挺常规的,从项目入手。 解析Excel为什么用POI ? POI存在的问题? 还知道哪些解析Excel的工具吗? 你们项目中用过MQ,平时都用MQ来做什么? 你处理过MQ得幂等问题,当时是怎么做的? MQ的可靠性怎么保证
原创
发布博客 2021.12.17 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

不是吧,不是吧,真的有比B+Tree更快的一种查询结构

我们都知道MySQL中的B+Tree索引结构,对于根据某个条件查找记录是非常快的。那么,在不断追求极致的驱动下,你有没有想过MySQL会不会有比B+Tree更快的数据结构,来加速查找记录的性能呢?答案是有的,MySQL为了让我们更快地获取自己想查找的记录,在InnoDB中,将查询频繁的条件和索引树结果做了一个Hash映射,这样,一个查询就不需要每次搜索B+Tree去定位结果了,这个Hash映射就叫做AHI,全称Adaptive Hash Index,自适应哈希索引。一听这名字,你或许已经猜出个一二了。没
原创
发布博客 2021.12.17 ·
117 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

老生常谈:面试必问“三次握手,四次挥手”这么讲,保证你忘不了

TCP三次握手、四次挥手,在面试这锅滚油里,可谓是炸了千百遍的老油条。我们都知道TCP是面向连接的,三次握手就是用来建立连接的,四次握手就是用来断开连接的。三次握手先上图:我们来看一下三次握手的过程:一开始,客户端和服务端都处于CLOSED状态。客户端主动打开连接,服务端被动打卡连接,结束CLOSEDz状态,开始监听,进入LISTEN状态。一次握手客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序号」字段中,同时把SYN标志...
原创
发布博客 2021.12.16 ·
239 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试官:工作中Redis持久化机制AOF日志跟RDB快照你是如何选择的

大家都知道Redis经常被使用在缓存的场景中,那有没有想过这么一个问题,一旦服务器宕机,内存中的数据全部丢失,我们该如何进行恢复呢?如果直接从后端数据库恢复,不仅会给数据库带来巨大的压力,还会使上层应用响应变慢。所以redis的持久化机制是很重要的。接下来我们一起来探讨一下Redis的持久化机制。目前Redis持久化主要有两大机制,即AOF(Append Only File)日志和RDB快照。接下来我们就来分别学习一下。AOF日志AOF日志,即写后日志,它的含义是Redis先执行命令,把数据写入内存
原创
发布博客 2021.12.16 ·
276 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring Cloud Alibaba使用Seata解决分布式事务全过程解析

serverAddr = "http://localhost:2379" } file { name = "file.conf" }}以上内容主要修改了注册中心与配置中心为Nacos并且修改了Nacos地址与登录账号/登录密码,命名空间,分组;配置部署到Nacos这里简化了下Nacos官网下载的config.txt内容,从官网下载的配置文本以下内容标记需要修改的需要关注Copy#事务组 重点关注service.vgroupMapping.my_test...
原创
发布博客 2021.12.16 ·
1009 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

老生常谈的问题:Spring Boot中如何一键自定义starter?

Spring Boot starter我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。品达通用权限系统就是基于Spring Boot进行开发,而且一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是我们开发品达通用权限系统的必备知识。1 starter介绍spring boot 在配置上相比spring要简单许多, 其核心在于spring-boot-
原创
发布博客 2021.12.15 ·
114 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

什么是IOC?教你手撸一个IOC容器

IoC什么是IoC?IoC是Inversion of Control(控制反转)的简称,注意它是一个技术思想。描述的是对象创建、管理的事情。传统开发方式:比如类A依赖类B,往往会在类A里面new一个B的对象。 IoC开发方式:我们不用去new对象,由IoC容器帮我们实例化对象并进行管理。我们需要B对象,就问IoC容器要即可。控制反转就是说将对象创建、管理的权力交给了外部环境(IoC容器)。IoC的作用:解决了对象之间的耦合问题。什么是DI?DI是Dependancy Inject
原创
发布博客 2021.12.15 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面渣逆袭:半个小时成功拿下阿里一面HashMap追魂二十三问

HashMap作为我们熟悉的一种集合,可以说是面试必考题。简单的使用,再到原理、数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时。1.能说一下HashMap的数据结构吗?JDK1.7的数据结构是数组+链表,JDK1.7还有人在用?不会吧……说一下JDK1.8的数据结构吧:JDK1.8的数据结构是数组+链表+红黑树。数据结构示意图如下:其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率。数据元素通过映射关系,也就是散列函数,
原创
发布博客 2021.12.15 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

被老板骂了,线上执行一条update语句意外导致业务崩了

昨晚在群划水的时候,看到有位读者说了这么一件事。大概就是,在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩了,被老板教训了一波这次我们就来看看:为什么会发生这种的事故? 又该如何避免这种事故的发生?说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。1为什么会发生这种的事故?InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问
转载
发布博客 2021.12.12 ·
219 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

So eazy,SpringBoot一键去除参数前后空格和XSS过滤实战解析

去除XSS字符串需要借助工具类jsoup,这里jsoup有一点需要注意的是,jsoup的功能可能有点太强大了,能把xss攻击的内容直接过滤掉了不说,也会对英文尖括号<>转义,到接口里面拿到的参数就变成了<>,存库里面的就是转义后的字符串了。取出来的时候需要转一下。比如前台传的参数传的是:12<>3<script>alter('11111111')</script>455过滤处理了后,到后台接口里面就成了:[12<>...
原创
发布博客 2021.12.12 ·
332 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

很多网站,根本不用自己做

一波现成的建站工具大分享对大部分同学来说,有自己的网站是很酷的事情。我还记得自己第一次亲手搭建个人博客时,真的是满满的成就感!但不得不说,随着技术的发展和开源,如今现成的东西实在太多了!想要拥有个人网站,基本也都不用自己写代码了,几分钟就能轻松搞定。下面就分享一波现成的、开箱即用的网站生成器,对于想要快速搭建个人网站、甚至是上线属于自己产品的同学来说,绝对是非常不错的!WordPress开源的建站系统,小到个人博客、大到企业电商平台,都可以轻松实现。WordPress 的强大
原创
发布博客 2021.12.11 ·
229 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为了拿捏后端打工人都要会的 Redis 数据结构,我画了 20 张图

大家好,我是小林。Redis 为什么那么快?除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效地处理。因此,这次我们就来好好聊一下 Redis 数据结构,这个在面试中太常见了。注意,Redis 数据结构并不是指 tring(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Zset(有序集合),因为这些是 Redis 键值对中值的数据类型,并不是数据结构。这些数据类型的底层实现的方式,才
原创
发布博客 2021.12.10 ·
108 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

老生常谈的问题:Spring Boot中如何一键自定义starter?

Spring Boot starter我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。品达通用权限系统就是基于Spring Boot进行开发,而且一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是我们开发品达通用权限系统的必备知识。1 starter介绍spring boot 在配置上相比spring要简单许多, 其核心在于spring-boot-
原创
发布博客 2021.12.10 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

超赞:不愧是“阿里内部Redis学习笔记”从头到尾,全是精华

近几年,随着移动互联网的飞速发展,我们享受着整个社会的技术进步带来的便利,但同时也给从业者带来了如何保证项目的高并发、低延时的技术挑战,相应的互联网技术也随之发生了重大变革,NoSQL技术得到了蓬勃的发展。Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。掌握Redis已经逐步成为开发和运维人员的必备技能之一。基于上述情况,本次将给大家分享我的珍藏《阿里内部Redis学习笔记》这本笔记对Re
原创
发布博客 2021.12.09 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多