自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 问答 (4)
  • 收藏
  • 关注

原创 Stream流式计算

- Stream 和 Collection 集合的区别:Collection 是一种静态的内存数据结构,而 Stream 是有关计算的。前者是主要面向内存,存储在内存中,后者主要是面向 CPU,通过 CPU 实现计算。- Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲的是数据,Stream 讲的是计算

2023-03-07 16:18:55 145

原创 Java8新特性--函数式接口

Jdk8的函数式类型的接口都有。Function函数式接口。

2023-03-07 10:08:04 147

原创 Java-线程池

线程池、连接池、内存池、对象池////…创建、销毁、十分浪费资源。程序的运行本质:占用系统的资源!池化技术:事先准备好一些资源,有人要用,就来我这里拿。线程池本质—ThreadPoolExecutor。线程池:三大方法、7大参数、4种拒绝策略。线程复用、可以控制最大并发数、管理线程。自定义线程池以及线程池的拒绝策略。线程线程池:三大方法。

2023-03-06 15:32:12 140

原创 BlockingQueue阻塞队列

在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素队列FIFO先进先出 一端写入一端取出写入如果队列满了就必须阻塞等待,如果队列是空的必须阻塞等待生产:BlockingQueue不接受null值,试图添加一个null元素时会抛出异常。

2023-03-03 14:06:20 413

原创 JUC并发编程

java.util工具包、包、分类业务:普通业务线程代码 Thread没有返回值、效率相比Callable相对较低。

2023-02-09 17:31:35 943

原创 JVM运行时数据区

JVM是Java Virtual Machine(Java虚拟机)的缩写,是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制。可以将JVM理解为是一个运行字节码的平台。

2023-02-06 16:22:10 284

原创 Docker运行项目

【代码】Docker运行项目。

2023-02-06 15:16:51 163

原创 Docker中MySQL主从复制

Docker中MySQL主从复制

2023-01-04 11:13:57 335

原创 Docker中tomcat--mysql--redis项目中的安装

Docker中tomcat--mysql--redis项目中的安装

2022-12-26 15:32:37 75

原创 Docker容器数据卷

卷的设计目的就是数据持久化,完全独立于容器的生命周期,因此Docker不会再容器删除时删除其挂载的数据卷。卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统。在容器目录中创建对应的文件,在主机对应的目录中可以找到容器中的文件,,即在容器中添加一个文件或者在文件中添加内容,这时在主机的目录下。宿主机与容器之间映射添加容器卷—直接目录添加。

2022-12-22 17:10:43 80

原创 Docker和传统的虚拟机对比

- 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上运行所学应用进程。缺点:资源占用多,步骤多、启动慢。- 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。- 每个容器之间互相隔离,每个容器又自己的文件系统,容器之间进程不会互相影响,能区分计算机资源。

2022-12-19 13:43:41 203

原创 Docker基本命令

Docker基本命令、docker镜像的分层

2022-12-19 13:42:14 113

原创 二叉树的层序遍历

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)

2022-12-07 17:49:15 244

原创 二叉数遍历--前序-中序-后序

二叉数遍历--前序-中序-后序

2022-12-07 16:46:32 195

原创 排序算法-选择排序-插入排序

排序算法-选择排序-插入排序

2022-12-05 18:32:37 185

原创 排序-交换排序

以交换位置的方式排序冒泡排序把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置…我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成。快速排序从数列中取出一个值,将比这个值大的放在它的右边,将比这个值小的放在它的左边,再最左右两个区域重复这个过程,直到各个区域只有一个

2022-12-05 16:53:05 121

原创 NC1 大数加法

描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:s.length,t.length≤100000,字符串仅由’0’~‘9’构成示例1思路大数相加,如果数据超过范围使用int类型相加会超界采用竖式加法来相加,在java中使用栈来计算,首先使用补0的方法来使数据的长度一致,然后从数据的最后一位开始相加,如果数据长度大于10则进一位。定义两个指针 i 和 j 分别指向 s 和 t 的末尾,即最低位,同时定义一个变量 carry维护当前是否有进位,然后从末尾到开头逐

2022-12-05 14:20:36 127 2

原创 链表内指定区间反转

将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。给出的链表为 1→2→3→4→5→NULL, m=2,n=4m=2,n=4,建议使用虚拟头节点的技巧,可以避免对头节点复杂的分类考虑,简化操作。要反转局部链表,可以将该局部部分当作完整链表进行反转。再将已经反转好的局部链表与其他节点建立连接,重构链表。返回 1→4→3→2→5→NULL.

