w7486
码龄4年
关注
提问 私信
  • 博客:108,855
    社区:33
    108,888
    总访问量
  • 78
    原创
  • 1,266,321
    排名
  • 2,009
    粉丝
  • 1
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:贵州省
  • 加入CSDN时间: 2020-10-11
博客简介:

w7486的博客

查看详细资料
个人成就
  • 获得223次点赞
  • 内容获得49次评论
  • 获得982次收藏
  • 代码片获得153次分享
创作历程
  • 2篇
    2023年
  • 43篇
    2022年
  • 33篇
    2021年
成就勋章
TA的专栏
  • java
    9篇
  • rides
    4篇
  • 多线程
    4篇
  • JVM
    2篇
  • mysql
    4篇
  • 学习记录
    13篇
  • 每天一个设计模式
    9篇
  • 微服务架构
    1篇
  • 数据结构
    7篇
  • 面试
    8篇
  • LeetCode每日一题
  • Spring Boot
    7篇
  • 算法
    6篇
  • Mybatis
    5篇
  • 深入学习Spring
    7篇
  • C#
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

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

深入学习JVM(Java虚拟机)

运行时数据区方法区:方法区只有一个,是线程共享的,生命周期和虚拟机一样。存储类信息,常量,静态变量和编译后的代码,常量池。方法区满了会OutOfMemoryError(OOM)。堆:堆也只有一个,是线程共享的,生命周期和虚拟机一样。存储的是对象。堆满了也会OOM.虚拟机栈:是线程私有的,生命周期和创建的线程一样。存储8种基本数据类型和对象的引用,每调用一个方法就会把一个栈帧压栈。栈满了会报错StackOverflowError。Java虚拟机栈,执行方法的时候,到底经历什么? ja...
原创
发布博客 2023.09.22 ·
419 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

面试被问:Mysql的InnoDB下RR是如何解决幻读问题的

Mysql的InnoDB下RR是如何解决幻读问题的,应该从多个方面开始回答
原创
发布博客 2023.09.19 ·
501 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java垃圾回收机制(GC)

1.垃圾回收算法1)标记清除算法:标记:先进行扫描,将已存活的对象进行标记;清楚:对堆内存进行遍历,回收没有标记的对象;缺点:清楚后会产生大量不连续的内存碎片,也就是碎片化问题;这个问题可能导致后续创建较大的对象时无法找到足够的连续空间继而再次触发垃圾回收。2)复制算法:将可用内存分为对象面和空闲面,在对象面上创建对象,若对象面满,就将还存活的对象复制到空闲面,然后将对象面的所有对象清楚。这个算法解决了碎片化的问题,特别使用Eden区,因为Eden区对象的存活率很低,所以所需复制的对
原创
发布博客 2022.03.30 ·
3183 阅读 ·
2 点赞 ·
0 评论 ·
16 收藏

MySQL的事务与锁

