2025年Java学习笔记——MybatisPlus
Mybatis-Plus特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作,BaseMapper
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求,以后简单的CRUD操作,不用自己编写了 !
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 ...
2025年Java学习笔记——SSM学习记录汇总
SSM学习记录汇总SpingSpring概述1.1 简介
Spring : 春天 —->给软件行业带来了春天
2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。
2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。
很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。
Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术
官网 : http://spring.io/
官方下载地址 : JFrog
GitHub : Spring · GitHub
1.2 优点
Spring是一个开源免费的框架 , 容器 .
Spring是一个轻量级的框架 , 非侵入式的 .
控制反转 IoC , 面向切面 Aop
对事物的支持 , 对框架的支持
一句话概括:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
1.3 组成
Spring 框架是一个分层架构,由 7 个定义良好的模块 ...
WSL 安装与配置指南:在 Windows 上运行 Linux 环境
WSL 安装与配置指南:在 Windows 上运行 Linux 环境WSL 简介Windows Subsystem for Linux (WSL) 是微软提供的一项功能,允许用户在 Windows 系统中直接运行完整的 Linux 环境,无需传统虚拟机或双系统配置。
WSL 核心功能
无缝集成:在 Windows 中运行 Linux 命令行工具、脚本和应用程序
发行版支持:兼容 Ubuntu、Debian、Kali Linux 等主流发行版
高性能:接近原生 Linux 的运行效率
文件系统互通:通过 /mnt/c/ 等目录直接访问 Windows 文件
WSL 版本对比
特性
WSL 1
WSL 2
架构
系统调用翻译层
轻量级虚拟机运行完整 Linux 内核
性能
启动快,资源占用低
接近原生性能
兼容性
基础 Linux 功能
完整 Linux 内核支持
适用场景
简单命令行工具
Docker 等复杂应用
文件系统性能
Windows 文件访问较慢
优化的文件系统性能
WSL 适用人群
Windows 平台开发者(Web、Python、No ...
Ubuntu系统Docker环境安装完整指南
Ubuntu系统Docker环境安装完整指南
本文提供与CentOS操作对应的Ubuntu系统Docker安装全流程,包含国内镜像加速等优化配置
基础安装准备系统环境检查12uname -r # 查看内核版本(需3.10以上)lsb_release -a # 查看Ubuntu版
系统更新1sudo apt update && sudo apt upgrade -y
安装依赖包123456sudo apt install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
Docker引擎安装添加官方GPG密钥1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
设置稳定版仓库(国内用户推荐)1ec ...
2025年java学习笔记——集合部分
概览集合又叫容器
Collection接口,主要用于存放单一元素:List、Set 、 Queue
Map 接口,主要用于存放键值对
List(对付顺序的好帮手): 存储的元素是有序的、可重复的。
Set(注重独一无二的性质): 存储的元素不可重复的。
Queue(实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。
Map(用 key 来搜索的专家): 使用键值对(key-value)存储,类似于数学上的函数 y=f(x),”x” 代表 key,”y” 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。
ListArrayList
Vector
LinkedList JDK6之前是循环列表,现在是双向链表
SetHashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素。
LinkedHashSet: LinkedHashSet 是 HashSet 的子类,并且其内部是通过 LinkedHashMap 来实现的。
TreeSet(有序,唯一 ...
SpringBoot图片上传的奇妙冒险
SpringBoot图片上传的奇妙冒险S3和OSS的核心区别:
价格:OSS在国内的价格通常比S3低20%-30%(特别是流量费用)
速度:OSS在国内的访问速度明显快于S3(毕竟服务器在国内)
合规性:OSS更符合中国的数据合规要求
集成:OSS与阿里云其他服务(如CDN)的集成更顺畅
与本地上传相比的优势:
不用操心服务器磁盘空间问题
天生具备高可用性和灾备能力
轻松实现CDN加速
无需自己处理图片缩略图等常见需求
下面就来开启我们的”本土化”奇妙冒险吧!
第一步:导入依赖1. 创建Bucket登录阿里云控制台,进入OSS服务,创建一个Bucket。记住这几个关键配置:
地域:选离你用户最近的(如华东1)
存储类型:标准存储就行
读写权限:先设私有,后面用STS临时令牌更安全
2. 获取AccessKey在RAM访问控制中创建用户,记得保存:
AccessKey ID
AccessKey Secret
第二步:SpringBoot装备库1. 添加依赖12345678910111213<!-- OSS官方SDK --><dependency> ...
JWT 是什么?如何用?
JWT 是什么?如何用?一、JWT 是什么?(通俗版)想象你去游乐园玩,买票后会得到一个手环(Token)。这个手环上有你的信息(用户ID、购买时间等),工作人员只需要看一眼手环(验证Token)就知道你是否能玩某个项目,而不用每次都查你的购票记录(查数据库)。
JWT(JSON Web Token) 就是这样一个数字手环,它有三个主要特点:
自包含:令牌本身就包含用户信息(不用总查数据库)
可验证:服务器可以验证令牌是否被篡改
有有效期:像食品保质期一样,过期就失效
二、JWT 的组成结构一个JWT通常长这样:xxxxx.yyyyy.zzzzz
它实际由三部分组成(用点分隔):
Header(头) - 说明令牌类型和签名算法
1234{ "alg": "HS256", // 签名算法 "typ": "JWT" // 令牌类型}
Payload(负载) - 存放实际数据(用户ID等)
12345{ "userId": "12 ...
Java面经刷题_Day1
Java面向对象有哪些特性?
封装、继承、多态
封装:说明一个类的行为和属性与其他类关系。增加代码的可维护性,便于修改,隐藏了类的内部实现机制。
继承:父类和子类的关系。从已有类派生出新的类,增强代码的复用性。
多态性:继承、重写、父类引用指向子类对象。说明的是类与类的关系。
为什么这些特性能帮我们写更好的代码?
封装:使代码能够重复使用,增加代码的复用性
继承:也是增加代码的复用性
多态:增强代码的可移植性、鲁棒性
Show Me The Difference(from Alibaba)1234567891011121314151617181920212223//以下代码有什么不同?//代码1final class Accumulator{ private double result=0.0D; public void addAll(double[] values){ for(double value :values){ result+=value; ...
基于深度学习的图像着色系统项目介绍
基于深度学习的图像着色系统项目介绍库的支持这里我们用到了以下的库
直接用pip命令安装txt文件中的上述库,非常方便
1pip install requirements.txt
torch1.1 torch.nn简介与功能nn是Neural Network的简称。
torch.nn模块是PyTorch提供的,帮助程序员方便(1)创建神经网络和(2)训练神经网络而提供的模块。主要功能包括:
创建神经网络
训练神经网络
2.1 获取神经网络的模型参数torch.nn.Parameter 获取模型参数
项目中的重要方法总结与归纳:将数据转换成Tensor,便于模型使用
torch.nn.Module:
它是所有神经网络模块的基类。
torch.nn.Conv2d
该软件包将用于在由多个输入平面组成的输入信号上应用2D卷积。
BatchNorm2d()
归一化
函数参数讲解:
BatchNorm2d()函数数学原理如下:
1BatchNorm2d(256, eps=1e-05, momentum=0.1, affin ...
人工智能课堂问题 其一
基于机器学习对分类筛选的脑补进行筛选1.@overrider1234@Overridepublic boolean equals(Object obj) { return this.k.equals(((Line)obj).k) && this.b.equals(((Line)obj).b);}
2.比较器Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而后者在一个独立的类中实现比较。像Integer、String等这些基本类型的Java封装类都已经实现了Comparable接口,这些类对象本身就支持自比较,直接调用Collections.sort()就可以对集合中元素的排序,无需自己去实现Comparable接口。
其实原理是一样的,就是用相应的特征什么的筛选出来,目前我知道的可能就是多个数和字符的对比,利用==放入这个函数
用多个动态数组,集合,放置这些被筛选的元素注意:一定是动态,因为如果不是动态,我们哪知道一共有多少需 ...