- 博客(17)
- 收藏
- 关注
原创 Java基础
修饰符同类同包子类不同包可修饰元素private√✗✗✗变量、方法、构造器、内部类default√√✗✗类、变量、方法、构造器protected√√√✗变量、方法、构造器public√√√√类、接口、变量、方法、构造器修饰符含义可修饰元素作用示例static静态的变量、方法、代码块、内部类属于类而非实例,所有实例共享final最终的类、方法、变量不可改变/继承/重写abstract抽象的类、方法不能实例化,没有实现同步的。
2025-10-12 18:17:29
807
原创 学习分布式唯一ID实现方案
角色描述浏览者仅可查看空间中的图片内容编辑者可查看、上传和编辑图片内容管理员拥有管理空间和成员的所有权限权限键功能名称描述成员管理管理空间成员,添加或移除成员查看图片查看空间中的图片内容上传图片上传图片到空间中修改图片编辑已上传的图片信息删除图片删除空间中的图片角色对应权限键可执行功能浏览者查看图片编辑者查看图片、上传图片、修改图片、删除图片管理员成员管理、查看图片、上传图片、修改图片、删除图片根据 RBAC 权限模型,需要定义角色和权限。
2025-08-18 22:12:13
711
原创 Git版本控制
本文介绍了Git常用命令和操作流程,包括Git全局配置、获取仓库的两种方式(初始化本地仓库和克隆远程仓库)。详细讲解了Git基本概念、本地库操作(提交、撤销等)、远程仓库操作(推送、拉取)、分支管理(创建、合并)以及标签操作。同时提供了IDEA集成Git的方法和冲突解决方案,强调提交前更新代码和合并分支时的注意事项,以避免多人协作时的代码冲突问题。
2025-07-26 21:55:18
731
原创 Maven学习
1. 02工程需要使用domain包下的实体类但是没有2.domain包在03工程中3.只需要在02工程中的POM文件中引入03工程的依赖坐标(该坐标在03工程的POM文件下可以找到)4.但是此时你maven编译02工程会报错(03工程的依赖找不到)(因为本地仓库没有03工程依赖)5.对03工程进行install可以看到03工程的依赖可以安装到了本地仓库,此时可以运行02工程了依赖具有传递性 依赖的冲突性依赖因为有传递性,所以会导致依赖冲突的问题(依赖多个版本的依赖,不确定用哪个)可选依赖可选依赖是隐藏当前
2025-07-23 21:50:58
1607
原创 Mysql锁和存储引擎
只能读不能写不加锁加锁sql语句备份语句不在mysql执行是一个工具在window命令行执行就可以了备份时候指定 用户名 和密码 和备份数据库 和备份存储的位置总结。
2025-05-08 22:49:44
341
原创 Java网络编程篇
TCP/IP 协议详解TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网的核心协议族,定义了计算机之间如何通信。它采用分层模型,每层负责不同的功能,共同完成数据传输。1. TCP/IP 四层模型TCP/IP 层主要协议功能应用层提供应用程序间的数据交互(如浏览器访问网页、邮件发送)。传输层TCP, UDP确保数据可靠传输(TCP)或快速传输(UDP)。网络层负责寻址和路由,将数据包从源主机发送到目标主机(如 IP 地址寻址)。
2025-03-24 19:34:23
943
原创 DQL数据查询
摘要 本文介绍了DQL数据查询语言的基本用法和常见操作。主要内容包括:DQL语句不会修改数据而是返回结果集;SELECT查询的基本语法结构及各类子句(WHERE、GROUP BY等)的作用;演示了创建学生表、雇员表和部门表并插入数据的过程;详细讲解了简单查询、条件查询、模糊查询、字段控制和排序操作;最后介绍了COUNT、MAX等聚合函数的功能。通过丰富的SQL示例展示了如何执行各类查询操作,包括查询所有列、指定条件、去除重复记录、处理NULL值、计算字段和结果排序等实用技巧。
2025-03-03 21:15:50
576
原创 Java多线程篇
参考回答在JDK中的Thread类中的枚举State里面定义了6中线程的状态分别是:新建、可运行、终结、阻塞、等待和有时限等待六种。关于线程的状态切换情况比较多。我分别介绍一下当一个线程对象被创建,但还未调用start方法时处于新建状态,调用了start方法,就会由新建进入可运行状态。如果线程内代码已经执行完毕,由可运行进入终结状态。当然这些是一个线程正常执行情况。如果线程获取锁失败后,由可运行进入Monitor的阻塞队列阻塞,只有当持锁线程释放锁时,会按照一定规则唤醒阻塞队列中的阻塞。
2025-01-19 20:43:08
1703
原创 Java集合篇
元素可以重复数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。现在假如,我们通过arrar[1],想要获得下标为1这个元素,但是现在栈内存中指向的堆内存数组的首地址,它是如何获取下标为1这个数据的?分析ArrayList源码主要从三个方面去翻阅:成员变量,构造函数,关键方法以下源码都来源于jdk1.8底层数据结构ArrayList是动态数组的数据结构实现LinkedList是双向链表的数据结构实现操作数据效率。
2025-01-17 14:13:29
1673
原创 Java消息中间件篇
另一种方法是安装RabbitMQ的死信插件,简化配置,在声明交换机时指定为死信交换机,并设置消息超时时间。主节点处理所有操作并同步给从节点,若主节点宕机,从节点可接替为主节点,但需注意数据同步的完整性。通过业务唯一标识检查数据库中数据是否存在,若不存在则处理消息,若存在则忽略,避免重复消费。使用仲裁队列,主从模式,基于Raft协议实现强一致性数据同步,简化配置,提高数据安全性。扩大队列容量,使用RabbitMQ的惰性队列,支持数百万条消息存储,直接存盘而非内存。提高消费者消费能力,如使用多线程。
2025-01-14 20:53:04
610
原创 Java微服务篇
候选人自定义Ribbon负载均衡策略有两种方式:创建一个类实现IRule接口,这将定义全局的负载均衡策略。在客户端配置文件中指定特定服务调用的负载均衡策略,这将仅对该服务生效。候选人服务雪崩是指一个服务的失败导致整个链路的服务相继失败。服务降级:在请求量突增时,主动降低服务的级别,确保核心服务可用。服务熔断:当服务调用失败率达到一定阈值时,熔断机制会启动,防止系统过载。候选人我们项目中使用了Seata的AT模式来解决分布式事务问题。AT模式通过记录业务数据的变更日志来保证事务的最终一致性。
2025-01-14 15:13:49
877
原创 JVM篇.
问题回答程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。类似于计算机组成原理中的中断后的恢复依赖于PC回复线程假如线程1执行到第10行时间片被线程2夺走了则pc会记录线程1运行到第10行当线程2时间片走完后走线程1 的时候则回直接从第10行开始运行而不是第一行java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。
2025-01-12 20:23:49
2086
原创 Redis篇
嗯,我想一下。缓存穿透是指查询一个一定不存在的数据,由于存储层查不到数据因此不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。解决方案的话,我们通常都会用布隆过滤器来解决它。
2025-01-11 19:38:22
977
原创 设计模式篇
在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这增加了难度。这样的例子还有很多,如找领导出差报销、生活中的“击鼓传花”游戏等。
2025-01-10 21:03:32
849
原创 SSM框架篇
候选人Spring实现事务的本质是利用AOP完成的。它对方法前后进行拦截,在执行方法前开启事务,在执行完目标方法后根据执行情况提交或回滚事务。
2025-01-10 12:21:45
477
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