您的当前位置:TAGS -> Java
  • 详解Java构建树结构的公共方法

    后端开发2025年08月16日

    目录 一、前提 二、代码 三、使用 1、实现TreeNode接口 2、使用 3、样例 一、前提 pId需要传入用来确认第一级的父节点,而且pId可以为null。 树实体类必须实现:TreeNode接口 MyTreeVo必须有这三个属性:id、pId、children 可以根据不同需求,配置TreeNode和MyTreeVo中固定的属性 二、代码 定义Tre...

  • Java实现合并多个升序链表

    后端开发2025年08月16日

    目录 前言 需求描述 思路解析 代码实现 时间复杂度 总结 前言 本文主要介绍如何将多个小的升序链表合并一个大的升序链表。 需求描述 给出K个升序链接,要求把这K个升序链表合并成一个,并且这个链表也是升序的。 例如:A = [1,5,6], B = [2,3,8], C = [4,4,9] 将这3个链表合并成一个链表D,合并后D = [1,2,3,4,4,...

  • Java与Mysql锁相关知识总结

    后端开发2025年08月15日

    锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。 JVM中的锁 jvm中,有2个常用的锁 synchronized synchronized是j...

  • Java递归和迭代区别详细介绍

    后端开发2025年08月15日

    目录 1.递归和迭代的区别 2.代码 1.递归和迭代的区别 当实体调用自身时,程序称为递归。 当存在循环(或重复)时,程序称为迭代调用。 示例:求一个数的阶乘的程序 时间复杂度比较 查找递归的时间复杂度比迭代更难。 递归:递归的时间复杂度可以通过根据先前的调用找到第 n 次递归调用的值来找到。因此,根据基本情况找到目标情况,并根据基本情况求解,可以让我们了...

  • Java SpringBoot 中,动态执行 bean 对象中的方法

    后端开发2025年08月15日

    根据不同的条件,调用不同的 bean 对象,执行对象中的方法 SpringUtils 工具类 package com.vipsoft.web.utils; import cn.hutool.core.util.ArrayUtil; import org.springframework.aop.framework.AopContext; import org....

  • 深入详解Java中synchronized锁升级的套路

    后端开发2025年08月14日

    目录 锁原理 偏向锁 轻量级锁 重量级锁 锁升级 无锁 偏向锁 轻量级锁 重量级锁 锁粗化&锁消除 锁粗化/锁膨胀 锁消除 synchronized锁是啥?锁其实就是一个对象,随便哪一个都可以,Java中所有的对象都是锁,换句话说,Java中所有对象都可以成为锁。这次我们主要聊的是synchronized锁升级的套路 synchronize...

  • Java项目防止SQL注入的几种方法总结

    后端开发2025年08月14日

    目录 一、什么是SQL注入? 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 总结 一、什么是SQL注入? SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用...

  • Java实现克鲁斯卡尔算法的示例代码

    后端开发2025年08月14日

    目录 克鲁斯卡尔算法 执行流程 代码实现 克鲁斯卡尔算法 克鲁斯卡尔算法是一种用于求解最小生成树问题的贪心算法。最小生成树是一个连通无向图中生成树中边权值和最小的生成树。克鲁斯卡尔算法按边权值从小到大的顺序依次选择边,当所选的边不会形成环时,将其加入到生成树中。具体实现过程如下: 将所有边按照边权值从小到大排序。 依次选择边,如果选择的边的两个端点不在同一...

  • Java的访问修饰符

    后端开发2025年08月14日

    为了实现面向对象程序设计(OOP)的封装这个特性,需要程序设计语言提供一定的语法机制来支持。这个语法机制就是访问权限控制(访问修饰符:public、protected、private、default)。 在 Java 中,封装就意味着所有的实例域都带有 private 访问修饰符(私有的实例域),并提供带有 public 访问修饰符的域访问器方法和域更改器方...

  • Java中ThreadLocal的用法和原理详解

    后端开发2025年08月13日

    目录 用法 实现原理 内存泄漏 用法 隔离各个线程间的数据 避免线程内每个方法都进行传参,线程内的所有方法都可以直接获取到ThreadLocal中管理的对象。 package com.example.test1.service; import org.springframework.scheduling.annotation.Async; import o...