java
文章平均质量分 75
日常工作学习中整理的java笔记分享给大家
挨打且不服66
计算机博士,推荐系统
展开
-
仿写Spring IOC
本来Dao层注入到service层是需要new的,我们在两者中间插入一个工厂类,工厂类里写个方法getDao获取Dao对象(Dao对象即为Dao接口类,它的实现写到DaoImpl里)原创 2024-07-07 14:09:25 · 435 阅读 · 0 评论 -
Spring IOC基于XML和注解管理Bean
IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出 松耦合、更优良的程序。Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。原创 2024-07-07 14:08:52 · 936 阅读 · 0 评论 -
IOC控制反转
控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理 使用 IOC目的:为了耦合度降低IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂。原创 2024-07-07 14:07:04 · 417 阅读 · 0 评论 -
多线程详解
文章目录多线程创建方式p3一些教程狂神说多线程创建方式p3代码:package com.demo1;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程/** * 总结:注意,线程开启不一定立即执行,dCPU调度执行 */public class TestThread1 extends Thread{ @Override public void run(){ //run方法线程体 for (int i =原创 2024-07-07 14:06:50 · 185 阅读 · 0 评论 -
从源码的角度去分析,为什么会产生128陷阱
128陷阱,==、equals原创 2022-08-30 22:53:29 · 89 阅读 · 0 评论 -
redis学习笔记
狂神说hashmap集合是key-value , hash是key-value 即 key-map——key-(key-value)idea创建空项目p23-2’50配置maven的modules配置jdk配置language levelidea新建springboot模块p25-3’20springboot项目配置redis,p25-3’55SpringBoot所有的配置类,都有一个自动配置类自动配置类都会绑定一个properties配置文件数据库事务失败原创 2022-09-12 13:37:08 · 132 阅读 · 0 评论 -
element ui目录式笔记
element ui学习过程中自记笔记原创 2022-08-12 13:29:57 · 262 阅读 · 0 评论 -
java堆栈总结、JVM
JVM,java堆栈原创 2022-09-11 22:46:55 · 246 阅读 · 0 评论 -
抽象类与接口-区别
接口,抽象类原创 2022-09-05 13:23:21 · 63 阅读 · 0 评论 -
工企佳项目笔记
项目介绍原创 2022-11-15 17:59:06 · 392 阅读 · 2 评论 -
java堆栈内存,值传递详解
值传递也能传地址哦首先要记住:java中都是值传递 为什么,详见——https://blog.csdn.net/bjweimengshu/article/details/79799485但是不是说就不传递地址了我们知道,编程语言中需要进行方法间的参数传递,这个传递的策略叫做求值策略。在程序设计中,求值策略有很多种,比较常见的就是值传递和引用传递。还有一种值传递的特例——共享对象传递。值传递和引用传递最大的区别是传递的过程中有没有复制出一个副本来,如果是传递副本,那就是值传递,否则就是引用传递。在J原创 2021-09-03 17:17:03 · 377 阅读 · 0 评论 -
位运算-左移、右移
位运算原创 2022-09-12 11:40:14 · 904 阅读 · 0 评论 -
spring项目实现上传文件
文件上传功能原创 2022-11-22 22:45:06 · 882 阅读 · 0 评论 -
java线程池
java线程池总结原创 2022-11-24 23:54:45 · 278 阅读 · 0 评论 -
==和equals的区别、重写equals要重写hashCode
==、equals、hashCode原创 2022-08-30 23:05:26 · 141 阅读 · 0 评论 -
vue-ueditor-wrap的安装、封装、使用
ueditor原创 2022-11-15 20:18:27 · 3325 阅读 · 0 评论 -
SpringSecurity使用笔记
文章目录简介快速入门1.1 准备工作1.2 引入SpringSecurity2.认证2.1 登陆校验流程2.2 原理初探2.2.1 SpringSecurity完整流程2.2.2 认证流程详解2.3解决问题2.3.1思路分析2.3.2 准备工作2.3.3 实现2.3.3.1 数据库校验用户准备工作核心代码实现2.3.3.2 密码加密存储2.3.3.3 登陆接口2.3.3.4 认证过滤器2.3.3.5 退出登陆3. 授权3.0 权限系统的作用3.1 授权基本流程3.2 授权实现3.2.1 限制访问资源所需权限原创 2023-07-06 21:41:50 · 78 阅读 · 0 评论 -
Maven从基础到高级
maven原创 2022-09-12 13:35:33 · 79 阅读 · 0 评论 -
AOP底层原理、源码分析
AOP源码原创 2022-09-04 23:28:11 · 261 阅读 · 0 评论 -
北京大学药学院项目笔记
项目2原创 2022-11-15 21:13:37 · 93 阅读 · 0 评论 -
Vue基础笔记
v-if 操纵dom树,会让标签消失p11,标签里的内容自然也消失v-show 操纵样式,只是展示与否图片切换:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http原创 2021-10-05 20:07:41 · 116 阅读 · 0 评论 -
北大药学院项目总结
做过的项目原创 2022-09-08 19:26:07 · 212 阅读 · 0 评论 -
git笔记-工作中总结
在工作中遇到的git相关操作原创 2022-02-08 20:29:54 · 120 阅读 · 0 评论 -
pageHelp分页插件
pageHelp是一款很好用的分页插件,使用它我们可以很轻松的实现分页的功能。想象一个场景,当我们做列表展示的时候我们不仅需要将列表中的数据响应给前台,是不是还应该将分页信息也相应给前台呢?而这时候我们在后台怎么拿到分页信息呢?其实pageHelp已经给到了我们分页的数据public ResultJson listAll(User user, Integer pageNo,Integer pageSize) { Page<User> page = PageHelper.startP原创 2021-09-03 17:08:39 · 2293 阅读 · 0 评论 -
用户权限管理体系 (RBAC)
RBAC原创 2022-09-06 18:33:40 · 1975 阅读 · 0 评论 -
通过自定义注解 +AOP 切片实现敏感词的过滤
在 Java 中创建一个新的文件,并为注解定义一个新的接口,例:SensitiveFilter.java。@Target(ElementType.METHOD) // 表示这个注解可以用于方法上@Retention(RetentionPolicy.RUNTIME) // 表示这个注解在程序运行时是可访问的// 这个方法中的 text 参数将被过滤。原创 2023-10-11 18:28:04 · 375 阅读 · 0 评论 -
Map,List,Set 等集合以及底层数据结构
集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身。常见的集合主要有三种——Set(集)、List(列表)和Map(映射)。其中,List和Set都实现了 Collection 接口,并且List和Set也是接口,而Map 为独立接口。常见的实现类如下:List 的实现类有:ArrayList、Vector、LinkedList;Set的实现类有:HashSet、LinkedHashSet、TreeSet;Map。原创 2023-09-07 17:12:45 · 874 阅读 · 0 评论 -
反射代码详解
使用获取到的无参构造函数创建该类的实例。这个方法会调用类的无参构造函数来初始化对象,并返回一个新创建的对象。方法接受一个参数,用于指定构造函数的参数类型,因此传入。对象包含了有关类的元信息,允许您在运行时检查和操作类。的值是一个类的全限定名(包括包名的类名),比如。是所有类的基类,因此可以用它来引用任何类的对象。变量,该变量包含了上一行代码中获取的类的。获取该类的无参构造函数(构造器),,那么上述代码将加载并返回该类的。中包含的类名来获取对应类的。最终,将新创建的对象赋值给。想通过反射机制创建对象。原创 2023-09-05 22:13:34 · 276 阅读 · 0 评论 -
java中方法的执行顺序
构造函数:构造函数有名称,与类名相同,可以有参数列表,用于接受初始化参数。构造函数的参数列表和方法参数一样,可以有零个或多个参数。构造代码块:构造代码块没有名称,它位于类中,使用一对花括号 {} 包裹起来,并且没有参数列表。构造代码块不接受任何参数。构造函数:需要显式调用以创建对象。构造函数的调用通常由 new 关键字触发。构造代码块:在创建对象时自动执行,不需要显式调用。原创 2023-09-05 22:01:25 · 322 阅读 · 0 评论 -
基础——内部类,多态
的类。它的作用域被限制在包含它的方法中,通常用于解决某个方法的特定问题。原创 2023-09-05 21:45:48 · 90 阅读 · 0 评论 -
Spring——Spring读取文件
更对内容请查看官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config。很多时候我们需要将一些常用的配置信息比如阿里云oss配置、发送短信的相关信息配置等等放到配置文件中。下面我们来看一下 Spring 为我们提供了哪些方式帮助我们从配置文件中读取这些配置信息。原创 2023-08-30 16:16:16 · 549 阅读 · 0 评论 -
Spring——RESTful Web服务
本节我们将开发一个简单的 RESTful Web 服务。传统的 MVC 模式开发会直接返回给客户端一个视图,但是 RESTful Web 服务一般会将返回的数据以 JSON 的形式返回,这也就是现在所推崇的前后端分离开发。为了节省时间,本篇内容的代码是在Spring Boot 版 Hello World & Spring Boot 项目结构分析基础上进行开发的。原创 2023-08-29 19:52:41 · 442 阅读 · 0 评论 -
Spring——Spring Boot基础
这一点在我们平时开发中也经常用到,比如我们通常会提一个测试基类,这个基类包含了我们写测试所需要的一些基本的注解和一些依赖。上面是我截取的一段控制台打印出的内容,通过这段内容我们就知道了 Spring Boot 默认使用的 Tomact 内置 web 服务器,项目被运行在我们指定的 8333 端口上,并且项目根上下文路径是 “/”。我们直接像运行普通 Java 程序一样运行它,由于 Spring Boot 本身就嵌入 servlet 容器的缘故,我们的 web 项目就运行成功了, 非常方便。原创 2023-08-29 19:41:52 · 769 阅读 · 0 评论 -
Spring——Spring基础
随着 Spring 轻量级开发框架的流行,Spring 生态圈出现了 Spring MVC 框架, Spring MVC 是当前最优秀的 MVC 框架。的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到HTTP 响应(Response)对象的 body 中,通常用来返回 JSON或者 XML 数据,返回 JSON 数据的情况比较多。的话一般使用在要返回一个视图的情况,这种情况属于比较传统的Spring MVC 的应用,对应于前后端不分离的情况。如果我们的切面比较少,那么两者性能差异不大。原创 2023-08-29 17:35:35 · 298 阅读 · 0 评论 -
数据库——redis内存淘汰,持久化机制
当子进程完成创建新 AOF 文件的工作之后,服务器会将重写缓冲区中的所有内容追加到新 AOF 文件的末尾,使得新旧两个 AOF 文件所保存的数据库状态一致。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。AOF 重写可以产生一个新的 AOF 文件,这个新的 AOF 文件和原有的 AOF 文件所保存的数据库状态一样,但体积更小。原创 2023-08-24 18:15:00 · 829 阅读 · 1 评论 -
数据库——redis过期时间
过期字典的键指向Redis数据库中的某个key(键),过期字典的值是一个long long类型的整数,这个整数保存了key所指向的数据库键的过期时间(毫秒精度的UNIX时间戳)。很多时候,我们的业务场景就是需要某个数据只在某一时间段内存在,比如我们的短信验证码可能只在1分钟内有效,用户登录的 token 可能只在 1 天内有效。如果假设你设置了一批 key 只能存活 1 分钟,那么 1 分钟后,Redis 是怎么对这批 key 进行删除的呢?一般情况下,我们设置保存的缓存数据的时候都会设置一个过期时间。原创 2023-08-24 15:00:00 · 390 阅读 · 0 评论 -
数据库——Redis 没有使用多线程?为什么不使用多线程?
虽然说 Redis 是单线程模型,但是, 实际上,不过,Redis 4.0 增加的多线程主要是针对一些大键值对的删除操作的命令,使用这些命令就会使用主处理之外的其他线程来“异步处理”。大体上来说,原创 2023-08-24 10:36:39 · 820 阅读 · 0 评论 -
数据库——Redis 单线程模型详解
(Netty 的线程模型也基于 Reactor 模式,Reactor 模式不愧是高性能 IO 的基石),这套事件处理模型对应的是 Redis 中的文件事件处理器(file event handler)。当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关 闭(close)等操作时,与操作相对应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件。《Redis 设计与实现》有一段话是如是介绍文件事件的,我觉得写得挺不错。原创 2023-08-24 10:32:47 · 788 阅读 · 0 评论 -
数据库——Redis 常见数据结构以及使用场景分析
string 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串表示,而是自己构建了一种。原创 2023-08-24 10:29:25 · 889 阅读 · 0 评论 -
数据库——缓存数据
一般像 MySQL 这类的数据库的 QPS 大概都在 1w 左右(4 核 8g) ,但是使用 Redis 缓存之后很容易达到 10w+,甚至最高能达到 30w+(就单机 redis 的情况,redis 集群的话会更高)。所以,直接操作缓存能够承受的数据库请求数量是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。但是,如果说,用户访问的数据属于高频数据并且不会经常改变的话,那么我们就可以很放心地将该用户访问的数据存在缓存中。原创 2023-08-24 10:18:02 · 130 阅读 · 0 评论