- 博客(415)
- 收藏
- 关注
原创 【链表】1移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。创建虚拟节点指向头结点,这样就不需要对头结点单独处理了。
2024-04-12 23:45:04 200
原创 【数组】5螺旋矩阵
给定⼀个正整数 n,⽣成⼀个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正⽅形矩阵。在循环遍历每一条边的时候,⽽求解本题依然是要坚持。
2024-04-12 23:01:39 253
原创 4-10 面经
● 阻塞问题:在二阶段提交的第二阶段中,如果协调者(Transaction Coordinator)在等待参与者(Transaction Participants)的提交或者回滚响应时发生故障,会导致参与者长时间阻塞,资源无法释放,可能引发性能问题和系统可用性问题。● 数据不一致:在二阶段提交中,如果在准备阶段某个参与者发生故障,或者提交阶段中协调者发生故障,可能导致部分参与者已经提交事务,而其他参与者尚未提交,从而引发数据不一致性问题。在统计直播间的人员流水信息时,会将观众进入,离开的数据分表入库。
2024-04-11 20:55:27 624
原创 【Java8新特性】四、强大的Stream api
一、了解Stream二、流(stream)到底是什么?三、Stream操作的三个步骤四、创建Stream的四种方式五、Stream 的中间操作1、筛选和切片2、map 映射3、排序六、Stream 的终止操作1、查找和匹配2、归约3、收集。
2024-04-10 23:27:58 773
原创 【Java8新特性】三、方法引用和构造器引用
注意:需要调用的构造器的参数列表要与函数式接口中抽象方法的参数列表保持一致。方法引用:使用操作符 “::” 将方法名和对象或类的名字分隔开来。格式:className::new。,可以使用方法引用!
2024-04-10 21:00:13 270
原创 【Java8新特性】二、函数式接口
只包含一个抽象方法的接口,称为函数式接口。你可以通过 Lambda 表达式来创建该接口的对象。我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。
2024-04-09 12:20:22 368
原创 【Java8新特性】一、Lambda表达式
Lambda是一个匿名函数,可以理解为一段可以传递的代码,将代码像数据一样进行传递,可以写出更加简介、更加灵活的代码。Lambda表达式的参数列表的的数据类型可以省略不写,因为JVM编译期可以通过上下文推断出数据。java8中引入了一个新的操作符 “->”,该操作符称为箭头操作符或者Lambda操作符。有两个以上的参数,有返回值,并且Lambda 体中有多条语句。System.out.println(“函数式接口”);若左侧只有一个参数,那么左边的 ()可以不写。有一个参数,并且无返回值。
2024-04-09 12:01:32 371
原创 【java基础-高级篇十五】Java反射机制
反射允许程序在执行期间借助于反射api获取任何类的内部信息,并能直接操作任意对象的内部属性及方法当字节码文件加载到jvm中成为一个运行时类,这个运行时类就是 Class的一个实例。
2024-04-08 17:47:50 545
原创 【java基础-高级篇十】、注解
加在包,类, 构造器, 方法, 成员变量, 参数, 局部变量声明上面的特殊标记就称为注解未来的开发模式都是基于注解的。框架 = 注解 + 反射 + 设计模式。/*** 自定义注解*/// 声明注解属性自定义注解使用 @interface 定义注解的成员变量后面需要携带 ()注解的成员变量的类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组。
2024-04-08 16:44:57 858
原创 【算法-数组】有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。不停地比较首尾元素平方的大小,并将较大的放到一个新的结果数组中。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]排序后,数组变为 [0,1,9,16,100]空间复杂度 o(n) 时间复杂度o(n)输出:[0,1,9,16,100]
2024-04-07 23:18:22 231
原创 【图灵】MyBatis插件开发
指定拦截上述四大对象的哪个方法@Component@Overridereturn res;// 或者source的类型Class
2024-04-07 12:58:17 428
原创 @Order和@DependsOn的区别
在Spring中创建A对象的时候加上DependsOn(“b”) 注解,可以看到Bean创建的顺序发生了改变。没有加 @order的时候,可以看到 bean的注入顺序就等于 bean的创建顺序。可以看到Bean的创建顺序没有改变,但是iList中Bean的注入顺序改变了。类 A B 都实现了接口 I ,且 A B都由Spring容器创建并且管理。在 controller中对 List。list进行依赖注入。添加 @Order注解。
2024-04-04 15:55:27 328
原创 InitializingBean是什么以及如何使用?
当Spring容器实例化Bean并完成依赖注入后,在初始化阶段,容器会调用该方法来执行Bean的初始化逻辑。InitializingBean是Spring框架提供的一个接口,用于。执行特定的初始化逻辑。
2024-04-01 22:15:27 183
原创 七、API的⽅式解决Mybaits事务
我们现在确实使⽤了seata的XA解决了分布式事务问题 但是这种⽅式解决是硬编码的⽅式解决的。我们项⽬中如果分布式事务⽐较多 难道每个类中 都要写这些代码?将数据源改为 DataSourceProxyXA。
2024-03-31 17:08:29 176
原创 六、Seata分布式事务框架
seata是由阿⾥巴巴开发的⼀款开源的分布式事务解决⽅案。seata致⼒于在微服务架构中提供⾼性能和简单易⽤的分布式事务服务,seata为开发者提供了 AT、TCC、Saga和XA四种服务模式。
2024-03-31 16:19:33 241
原创 三、强一致性介绍
相关特点强⼀致性解决⽅案要求在任何时间点,任何时刻查询,参与全局事务的各个节点的数据都必须是⼀致的强⼀致性解决⽅案在实际⽣产环境中 银⾏系统⽤的⽐较多,因为银⾏对⾦额数据的⼀致性要求⽐较⾼⽽在其他对⼀致性要求不是特别⾼的系统中 很少会被⽤到解决思想DTP模型2PC⼆阶段提交模型。
2024-03-31 11:51:05 724
原创 【算法】动态规划
动态规划,英⽂:Dynamic Programming,简称DP,如果某⼀问题有很多重叠⼦问题,使⽤动态规划是最有效的。动态规划中每⼀个状态⼀定是由上⼀个状态推导出来的。
2024-03-29 00:03:09 369
原创 五、Elasticsearch 集成
Spring Data 是一个用于简化数据库开发的开源框架。其主要目标是使得对数据的访问变得方便快捷,Spring Data 可以极大的简化操作数据库的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等一些常用的功能。Spring Data Elasticsearch 基于 spring data API 简化 Elasticsearch 操作,将原始操作Elasticsearch 的客户端 API 进行封装。
2024-03-27 18:00:45 1028
原创 BeanFactoryPostProcessor是什么以及如何使用?
读取并修改 bean 的定义(例如,可以修改 bean 的属性值)。这意味着 BeanFactoryPostProcessor。
2024-03-26 11:25:47 356
原创 BeanPostProcessors是什么以及如何使用?
实现 BeanPostProcessor 接口:创建一个类实现 BeanPostProcessor 接口,并实现接口中的两个方法:postProcessBeforeInitialization 和 postProcessAfterInitialization。注册 BeanPostProcessor:将你的 BeanPostProcessor 实现注册为 Spring 容器中的一个 bean,这样 Spring 就能够识别并应用它。是指属性依赖注入过后!
2024-03-26 10:48:31 783
原创 四、Elasticsearch 进阶
在一个网络 / 云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于任何原因消失了,这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。幸运的是,在其它节点上存在着这两个主分片的完整副本, 所以新的主节点立即将这些分片在 Node 2 和 Node 3 上对应的副本分片提升为主分片, 此时集群的状态将会为yellow。至于一个分片怎样分布,它的文档怎样聚合和搜索请求,是完全由 Elasticsearch 管理的,对于作为用户的你来说,这些都是透明的,无需过分关心。
2024-03-20 16:27:32 793
原创 二、Elasticsearc入门
有了索引库,等于有了数据库中的 database。接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。在 Postman 中,向 ES 服务器发 DELETE 请求 :http://127.0.0.1:9200/shopping/_doc/1。具体来说,当你有多个查询条件,并希望匹配任何一个条件的文档时,可以将这些条件放在 should 数组中。
2024-03-20 14:35:38 541
原创 Java 的几种文件拷贝方式
Files.copy方法在Java中是用来复制文件的一种高级操作,它是基于Java NIO(New Input/Output)的文件API实现的。需要注意的是,在某些操作系统和文件系统中,transferTo 方法可能会限制传输的最大字节数,因此在实际使用中可能需要进行分块传输。使用FileInputStream和FileOutputStream是实现文件拷贝的一种直观且简单的方法,尽管它不如NIO提供的Files.copy方法高效,但在某些情况下仍然非常有用。
2024-03-19 15:26:18 706
原创 限流 - 滑动窗口算法
一、工作原理二、优缺点三、应用场景四、滑动窗口算法实现Java demo滑动窗口算法是一种动态的限流策略,它相比固定窗口算法提供了更加平滑和精确的流量控制。滑动窗口通过将时间窗口划分为更小的单位,能够更灵活地响应流量的变化,减少因固定窗口切换时可能出现的流量峰值。
2024-03-18 14:20:30 485
原创 什么是伪共享,如何避免?
目录1、cpu的三级缓存2、什么是伪共享?3、如果解决伪共享?1、cpu的三级缓存2、什么是伪共享?3、如果解决伪共享?
2024-03-13 20:11:43 337
原创 spring-boot-01-helloworld-1.0-SNAPSHOT.jar中没有主清单属性【解决方案】
https://www.cnblogs.com/cattlecyc/p/16704803.html
2024-03-12 21:14:16 378
原创 一、Gradle入门
1、Gradle简介2、常见的项目构建工具3、Gradle 安装4、Gradle目录结构5、Gradle 创建第一个项目5.1 Gradle中的常用指令5.2 修改maven下载源5.3 ==Wrapper 包装器==Gradle 是一款 Google 推出的基于 JVM、通用灵活的项目构建工具支持 Maven,JCenter 多种第三方仓库支持传递性依赖管理、废弃了繁杂的 xml 文件,转而使用简洁的、支持多种语言(例如:java、groovy 等)的 build 脚本文件。
2024-01-28 16:18:07 813
原创 什么是Java多线程的happen before原则?
线程 A 的所有操作 Happens-Before 线程 A 终止的操作。这意味着如果一个线程释放锁,那么随后获取这个锁的线程将能够看到之前释放锁的线程所做的所有修改。如果操作 A Happens-Before 操作 B,且操作 B Happens-Before 操作 C,则操作 A Happens-Before 操作 C。在一个线程中,所有的操作都是按照程序代码的顺序执行的。线程 A 启动线程 B 后,线程 B 的所有操作 Happens-Before 线程 A 启动线程 B 的操作。
2024-01-24 21:54:02 420
原创 咕泡教育面试
Spring中,有两个id相同的bean,会报错吗,如果会报错,在哪个阶段报错。21、什么是Dubbo,它有哪些核心功能?24、Dubbo和SpringCloud的区别?23、Dubbo的工作原理是什么?CurrentHashMap底层具体实现知道吗,实现原理是什么?29、Redis和zookeeper实现分布式锁,哪一种更好?19、SpringBoot的自动装备机制 (没看)26、能回答一下SpringBean生命中周期的执行流程吗?37、关于索引的底层实现,为什么选择B+树,而不是红黑树。
2024-01-24 09:26:36 505
原创 Spring 中有哪些方式可以把 Bean 注入到 IOC 容器?
在Spring中,使用@Import注解可以将其他配置类(Configuration类)中定义的Bean引入到当前的配置类中。使用@Configuration 注解声明配置类,并使用@Bean 注解实现 Bean 的定义,这种方式其实是 xml 配置方式的一种演变,是 Spring 迈入到无配置化时代的里程碑。使用 xml 的方式来声明 Bean 的定义,Spring 容器在启动的时候会加载并解析这个 xml,把 bean 装载到 IOC 容器中。使用@Import 注解,导入配置类或者普通的 Bean。
2024-01-21 15:19:42 986
原创 使用 ImportBeanDefinitionRegistrar 向Spring容器中注入Bean
在这个示例中,MyBeanRegistrar实现了ImportBeanDefinitionRegistrar接口,并在registerBeanDefinitions方法中注册了MyInjectedBea的Bean定义。通过在registerBeanDefinitions方法中实现逻辑,你可以根据特定条件来注册Bean。ImportBeanDefinitionRegistrar允许在运行时动态注册Bean定义,这使得你可以根据条件或配置动态地决定要注册的Bean,提供了更灵活的配置选项。
2024-01-21 10:33:43 519
原创 MyBatis中的一些疑惑问题查询
总的来说,MyBatis并没有限制在一个应用中只能有一个SqlSession,而是允许根据需要创建多个SqlSession实例。具体的设计取决于应用的需求和架构。MyBatis的SqlSession并不是线程安全的,因此在多线程环境下,每个线程通常会创建自己的SqlSession实例。在一个典型的MyBatis应用中,
2024-01-21 09:11:49 384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人