后端

SpringBoot实现注册和登录功能(保姆级)

一、新建项目 新建项目,项目名称logindemo,组名为my,用的java21去写的,用的包管理为maven 添加依赖,我这边使用的3.4.3版本,添加了4个依赖 二、设计数据库 设计表单,设置一个自增的主键uid,然后再设置一下账号和密码的类型 添加测试账号 三

【MySQL】数据库约束

  个人主页:♡喜欢做梦欢迎  👍点赞  ➕关注  ❤️收藏  💬评论目录 ✨一、数据库的约束🌟二、数据库约束的分类🌍 1.非空约束(NOT NULL)1.定义2.格式3.示例:列的信息可以为空: 指定列的信息不能为空:🌎 2.DEFA

Java线程<第四篇>:Hook线程以及捕获线程执行异常

一、捕获线程执行异常 Java为我们提供了一个 UncaughtExceptionHandler 接口,当线程在运行过程中出现异常时,会回调 UncaughtExceptionHandler 接口,从而得知是哪个线程在运行时出错,以及出现了什么样的错误。 // 设置回调接口 Thread.setDefaultUncaughtExceptionHandler(new Thread.U

1.Java进阶总结 前期 1~4

Day01 1. Object类:所有类的父类 1 Object类中toString方法: sout方法就是调用了toString方法,一般重写toString方法得到内容 2 Object类中equals方法 : 【Objects类方法】Objects.equals(a,b) 优化 判断是否相等空指针的问题【Object类方法】 a.equals(b) 3.public static

前端模块化(AMD,CMD,CommonJs,ES6)

文章序 总是会看到前端模块化的这几个技术,今天一次性整理,如有错误欢迎评论指正! AMD 异步加载,依赖前置,前置依赖建议写在前引用,在所有模块加载完成后立即执行回调函数,用户体验好,不容易造成卡顿 需要引用require.js //math.js define([], function () { function add(a, b) { return a + b; } ret

说说 Redis 缓存穿透场景与相应的解决方法

Redis 缓存主要缓存穿透、缓存击穿与缓存雪崩异常场景,今天我们来讲讲缓存穿透。 1 场景描述 缓存穿透是指客户端请求一个缓存和数据库中都不存在的 key。由于缓存中不存在,所以请求会透过缓存查询数据库;由于数据库中也不存在,所以也没办法更新缓存。因此下一次同样的请求还是会打在数据库上。 好像缓存被穿透了一样,缓存形如虚设。所有的压力都在数据库之上,如果请求量巨大,可能造成数据库崩

SpringBoot--配置MyBatis、Logback、PagerHelper、Druid

上篇SpringBoot--初入SpringBoot中对SpringBoot如何配置有了初步的了解,只需要配置下pom文件,写一个SpringBoot启动类,就可以启动服务进行访问了,再来看下当初的pom文件导入的依赖: &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.spring

【5分钟背八股】mysql索引结构有哪些,各自的优劣是什么?

索引的数据结构和具体存储引擎的实现有关,mysql中使用较多的索引有hash索引,B+树索引,innodb的索引实现为B+树,memory存储引擎为hash索引。 B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的二节点间有指针相关连接,在B+树上的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动,而且基于索引的顺序扫描时,也可以利用双向指针快速左右移

神秘的volatile关键字

前言 volatile关键字是面试中常问的知识点,包括三点:可见性、有序性、非原子性。接下来就说一下这三点。 JMM(Java Memory Model - Java内存模型) 每个 Java 线程都有⾃⼰的⼯作内存。操作数据,⾸先从主内存中读,得到⼀份拷⻉,操作完毕后再写回主内存 JMM可能带来可⻅性、原⼦性和有序性问题 可⻅性:是指某个线程对主内存内容的修改,应该⽴刻通知其它线程 有