自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 缓存击穿、穿透、雪崩和布隆过滤器

这意味着索引值是由插入项的值所确定的,当你需要判断列表中是否存在该值时,只需要对值进行哈希处理并在相应的索引位置进行搜索即可,这时的搜索速度是非常快的。如果都是1,则被检元素很可能在。由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。..

2022-08-10 21:37:01 567 1

原创 redis的数据结构和持久化

简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。list用quicklist来存储,quicklist存储了一个双向链表,每一个节点都是一个ziplist。...

2022-08-10 21:21:18 369

原创 springboot一个简单的前端响应后端查询项目

spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得相当繁琐,所以springboot就是为了解决spring配置繁琐的问题而诞生的,并且近几年来非常流行。springboot项目启动时,程序会默认把IOC容器管理的类全部创建,那么如果一个项目的业务很多,类也很多,那么势必会遇到一个问题,就是会影响项目启动时间,所以说如果想要提升项目启动时间,那么就可以设置项目的全局懒加载属性。...

2022-08-06 11:12:02 665

原创 SrpingMVC中的简单配置、注解及工作流程

springmvc是基于spring的一个框架,实际上就是spring的一个模块,专门做web开发的,是servlet的一个升级web开发底层是servlet,框架是在servlet基础上加入了一些功能,让你做开发方便SpringMVC就是一个Spring,Spring是容器,ioc能够管理对象,使用, @Component, @Repository, @Service, @Controller。...

2022-08-05 21:26:22 131

原创 log4j2的简单使用

无垃圾机制,log4j2 在大部分情况下,都可以使用其设计的一套无垃圾机制【对象重用、内存缓冲】,避免频繁的日志收集导致的 jvm gc。自动重载配置,参考了logback的设计,当然会提供自动刷新参数配置,最实用的就是我们在生产上可以动态的修改日志的级别而不需要重启应用。异常处理,在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机制。在springboot中可以直接在pol.xml文件中直接导入不用进行配置直接使用。log.调用方法在控制台打印日志。.

2022-08-05 21:02:03 1359

原创 MyBatis的简单使用

它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。.........

2022-08-05 19:55:32 105

原创 vue中的网络请求

使用ajax请求的时候,如果发送请求的页面url 同 接口 url的 协议、ip(域名),端口号,只要有一个同,那么浏览器就会阻止服务器的响应, 这是浏览器的一种安全机制,这种请求称为:跨域请求。formData 表单数据, 后端要求接收一个 key1=value1&key2=value2的字符串,前端必须拼接成对应的格式发送。$.ajax默认发送也是formData。form表单标签默认发送的就是这种格式。vue.config.js文件。其他就需要自己拼接转换。发送网络请求的url。...

2022-08-05 19:51:33 1187

原创 spring框架(一)