2022-11-28 17:28:06 733

原创 Java设计模式

是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结

2022-11-08 23:31:51 150

原创 SpringBoot自动装配的原理

SpringBoot自动装配的原理

2022-10-30 17:36:19 111

原创 SQL联合查询inner join、outer join和cross join的区别

SQL联合查询inner join、outer join和cross join的区别

2022-10-29 11:05:13 123

原创 Redis常见问题

当key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。试想一下,如果有人恶意对你的系统进行攻击,拿一个不存在的id 去查询数据,会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。

2022-10-21 14:37:46 246

原创 JVM中的类加载器

双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有当上一层类加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到这个类)时,下一层类加载器才会尝试自己去加载;**初始化:**我们new一个类的对象,访问一个类的静态属性,修改一个类的静态属性,调用一个类的静态方法,用反射API对一个类进行调用,初始化当前类,其父类也会被初始化…

2022-10-03 21:01:31 72

原创 BM6 判断链表中是否有环

输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。数据范围:链表长度 0 \le n \le 100000≤n≤10000,链表中任意节点的值满足 |val|

2022-09-28 20:34:40 61

原创 Redis主从复制

主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主**(读写分离)**从机(Slave)成功连接主机(master),会给主机发送一个syn命令master收到目录启动后台的存盘进程,同时收集所有接收到的修改数据集的命令,在后台进程执行完毕后,master将传送整个数据文件到从机中去,以完成一次数据同步。1.全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。(刚开始从机连接主机,主机一次给)

2022-09-24 15:44:10 849

原创 Redis持久化

官方推荐两个都启用。如果对数据不敏感,可以选单独用RDB。不建议单独用 AOF,因为可能会出现Bug。如果只是做纯内存缓存,可以都不用。

2022-09-23 16:59:00 216

原创 Redis事务和锁机制---秒杀案例

在redis存入商品数,设定秒杀时间,提供用户秒杀窗口,用户秒杀成功,redis中商品数-1,用户信息也存入redis中(为了相同用户只能秒杀一次)节省每次连接redis服务带来的消耗,把连接好的实例反复利用。通过jmeter来模拟多线程并发操作。

2022-09-23 16:02:10 156

原创 Redis事务

而redis的事务特性没有隔离,因为都是单独的隔离而不会被打断,而且也不保证原子性,错了等待不到消息不会进行回滚。主要的三个命令:multi、exec和discard。即使错误也会跳过当前语句继续执行,不会进行事务的回滚。输入multi的时候下一个会出现tx,代表是事务。串联多个命令防止别的命令插队。

2022-09-22 21:52:59 209

原创 克隆和复制

想一想,为什么需要克隆?为什么不重新new一个?道理很简单,目的是想要两个相同的对象,重新new一个还得自己重新赋值,太麻烦

2022-09-22 20:56:19 372

原创 Redis存储手机验证码,进行校验

Redis存储手机验证码,进行校验

2022-09-22 18:40:35 515

原创 Redis操作命令

redis操作的基本命令

2022-09-22 15:09:59 120

原创 非关系型数据库Redis

非关系型数据库,不依赖业务逻辑数据库存储,以简单key-value存储。因此大大的增加了数据库的扩展能力2.不遵循SQL标准3.不支持ACID。Redis 是一个开源的 key-value 存储系统

2022-09-22 09:14:50 209

原创 MySQL面试题

索引是一种[数据结构],是存储引擎用来快速找到数据的一种数据结构。MVCC

2022-09-21 19:13:18 140 2

原创 Spring面试题

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2022-09-17 15:38:01 147

原创 Java设计模式

Java设计模式分为三大类创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。结构型模式:把类或对象结合在一起形成一个更大的结构。行为型模式:类和对象如何交互,及划分责任和算法。

2022-09-13 19:26:47 141

原创 多线程基础面试题

多线程基础面试题

2022-09-09 19:56:48 130

原创 SpringBoot整合数据库

SpringBoot整合数据库 JDBC配置,Durld,Mybatis,Redis配置

2022-07-28 22:06:44 710

原创 SpringBoot集成Swagger

SpringBoot集成Swagger

2022-07-28 19:49:42 56

原创 SpringBoot异步、定时、邮件任务

在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息...

2022-07-28 19:48:01 104

原创 Shiro应用程序安全框架

Shiro应用程序安全框架

2022-07-27 22:10:38 880

空空如也

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

TA关注的人

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