后端开发2025年08月14日
目录 一、什么是SQL注入? 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 总结 一、什么是SQL注入? SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用...
后端开发2025年08月14日
目录 克鲁斯卡尔算法 执行流程 代码实现 克鲁斯卡尔算法 克鲁斯卡尔算法是一种用于求解最小生成树问题的贪心算法。最小生成树是一个连通无向图中生成树中边权值和最小的生成树。克鲁斯卡尔算法按边权值从小到大的顺序依次选择边,当所选的边不会形成环时,将其加入到生成树中。具体实现过程如下: 将所有边按照边权值从小到大排序。 依次选择边,如果选择的边的两个端点不在同一...
后端开发2025年08月14日
为了实现面向对象程序设计(OOP)的封装这个特性,需要程序设计语言提供一定的语法机制来支持。这个语法机制就是访问权限控制(访问修饰符:public、protected、private、default)。 在 Java 中,封装就意味着所有的实例域都带有 private 访问修饰符(私有的实例域),并提供带有 public 访问修饰符的域访问器方法和域更改器方...
后端开发2025年08月13日
目录 用法 实现原理 内存泄漏 用法 隔离各个线程间的数据 避免线程内每个方法都进行传参,线程内的所有方法都可以直接获取到ThreadLocal中管理的对象。 package com.example.test1.service; import org.springframework.scheduling.annotation.Async; import o...
后端开发2025年08月13日
目录 Java 8 之前版本 JDK 8版本 Java 9版本 Java 8 之前版本 Java 8 之前 ,接口好像就只允许两种类型的数据,一个是常量、另一个就是公开 ( public ) 的虚方法 ( abstract ),而且是虚方法哦,就是没有任何实现的方法,因为这些方法要被类来实现。也就是说,Java 8 之前的版本不存在有着默认实现的方法。 我...
后端开发2025年08月13日
目录 前言 使用方式 GroovyShell GroovyClassLoader ScriptEngineManager 前言 Groovy 是一种基于 JVM 的动态语言,与 Java 语言紧密集成,可以很方便地在 Java 项目中使用。Groovy 有着简洁的语法、灵活的类型系统、强大的元编程能力,适合编写各种类型的脚本和应用程序。使用groovy也可...
后端开发2025年08月13日
目录 0. 成员变量 1. hash() 2. comparableClassFor() 3. tableSizeFor() 4. table、threshold、loadFactor 5. putMapEntries() 6. putVal() 7. resize() 8. getNode() 0. 成员变量 首先我们先看一下 HashMap 有哪些成员...
后端开发2025年08月13日
目录 创建CompletableFuture 处理CompletableFuture的结果 处理CompletableFuture的异常 总结 Java 8中引入了CompletableFuture类,它是一种方便的异步编程工具,可以处理各种异步操作,如网络请求、文件IO和数据库操作等。它是Java的Future接口的扩展,提供了一些有用的方法来创建、操作...
后端开发2025年08月13日
目录 导读 队列 跳转结构结点 实现队列 测试队列 栈 实现栈 测试代码 导读 在数据结构当中所有的数据结构都是由 连续数据结构或者跳转数据结构 单独或者拼接做成。 连续结构和跳转结构是数据结构中常见的两种基本数据结构,而我们本次的主角栈和队列都 既可以使用使用跳转结构实现也可以使用连续结构实现。 本文主要是介绍了如何通过跳转结构实现栈和队列,在实现栈和队...
后端开发2025年08月13日
目录 哈希表(HashMap) 按值传递 按址传递 内存大小比较 有序表(TreeMap) 哈希表(HashMap) hash查询的时间复杂度是O(1) 按值传递 Character,Short,Integer,Long, Float,Double,String,Boolean,在java当中哈希表内部以值的形式传递,而不是一地址的形式传递。 例如: Ha...