修炼
文章平均质量分 90
日常修炼
~Yogi
Embrace the journey of becoming the person who naturally attracts your ideal.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
今日学习:音视频领域入门文章参考(待完善)
雷神2022-5-22原创 2025-07-02 21:12:18 · 237 阅读 · 0 评论 -
今日学习:负载均衡|分布式ID
我们应当早已从项目各个部分做好了充分预案,即使提升100倍也不会冲破系统弹性计算能力,保证系统平稳安全运行。原创 2025-06-19 14:44:43 · 666 阅读 · 0 评论 -
今日学习:布隆过滤器重建扩容策略|初始化方案|-XX参数|ali分布订阅组件Canal
如果使用的是Kafka 生态系统,并且需要多数据库支持的 CDC 方案,推荐使用Debezium。如果团队具备商业预算并且需要高稳定性、异构数据库实时同步,可以考虑GoldenGate。如果你的系统主要基于MySQL,希望实现轻量级、低成本的 Binlog 解析与分发机制,并且在国内部署环境更熟悉 Canal,那么Canal 是一个非常合适的选择。如果你只需要做Kafka 消息层面的复制或桥接,可以使用。如需进一步了解某个产品的部署方式、性能调优或典型架构设计,我可以继续为你详细说明。原创 2025-06-13 08:57:26 · 949 阅读 · 0 评论 -
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
并发修改异常(ConcurrentModificationException)是在 Java 中当一个对象被检测到在迭代过程中被另一个线程不恰当地修改时抛出的运行时异常。这种情况通常发生在使用集合框架(如 ArrayList、HashMap 等)时,如果在一个线程正在遍历集合的同时,另一个线程尝试修改该集合(例如添加、删除元素),就会抛出这个异常。表达式是否自动拆箱比较类型是否受缓存影响✅ 是int == int❌ 否(同值)❌ 否引用比较✅ 是(依赖缓存)原创 2025-06-09 09:15:05 · 1696 阅读 · 0 评论 -
今日学习:工程问题(场景题)
是远程过程调用,允许程序调用另一个地址空间(通常是远程服务器)上的函数,如同本地调用。核心组件客户端桩(Client Stub):将调用参数序列化并发送到服务端。服务端桩(Server Stub):反序列化参数并调用本地方法。通信协议:如 HTTP、TCP、gRPC(基于 HTTP/2)。注册中心:如 ZooKeeper、Nacos,用于服务发现。优势透明性:开发者无需关注网络细节。高性能:相比 HTTP,RPC 通常使用二进制协议(如 Protobuf)更高效。可扩展性。原创 2025-06-05 15:17:25 · 991 阅读 · 0 评论 -
今日学习:ES8语法 | Spring整合ES | ES场景八股
ElasticSearch(ES8)是一款功能强大的分布式搜索与分析引擎。本文介绍了ES的架构、适用场景和核心功能。ES广泛应用于日志系统(ELK套件)、数据分析、站内搜索等场景,也可作为辅助数据库支持海量数据查询。与MySQL相比,ES更适合全文搜索而非事务处理。文章还详细讲解了索引、类型、文档、字段等核心概念,并演示了分词器(如IK分词器)的使用方法。最后提供了索引操作的基本示例,帮助开发者快速上手ES8的使用。原创 2025-06-05 10:46:08 · 1414 阅读 · 0 评论 -
场景以及八股复习篇
虚拟表,基于SQL查询结果。原创 2025-05-14 20:40:58 · 801 阅读 · 0 评论 -
尚硅谷阳哥JVM
JavaVirtualMachine,Java虚拟机**位置:**JVM是运行在操作 系统之上的,它与硬件没有直接的交互。为什么要在程序和操作系统中间添加一个JVM?Java 是一门抽象程度特别高的语言,提供了自动内存管理等一系列的特性。这些特性直接在操作系统上实现是不太可能的,所以就需要 JVM 进行一番转换。有了 JVM 这个抽象层之后,Java 就可以实现跨平台了。JVM 只需要保证能够正确执行 .class 文件,就可以运行在诸如 Linux、Windows、MacOS 等平台上了。原创 2025-05-14 20:38:14 · 1330 阅读 · 0 评论 -
每日学习Java之一万个为什么
写操作不一致读写不一致。原创 2025-05-08 17:20:44 · 972 阅读 · 0 评论 -
企业面试题综合(2)
【代码】企业面试题综合(2)原创 2025-05-08 10:44:35 · 789 阅读 · 0 评论 -
企业面试题综合(1)
跨域(Cross-Origin)是指浏览器出于安全考虑,阻止网页从一个不同源(协议、域名、端口)请求资源。实现跨域的方法在服务器响应头中添加。支持预检请求(Preflight Request)。示例:Access-Control-Allow-Origin: *通过<script>标签加载跨域资源,但仅支持 GET 请求。代理服务器前端请求同源的代理服务器,由代理服务器转发请求到目标服务器。@Autowired。原创 2025-05-08 10:24:00 · 1291 阅读 · 0 评论 -
每日学习Java之一万个为什么?
异步编排(Asynchronous Composition)是指通过组合多个异步任务,实现任务间的依赖关系、并行执行或结果聚合的编程方式。核心目标是提高程序响应速度和系统吞吐量。2. CyclicBarrier功能:让一组线程互相等待,直到所有线程都到达屏障点后再同时继续执行。特点:计数器可重置,支持多次使用。适用于分阶段协作(如多线程计算后聚合结果)。示例:3. Semaphore功能:控制同时访问某个资源的线程数量。特点:通过许可证机制限制资源访问。适用于资源池原创 2025-05-07 19:14:03 · 983 阅读 · 0 评论 -
每日学习Java之一万个为什么?
*** @author : 戚欣扬*///定义一个标准CPU密集型设计线程池1L,try {i < 5;j++) {});// 备用队列(可选,用于暂存被拒绝的任务)@Override// 1. 记录日志// 2. 尝试将任务存入备用队列= null &&!try {// 3. 发送告警(可选,集成阿里云SLS或RocketMQ)// 4. 降级策略:丢弃低优先级任务(示例)return;原创 2025-04-26 19:00:23 · 817 阅读 · 0 评论 -
每日学习Java之一万个为什么(JUC)
Java中的Synchornized用于实现线程同步,确保同一时间只有一个线程访问被其修饰的代码块或方法,避免线程安全问题(如竞态条件、脏读等)。实现机制:基于Java内存模型(JMM)的监视器锁(Monitor),通过对象头中的Mark Word记录锁状态,支持偏向锁、轻量级锁、重量级锁的升级机制。适用场景:简单同步需求,代码简洁,但性能可能受限于锁升级后的重量级锁。原创 2025-04-23 20:07:47 · 1123 阅读 · 0 评论 -
RabbitMQ常见面试题回答重点
异步通信原创 2025-04-21 18:54:52 · 844 阅读 · 0 评论 -
每日学习Java之一万个为什么
问题:为什么用GatewayFilter?怎么实现更灵活。区别于globalfilter,需要实现一个抽象网关过滤器工厂。过滤器工厂可以读取配置并帮助你创建过滤器对象。无参过滤器具体实现是定义匿名内部类的方法。自定义gatewayfilter 方法名必须是前缀+GatewayFilterFactory,前缀未来就是yml中的 filter: -前缀Sentinel:用于流量控制、熔断降级,保障单服务稳定性。Seata XA/AT模式:解决分布式事务问题,确保跨服务数据一致性。组合方案。原创 2025-04-21 17:10:35 · 1047 阅读 · 0 评论 -
每日学习Java之一万个为什么
无论使用哪种接口提供的负载均衡方法,你都可以实现自己的负载均衡逻辑。通常需要创建一个新的类继承自相应地抽象类,覆盖其方法定义具体的负载均衡行为。之后在应用中注册该自定义的策略即可。ribbon:对于服务发现模块,Nacos采用了一种名为Distro的最终一致性协议。该协议允许在集群中的每个节点上都维护一份全量的服务注册信息副本。对于配置管理模块,Nacos采用了Raft共识算法来保证强一致性。Raft算法通过选举领导节点(Leader)来协调所有写操作。原创 2025-04-15 16:40:20 · 856 阅读 · 0 评论 -
每日学习Java之一万个为什么
yml# 自定义属性拦截器@Component//在请求controller接口前进行拦截,校验token令牌@Override//获取请求头中令牌// 未登录//令牌合法直接返回true,否则自动抛出异常。//如何将数据往线程上绑定。这里使用TheadLocal工具类@Override配置类@Autowired//路径配置应具备可维护性,所以需要配置在yml}*/@Override。原创 2025-04-14 20:00:05 · 1159 阅读 · 0 评论 -
每日学习Java之一万个为什么
两者均支持,但 Sa-Token 通过插件化设计更易快速集成,而 Spring Security 需借助 Zuul/Gateway 等组件。场景:当我们一个系统有不同的权限体系。通过构造器注入,可以编写出更健壮、可维护且符合设计原则的代码,这也是Spring官方推荐的核心原因。,Sa-Token 的实现更简单;Spring提供的编程式事务类,支持自定义事务范围,以及更灵活更细粒度的事务操作。,并通过事务操作、异常处理和全局异常处理器的实现。以下是您要求的完整示例,包含使用。原创 2025-04-11 10:25:12 · 867 阅读 · 0 评论 -
每日学习Java之一万个为什么
@JsonIgnore注解在处理 JSON 数据时非常有用,特别是在需要排除敏感信息、避免循环引用、简化输出或管理内部状态时。通过合理使用该注解,可以有效控制 JSON 序列化和反序列化的过程,确保数据的安全性和完整性。当然可以!以下是一个 Markdown 表格,详细说明了transient关键字和注解的区别和适用场景。transienttransient:适用于 Java 默认的序列化机制,用于排除不需要持久化的字段。原创 2025-03-28 21:17:48 · 1337 阅读 · 0 评论 -
每日学习Java之一万个为什么
存储某个数的最终哈希值,但是哈希值或者说哈希码应该是一个序列,这个序列需要被映射到一个链表或者数组下标,直接映射可能会使得空间利用效率很低。JDK HashMap中是通过 hash&(length-1)来映射到目标下标,这个下标就被称为哈希桶,保证最终哈希桶在 容量之内。扰动函数的定义(1) 化学中的“扰动力函数”(Forging Function)定义:扰动力函数是描述化学反应平衡受扰动时的数学表达式。核心思想化学反应体系在宏观约束条件(如温度、压力、浓度等)固定时,存在稳定的化学平衡。原创 2025-03-24 21:21:41 · 1161 阅读 · 0 评论 -
每日学习Java之一万个为什么(待补充)
1.导入依赖,编写对应yml配置2.骨架搭建,需要的配置类,异常处理,拦截器,工具类导入。3.接口导入,搭建实现类4.根据数据库表 / 接口 编写对应的sql语句 对接mapper接口,5.确认数据库连接,数据池参数无误,单元测试调通数据库6.编写 Controller 以及 Hanlder方法,Service实现类。7.API测试。原创 2025-03-18 19:04:23 · 360 阅读 · 0 评论 -
每日学习Java之一万个为什么
可以手动指定。不过@SpringBootApplication 中的@Component 是默认值,仅扫描所在包及其子包。不过其实按照约定放置Main方法位置就可以。原创 2025-03-17 19:34:53 · 1255 阅读 · 0 评论 -
每日学习Java之一万个为什么
如果有下一步查询计划,resultType需要改为resultMap,(只要这张表的查询大于1就用Map)并在Map中配置下一步计划在本计划中的实体类,查询列名,下一步计划方法路径。当然,在分步查询sql设计前后我们需要设计分步查询实体类。原创 2025-03-14 21:00:20 · 861 阅读 · 0 评论 -
每日学习Java之一万个为什么
人生的容错远比你想象的要大的多,但是意志消沉会带走你不多的人生。不忘盲目考研失去的500天。原创 2025-03-13 14:57:35 · 1916 阅读 · 0 评论 -
每日学习之一万个为什么
{} 与 ${} 区别:前者占位符赋值,后者字符串拼接会在动态field和关键字用到但要防止SQL注入。DML设置 selectkey 标签,标签中设置先执行。传参是实体类和map 实体类写属性名 map写key。查询操作是在某个表的角度去思考,设计查询结果集。SQL中单个参数,占位符中建议写 形参名。DML标签中设置 主键回显属性。DML 返回 int。原创 2025-03-12 20:21:45 · 1046 阅读 · 0 评论 -
每日学Java之一万个为什么
在MyBatis中执行SQL是通过JDK动态代理生成的代理对象去调用sqlSession.crud 执行SQL,statement替换成了namespace和id的拼接字符串。被注释的元素必须是一个数字,其值必须大于等于指定的最小值。被注释的元素必须是一个数字,其值必须小于等于指定的最大值。被注释的元素必须是一个数字,其值必须大于等于指定的最小值。被注释的元素必须是一个数字,其值必须小于等于指定的最大值。被注释的元素必须是一个数字,其值必须在可接受的范围内。被注释的元素的大小必须在指定的范围内。原创 2025-03-11 21:02:37 · 827 阅读 · 0 评论 -
每日学Java之一万个为什么
因为interceptor被ArrayList数组装配,调用的时候preHandler是正序遍历拦截器数组,反之倒序。通知注解 @ControllerAdvice @RestControllerAdvice。跨域问题是浏览器的一种安全保护机制,类似于河南省串货到北京,不允许。浏览器通过字符串比对:协议,主机地址,端口号 判断是否跨域。配置bean :区别ref标签 和 bean标签。异常注解 @ExceptionHandler。Exception.class 兜底。原创 2025-03-10 19:37:07 · 546 阅读 · 0 评论 -
每日学习Java之一万个为什么
即使攻击者能够获取到Web应用的部分信息,也无法直接访问WEB-INF目录中的内容。在控制器方法执行完毕后,Spring MVC再次使用MappingJackson2HttpMessageConverter将Java对象转换为JSON字符串,并将其写入响应体中,最终发送给客户端。控制访问权限:通过Servlet来转发请求到位于WEB-INF下的JSP文件,可以更好地控制对这些资源的访问权限。将动态生成的内容放在WEB-INF目录下可以避免这种缓存带来的潜在问题,因为这些内容通常是动态生成的,不应该被缓存。原创 2025-03-10 09:21:36 · 811 阅读 · 0 评论 -
每日学Java之一万个为什么?
Bean->返回值->ioc容器中细节1:1.改方法名细节2:如何设置方法1、接口法解了.xml init-methodldestroy-method 4.@Bean(initMethoddestroyMethod =“方法”)细节3:如何设置单例还是多网*细节4:如何设置菲引用类型的值(外部的配置参数)长方案1:据置类中声明变量+@Value注解方案2:在Bean的形参列表中引入(Value(“${jdbc.url}”)Stringurl)原创 2025-03-05 15:59:48 · 767 阅读 · 0 评论 -
每日学习Java之一万个为什么?(Maven篇+RPC起步+CICD起步)(待完善)
(Boot)类加载器、扩展类加载器和系统类加载器。丰富的插件支持:Maven 拥有一个庞大的插件生态系统,提供了各种各样的功能扩展,如代码生成、文档生成、静态分析等。Proxy.newProxyInstance方法会生成一个新的代理类,这个类实现了传入的所有接口,并且所有的方法调用都会被转发到指定的InvocationHandler实现上。调用处理器: 当找到对应的方法时,JVM不会直接执行该方法的代码,而是转而调用ServiceProxy.invoke(proxy, method, args)方法。原创 2025-03-02 19:22:54 · 1406 阅读 · 0 评论 -
每日学习Java之一万个为什么?[MySQL面试篇]
面试想要过关斩将,你就必须扪心自问,问得越多问的越细,才能披荆斩棘。盔甲若是漏洞百出,不被戳死才怪。下列问题为作者提出,回答搜集而来。由于作者并没有系统化从零开始学习MySQL,所以可能某些非常基础的问题并不了解。欢迎读者留言比较重要的基础,wink👍。原创 2025-02-27 16:31:21 · 1796 阅读 · 0 评论 -
每日学习Java之一万个为什么?
HTML5引入了新的输入类型和属性,如required, pattern, min, max等,以及使用JavaScript进行实时验证,提高表单数据的准确性。PWA可以让Web应用具有原生应用程序的功能,比如离线工作、推送通知等,这也可以应用于表单提交,例如在没有网络连接时缓存用户的输入并在恢复连接后自动提交。这些规范和查询语言使得前后端之间的通信更加高效,特别是在复杂的数据交互场景中,它们提供了更精细的数据查询能力。所以最小子问题指的是 3层 ,其次是 2层(传入3层返回值),最后是1层(2层返回值)原创 2025-02-27 11:30:34 · 585 阅读 · 0 评论 -
每日学习Java之一万个为什么
中的使用是为了提高代码的通用性和灵活性,使得你可以编写能够处理多种类型的代码,而不需要为每种类型编写特定的逻辑。>,你可以表示任何类型的 Class 对象,而不需要指定具体的类型。虽然JdbcTemplate提供了很多便捷的功能,但在某些特定场景下,你可能需要更多的灵活性和定制化能力,这时直接使用JDBC会更加合适。方法参数:当你编写一个方法,且该方法需要接受任何类型的 Class 对象时,你可以使用 Class<?泛型类或方法:在泛型类或方法中,当你不需要指定具体的类型参数时,可以使用通配符。原创 2025-02-19 21:13:32 · 829 阅读 · 0 评论 -
每日学习Java之一万个为什么
复杂的业务逻辑示例:电商平台多模块集成:需要处理用户管理、商品管理、订单管理、支付系统、物流跟踪等多个模块。交易流程:从商品浏览、加入购物车、结算、支付到订单确认、发货、退货等,每个步骤都有严格的业务规则和状态转换。促销活动:支持多种促销方式(如满减、折扣、优惠券),并且这些促销活动可能有复杂的叠加规则。多层次的业务逻辑:不同模块之间的交互频繁且复杂。事务一致性:确保在分布式环境下数据的一致性和完整性。高并发处理:需要应对大量用户的并发访问,尤其是在促销活动期间。大规模数据处理与分析。原创 2025-02-24 19:14:50 · 1174 阅读 · 0 评论 -
每日学习Java之一万个为什么
/定义成员变量 数据源//使用静态代码块 读取配置文件信息static {try {//创建Properties 对象//基于反射技术 获取类加载器//使用Properties对象的 load方法 从字节流中读取配置信息//通过工厂类获取连接池对象//获取连接的方法try {= null){try {= null){try {DruidUtils使用:1.实例化QueryRunner()//手动方式 创建QueryRunner对象。原创 2025-02-25 14:50:21 · 1080 阅读 · 0 评论
分享