目录什么是事务事务的特性事务并发产生的问题事务隔离级别事务隔离级别的实现MVCCRead View(一致性视图)锁(LBCC)锁的算法什么是事务事务就是一条sql语句或者多条sql语句所组成的逻辑执行单元,要么全部执行成功要么全部执行失败,目的是保证数据的一致性。并不是所有的存储引擎都支持事务,InnoDB,NDB是支持事务的。事务的特性在Mysql中事务的四大特性主要包含:原子性(Atomicity)、一致性(Co...
原创
发布博客 2022.03.23 ·
2319 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Redis进阶篇

1、掌握Redis的高级特性,例如发布订阅、事务、Lua脚本2、掌握Redis的底层工作原理,包括单线程工作机制、内存回收、持久化1.发布订阅模式publish 发布subscribe 订阅unsubscribe 取消订阅2.redis事务redis的单个命令是原子性的,但是多个命令我们该怎么保证原子性呢可以保证有序性和原子性。multi 开启一个事务 会把后续的操作命令放进队列exec 执行事务discard 取消事务watch 相当于cas乐观锁.
原创
发布博客 2022.03.17 ·
1614 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Redis基础篇

Redis非关系型数据库关系型数据库基于行存储数据,二维的模式 存储结构化的数据,数据存储有固定的模式(schema) 表与表之间存在关联(Relationship) 大都支持SQL(结构化查询语言)的操作,支持复杂的关联查询 通过支持事务ACID,来提供严格或者实时的数据一致性关系型数据库的不足要实现扩容的话,只能向上(垂直)扩展,不支持动态的扩缩容 表结构修改困难,因此存储的数据格式也受到限制 高并发情况下,基于磁盘的读写压力比较大非关系型数据库的特点(nosql)存储非
原创
发布博客 2022.03.13 ·
1456 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

MySQL的索引

索引1.索引的数据结构B树多路平衡查找树B树减少了层高 所以buffer Pool可以放更多的数据。B树的问题:查询连续数据时(范围查找时)可能会发生多次的磁盘IO.比如我们想查找5~15的数据,我们就需要在磁盘块2查找完5数据后在返回磁盘块1然后再判断6应该再哪个磁盘块里,5~15需要多次的遍历多次的进行磁盘IO。这显然会降低我们的查找速度 而且存放data也会占用空间 树还是不够矮B+树非叶子不存放data只存放索引的值叶子节...
原创
发布博客 2022.03.06 ·
568 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Java并发编程

一.何为并发我们先从生活场景中找个例子;大家有没有排队买过奶茶,往往会排很长很长的队伍,因为要做奶茶,做奶茶的速度赶不上买的人的速度。那么这个场景去其实就是并发。那么映射到我们的并发编程,就是一个接口假如同时有100个人访问,那么这个就属于并发。那么什么是高并发?高并发就是我系统能承受的并发数,所以,高并发其实是跟我们的系统有关的,比如一个小奶茶店,一个上午只能做500杯奶茶,那么如果有个3,400人排队,其实就是已经属于高并发了,那么500就是你系统能承受的...
原创
发布博客 2022.03.01 ·
813 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

线程池学习

目录为什么引入线程池自定义线程池线程池的执行流程为什么引入线程池创建过多线程带来的问题:消耗内存资源 CUP的开销(上下文切换)所以引入了线程池的概念线程池的逻辑就是提前创建好若干个线程,放进一个容器里(HashSet),如果有任务,就把这个任务分配给线程池中的线程来执行。线程执行完任务不会销毁,而是就是等待任务的分配。线程池的好处避免频繁创建销毁线程带来的性能开销(复用线程) 合理设置线程大小避免出现资源瓶颈(控制资源数量)Java中提供的线程池//
原创
发布博客 2022.03.01 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JUC源码学习

目录1.LockReentrantLock源码解析公平锁和非公平锁的区别什么是AQSSynchronized和Lock的区别2.Condition( 线程通信)3.BlockQueue阻塞队列4.CountDownLatch5.Semaphore(信号灯)6.Atomic原子类1.LockLock是JUC下控制锁的接口,它要比前面用到的Synchronized更加灵活。他有一些方法lock()加锁 unlock()释放锁,它与lock()配套使用
原创
发布博客 2022.02.23 ·
1064 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

深入学习ThreadLocal

目录1.ThreadLoca的作用2.ThreadLocal源码get方法set方法扩容机制Hash冲突时3.ThreadLocal面试常问ThreadLocal怎么解决hash冲突的?ThreadLocal怎么解决内存泄漏的?value为什么不能用弱引用?1.ThreadLoca的作用ThreadLoca的作用:可以实现线程隔离简单案例了解一下ThreadLocapublic class ThreadLocalDemo { public
原创
发布博客 2022.02.21 ·
413 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java四大引用(强、软、弱、虚)

目录强引用软引用弱引用虚引用强引用也是我们平时用得最多的,new一个对象就是强引用,例如 Object obj = new Object(); 当JVM的内存空间不足时,宁愿抛出OutOfMemoryError使得程序异常终止 也不愿意回收具有强引用的存活着 的对象!记住是存活着,不可能是你new一个对象就永远不会被GC回收。 如果将引用赋值为null时,你的对象就表明不是存活着,这样就会可以被 GC回收了当内存不足的时候,jvm开始垃圾回收,对于强引用的对象,就算.
原创
发布博客 2022.02.19 ·
300 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot实现文件上传与下载

目录文件上传文件下载文件上传配置文件中配置文件上传相关参数application.yml配置#自定义属性file: path: D:/public/spring: servlet: multipart: #开启文件上传 enabled: true #单个文件最大限制 max-file-size: 100MB #单个文件最多请求文件 max-request-size: 100MB
原创
发布博客 2022.02.19 ·
580 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

SpringBoot整合Filter、Listener

Filter过滤器方式一:直接在过滤器中添加@WebFilter注解在启动器中添加@ServletCompoenentScan@WebFilter(urlPatterns = "/test2")public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.p
原创
发布博客 2022.02.18 ·
399 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot整合Servlet

方式一:加入web-staer<!-- spring boot web依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>创建servletDemo,继承HttpSevlet@
原创
发布博客 2022.02.18 ·
503 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

当面试被问:请你说说你对Spring Boot自动装配与条件装配的理解

我的回答是springboot的自动装配就是比如当我们在用redisTemplate这个对象的时候,我们明明没有手动的把这个bean注册spring容器中,但是我们却可以从spring容器中拿到这个对象,这就是在我们加入了redis-stater依赖的时候,springBoot帮我们实现了自动装配。自动装配的实现其实就是一种约定优于配置的思想,在我们springBoot的启动类上有@SpringBootApplication注解,它其实是有三个 注解组成,其中的@EnableAutoConfigu
原创
发布博客 2022.02.17 ·
809 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

手写 redisson starer组件

目录一.手写redisson starer组件创建项目编写RedissionAutoConfiguration编写RedissionProperties编写spring.factories文件编写additional-spring-configuration-metadata.json打包二.加入Spring Boot项目测试一.手写redisson starer组件项目结构redission-spring-boot-starter创建项目先加入sp.
原创
发布博客 2022.01.30 ·
1673 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spring Boot入门

一.为什么要使用Spring BootSpring虽然是个轻量级的框架,但是当我们业务复杂时,需要加入的组件也会增多,随之我们配置的bean也会增多,那么我们的配置会变的非常的繁杂。回想一下我们如何构建SpringMVC项目:创建一个项目结构( maven/gradle) spring的依赖,spring mvc . servlet api的依赖 web.xml,DispatcherServlet 启动一个Spring MVC的配置,Dispatcher-servlet.xml 创建一.
原创
发布博客 2022.01.29 ·
496 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring Boot自动装配原理

目录什么是自动装配?自动装配是如何实现的?什么是自动装配?我们可以先看一段代码@RestControllerpublic class RedisContorller { @Autowired RedisTemplate<String, String> redisTemplate; @GetMapping("/get") public String getName() { return redisTemplate.opsF
原创
发布博客 2022.01.28 ·
3393 阅读 ·
4 点赞 ·
0 评论 ·
19 收藏

redis配置远程连接

redis开启远程连接需要配置redis.conf文件1.找到bind 127.0.0.1把这段注释掉,或着改成bind 0.0.0.0,但是这两种方式我试了对我都不好使。我用的方式是改成bind 虚拟机的ip2. protected-mode yes 改成protected-mode no3.requirepass foobroad打开 设置你自己的密码我把密码设为root 就可以这样写requirepass root这时候远程就可以连接上了但是我的li...
原创
发布博客 2022.01.28 ·
6287 阅读 ·
3 点赞 ·
0 评论 ·
15 收藏
加载更多