控制反转(InversionofControl,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(DependencyInjection,简称DI),还有一种方式叫“依赖查找”(DependencyLookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。(1)List注入(2)数组的注入...

2022-07-19 19:12:06 148

原创 cookie与session

HTTP是一个基于请求与响应,无状态的,应用层协议。无状态服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。Cookie网站为了辨别用户身份,存储在用户本地终端上的数据,Cookie是由服务端生成的,发送给客户端(通常是浏览器)的。Cookie总是保存在客户端中,按在客户端中存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。...

2022-07-18 20:46:04 122

原创 doGet和doPost

doGet调用用于获取服务器信息,并将其做为相应放回给客户端。经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用Get调用。

2022-07-18 20:45:29 2383

原创 程序练习题

1、打印一个正三角形用“*”2、打印一个电池的电量分为十格例|*************************************||*************************************||*************************************||+++++++++++++++++++++++++++++++++++++||+++++++++++++++++++++++++++++++++++++||++++++++++++++++++++++++++++++

2022-06-30 20:58:39 2935

原创 for循环练习题

1.操场上100多人排队,三人一组多1人,四人一组多2人,五人一组多3人,共多少人?(118,178)2.甲、乙、丙、丁四人共加工零件370个,如果把甲做的个数加10个,乙做的个数减20个,丙做的个数乘以2,丁做的个数除以2,四人做的零件数正好相等,求甲实际加工了多少个零件?(70)4.两个自然数X,Y相除,商3余10,被除数、除数、商、余数的和是163,求被除数、除数。 (115、35)5.某数学竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76分,男生的平均分为75分,女生的

2022-06-30 20:56:35 1039 1

原创 vue03

计算属性主要是用于对各个状态之间进行运算,数据过滤的一种处理计算属性 VS 方法&视图表达式计算属性是具有数据缓存的,当其依赖的状态没有发生变化时,计算属性是不会调用求值的。方法&视图表达式每次都会进行求值,并更新视图watch 数据监听允许我们对任意一个已经注册过的状态,进行监听,如果状态值发生变化,可以进行回调处理...

2022-06-30 20:54:26 176

原创 vue02

手动安装vue-router默认安装出来的版本是4.x版本,4.x版本是为vue3.x匹配制作的,导致我们vue2.x核心的项目无法使用解决方案:重装低版本的vue-router

2022-06-30 20:52:34 409

原创 vue01

1、html js css 导入​ xxx.vue4、SPA: single page application5、MPA : multiple page application6、模块化 node require Import​ .js css 都会被模块化主流版本 cli2 cli3.x != vue版本安装完成后,就可以使用vue指令来创建和管理一个脚手架项目创建项目先在cmd中进入要创建项目目录,然后再执行以下指令 cli3.x+Cli2 创建方式三、项目架

2022-06-30 20:52:13 193

原创 JDBC的操作方法补充

JDBC 指 Java 数据库连接,是一种标准Java应用编程接口JAVA API,用来连接 Java 编程语言和广泛的数据库获取自增长键值!通过JDBC往数据库的表格中添加一条记录,其中有一个字段是自增的 id bigint primary key auto_increment ,那么在JDBC这边怎么在添加之后直接获取到这个自增的值。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zPsRiuEm-1654433653544)(file:///C:/Users/ADMI

2022-06-05 20:54:35 283

原创 Dao模式和XxxDao模式

DAO数据访问对象data access object的缩写,用于进行数据操作的封装,在Java程序开发中属于标准开发架构中的持久层的设计模式。DAO模式是标准JavaEE设计模式之一,用途在于将底层的数据访问操作和高层的业务逻辑分离开。 典型的DAO模式的组成一个DAO工厂类一个DAO接口实现了DAO接口的多种实现类数据传输对象DTO,有时简称为VO一个接口,通过接口暴漏当前层中允许调用的方法数据传输对象,在DAO中经常使用实体类来代替针对DAO访问接口可以有多种实现,最终希望可以在多种实现之间任意切

2022-06-05 20:40:18 198

原创 数据库编程JDBC和数据库连接池

基本编程步骤:引入工具类每次进行数据库操作时真正有用的代码很少,但是数据库访问的大量繁琐操作必须要编写,所以考虑引 入工具类封装模板化的代码。引入工具类以减少费管代码量,提交开发效率,精简代码测试程序跨数据库平台当成程序中将数据库平台耦合的参数直接写死了,所以当前程序是和数据库平台紧耦合的。引入properties文件存储和数据库相关的配置参数,由于应用作为产品发布时,properties文件是源码发布 的,所以允许使用记事本进行修改,没有必要修改源代码首先在src目录下创建一个数据库相关配置文件j

2022-06-01 20:24:46 360

原创 大对象Lob字段的处理和数据库设计

Lob实际上有2种类型,分别是用于存储大文本的字段Clob和存储二进制大量数据的字段Blob。不同的数据库处理方式略有区别,大字段一般都是采用流的方式进行处理由于大字段类型存储的数据较多,一般针对lob字段会采用分表存储的方式实现需求:存储学生信息,要求存储学生的照片如果具体存储?表的创建使用JDBC向表中插入数据如何判断是否支持不用加载驱动使用JDBC从表中读取大对象类型字段BlobBlob是二进制大字段类型,一般用于存储图形、声音、视频等二进制序列数据。MySQL针对二进制大对象提供了4种数据类

2022-06-01 20:07:35 330

原创 JDBC主要编程接口对象

JDBC主要编程接口对象JDBC即java数据库互连,是java语言和数据库之间独立于数据库的连接标准API,JDBC从根本上来说是 一种规范,具体的实现需要依赖于具体数据库生产商提供jar包【驱动】,提供了统一的接口用于访问不 同的底层数据库,允许使用java语言编写不同的应用程序以访问数据库。public class Test1 {public static void main(String[] args) {Connection conn = null;Statement stmt = nu

2022-05-27 19:57:44 119

原创 JDBC基本步骤

JDBC编程JDBC即java数据库互连,是java语言和数据库之间独立于数据库的连接标准API,JDBC从根本上来说是 一种规范,具体的实现需要依赖于具体数据库生产商提供jar包【驱动】,提供了统一的接口用于访问不 同的底层数据库,允许使用java语言编写不同的应用程序以访问数据库。为Java语言定义了一个SQL调用级别的统一界面为访问关系型数据库提供了一个标准的界面所谓的JDBC实际上就是一种用于执行SQL语句的API,可以采用一致的方式连接不同的额数据库系 统,从而使用标准的SQL语言来存取

2022-05-27 19:45:36 1240

原创 mysql中的DDL和DML/DQL

DDL表操作创建操作create table tb_student( id bigint primary key auto_increment, name varchar(10) not null comment '说明信息', birth date, sex boolean default 1, salary numeric(8,2))engine=innodb default charset utf8;快速创建一个表和另外一个表的结构相同,只是克隆表结构,不会克隆数据create

2022-05-18 20:29:17 294

原创 mysqls数据库的数据类型

SQL注释一般在编写sql脚本文件时需要添加合理的注释信息单行注释select 1; #说明信息多行注释/*开头 */收尾数据类型数据类型主要给列上添加域完整性约束。开发者设置列的数据类型后,DBMS会对添加的数据进行合法 性验证,如果不合法则报错,拒绝添加数值型5种整型 tinyint、smallint、mediumint、int和bigint,主要区别就是取值范围不同,还可以在类型前添加一个限制词unsigned,不允许添加负数3种浮点型:不能精确存放float和double,可以精

2022-05-18 20:15:38 426

原创 数据库概论与数据库的安装与使用

数据库概论数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一 定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围 内可以被多个用户共享数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数 据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的 数据能以不同的方式被存取或者重新召集,而不需要

2022-05-18 19:46:01 206

原创 JAVA网络编程

Java网络编程计算机网络就是通过传输介质、通信设施和网络协议,把分散在不同地点的计算设备互连起来,实现资 源共享和数据传输的系统。TCP/IP协议簇TCP/IP协议栈是一系列网络协议的总和,是构成网络通信的核心骨架。分层模型TCP/IP协议栈的分层模型常见的有2个,分别是TCP/IP参考模型和ISO组织提出的OSI参考模型。在 TCP/IP参考模型中将网络分为网络访问层【数据链路层】、互联网层【网络层】、传输层、应用层共4 层,OSI参考模型分为物理层、数据链路层、网络层、传输层、会话层、表示层

2022-05-06 17:50:42 478

原创 HashMap实现类

HashMap实现类HashMap默认的初始容积大小为16,加载因子默认0.75,threshold阈值为【容积*加载因子】HashMap采用的是链表法解决哈希冲突问题,同时引入红黑树可以避免单个链表长度过长的问题默认8将单向链表转换为红黑树,注意这里还有一个条件默认64,只有集合中的结点数大于64时才可能进行树化处理默认6将红黑树退化成链表hash函数的涉及需要考虑简单高效和分布均匀两个方面,所以首先获取key对象的hashCode值,然后要将hash值的高位和低位进行与运算后,再针

2022-05-02 11:25:35 101

原创 HashMap

hashmapJDK1.7采用的是头插法,容易产生环形链和数据丢失问题JDK1.8采用的是尾插法,容易产生数据丢失问题HashMap的实现原理散列或者哈希:以节点的key值为自变量,通过一定的函数关系(散列函数)计算出对应的函数值,以这个值为该节点存储在散列表中的地址JDK1.7采用的是数组+链表,而JDK1.8采用的是数组+链表+红黑树HashMap在JDK1.7和JDK1.8的区别JDK1.7JDK1.8存储结构数组+链表数组+链表+红黑树初始化方式单独函

2022-05-02 11:25:00 382

原创 泛型(2)

泛型本质上是指类型参数化泛型的继承泛型类是可以继承的,任何一个泛型类可以作为父类或者子类,不过和普通的继承略有不同父类 public class A{}泛型的子类必须将将泛型父类所需要的类型参数沿着继承链向上传递子类不是泛型类则需要给泛型父类传递类型常量public class B extends A<String>{}子类时泛型类可以给父类传递类型常量,也可以传递类型变量public class B<T> extends A<T>{}

2022-04-22 17:05:49 88

原创 泛型(1)

将一个对象放入集合中,集合不会记住这个对象的具体类型(向上转型Object tmp = new Date();)当再次从集合中取出对象时,该对象的编译期类型变成了Object类型,但是其运行时类型仍然为原始的类型public static void main(String[] args) { List list = new ArrayList(); list.add("123"); list.add(123);// 集合中不能存放原生类型,这里会涉及自动装箱操作 list.add(new

2022-04-14 22:56:54 128

原创 集合框架(2)

Iterator 和 Iterable 接口Collection 接口作为集合框架的顶级接口之一,继承于 Iterable 接口 public interface Collection extendsIterable 接口Iterable 接口用于引入可遍历的功能,要求接口的具体实现类必须提供 Iterator 的实现Iterator 迭代器,走访器,可以理解为集合中元素的指针,用于实现集合中所有元素的遍历访问public interface Iterator<E> { boole

2022-04-08 12:33:38 73

原创 锁机制和synchronized

锁机制对象锁:同步方法,锁住的对象全局锁:类锁,静态方法,锁住的是class类synchronized使用场景用于实现代码的同步处理,保持可见性、有序性和原子性数据不安全的2个条件:共享的临界资源、多线程同时访问并改变数据synchronized三种形式synchronized修饰普通方法,锁对象是当前对象synchronized修饰静态方法,锁对象是当前类synchronized修饰同步代码块,锁对象是synchronized后面括号中的配置对象当时有synchronized修饰同步代

2022-04-05 15:37:20 126

原创 集合框架(1)

集合框架(1)数据结构是了解数据存储在内存中的顺序和位置关系;算法是为求解一个问题所需要遵循的、被清楚指定的简单指令的集合。数据结构是为算法服务的,算法是要作用在特定的数据结构上的。常见的数据结构与算法:数据结构:数组、链表、栈和队列、散列表hash、二叉树、堆、跳表、图算法:递归、排序(学习七种和三种扩展,冒泡和快排必须掌握)、搜索、哈希、贪心、分治、回溯、动态规划、字符串匹配学习方法记忆接口中的方法,记忆对应接口的实现类(区别和如何选择,选择的原因是学习的重点)集合框架如何持有一组数据

2022-04-05 13:54:39 57

原创 线程池和多线程编程细节

线程池创建线程需要花费昂贵的资源和时间,如果每次都是任务到来时才创建线程对象,那么响应时间会边 长,而且一个进程能够创建的线程数有限。为了避免这些问题,在程序启动时就创建若干个线程对象用 于响应处理,这个就称为线程池,里面的每个线程就叫工作线程从JDK1.5开始Java提供了Executor框架可以创建不同的线程池。例如单线程池,每次只能处理一个任 务;数目固定的线程池或者缓存线程池等使用线程池的优势重用存在的线程,减少对象的创建和消亡的开销,性能较好可以有效地控制最大并发线程数,提供系统资源的

2022-03-15 23:27:17 148

原创 JAVA中多线程应用编程基础

多线程应用编程基础概念程序是为了完成某个特定任务,使用某种计算机语言编写的一组指令的有序集合进程是具有一定独立功能的程序的运行过程,是系统进行资源分配和任务调度的一个独立单位线程是进程中的一个独立执行线索,是CPU调度和分配的基本单位,自己基本上不拥有系统资源进程每个进程都有独立的代码和数据空间,进程切换成本较高,一个进程中可以包含1-n个线程,进程是资源 分配的最小单位同一个进程中的线程可能会有共享代码,可以共享进程的数据空间,每个线程由独立的运行栈和程序计 数器,线程切换的开销很小,线

2022-03-01 21:40:00 288

原创 NIO AIO及BIO、NIO、AIO的比较

NIO同步非阻塞NIO是采用内存映射文件的方式处理输出输出,可以将文件或者文件的一段区域映射到内存中,然后就 可以像访问内存一样来访问文件,所以进行输入输出的速度比BIO快的多BIO是同步阻塞式;NIO是同步非阻塞式BIO是面向流的,NIO是面向缓冲区的NIO是一个线程从某个通道发送读取请求时,仅仅获取当前可以用的数据不会保持阻塞等待NIO基础NIO中由3个核心对象Channel通道、Buffer缓冲和Selector多路复用器Channel是对传统输入输出系统的模拟,可以通过map方

2022-02-21 18:26:04 286

原创 JAVA中对象的克隆

对象克隆Object类中定义一个clone方法protected native Object clone() throws CloneNotSupportedException;native方法用于声明一个非java语言实现的代码,供java程序调用。因为java语言程序是运行在JVM上, 如果要访问比较底层的与操作系统相关的方法就没有办法了,只能通过比较靠近系统的语言来实现,比 如C/C++。Object a=new Object();Object b=a; //变量b中存储的是变量a的引用

2022-02-18 14:35:24 2999

原创 JAVA中的流

流的概念在Java程序中,对于数据的输入输出操作以流Stream方式进行,JavaSE提供各种各样的类用于使用相同的方法获取不同类型的数据,程序中通过标准的方法输入或者输出数据流是处理输入/输出的一个洁净的方法,它不需要代码理解键盘和网络的不同。Java中流的实现是基于java.io包定义的类层次结构的流的分类从Java不同版本上来说,流可以分为BIO、NIO和AIO三大类。Java中的BIO、NIO和AIO理解为是Java语言对操作系统的各种Il0模型的封装。程序员在使用这些API的时候,不需要

2022-02-18 14:30:47 6499

原创 JAVA异常处理

异常·程序运行时发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭、立刻退出终止?程序员真理凡是程序一定会出错出错不是问题,关键是出错之后,错误如何处理?谁处理?​ 程序可以从错误中恢复吗?恢复不了就崩溃么?意外产生和处理过程概述运行时有许多因素引起出错,硬件失败,除法溢出,数组下标越界。出错的位置都在方法Method里出错后方法生成一个Exception对象,并把它交给JVM。这个对象里包括许多信息:错误类型,错误位置。JVM负责处理Exc

2021-12-20 21:55:01 658

原创 JAVA中的抽象类

抽象类面向对象编程的核心就是面向抽象编程,一般在开发过程中依赖抽象,不依赖具体public class A{public void pp(Pig pig)}//如果使用具体类,则不具备灵活性。如果需要使用Cat,则只能修改源代码public class A{public void pp(Animal obj){}//调用方法时实际上可以传入任何Animal的子类,例如Pig或者catclass Animal{}class Pig extends Anima1{}1l class cat ext

2021-12-02 19:24:49 761 1

原创 JAVA成员应用细节

成员应用细节JVM主要包括三块内存空间,分别是栈内存、堆内存和方法区Java虚拟机包含类装载器子系统、执行引擎、运行时数据区、本地方法接口和垃圾收集模块。类装载器子系统:根据给定的全限定类名(如: java.lang.Object)来装载class文件到运行时数据区域的方法区中。​ 执行引擎:执行字节码或执行本地方法。​ 运行时数据区∶就是常说的JVM的内存,堆,方法区,虚拟机栈,本地方法栈,程序计数器。​ 本地方法接口:与本地方法库交互,作用就是为了融合不同编程语言为Java所用,它的初衷是

2021-12-02 19:21:46 431

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除