后端
文章平均质量分 73
懒惰的coder
这个作者很懒,什么都没留下…
展开
-
线程池工具类封装
承接具有执行结果的线程任务/*** 线程结果*}/*** 任务线程池*/*** 默认核心线程数/*** 默认最大线程数/*** 默认空闲线程存活时间/*** 默认队列数量/*** 线程池/*** 线程工厂/*** 任务较多时暂存队列/*** 核心线程数/*** 最大线程数/*** 空闲线程存活时间/*** 队列数量/*** 线程池名称/*** 初始化线程池} } /**原创 2022-09-23 21:10:01 · 1664 阅读 · 0 评论 -
MySQL索引分类
按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。按字段特性分类可分为:主键索引、普通索引、前缀索引。按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。原创 2022-09-11 21:24:17 · 1957 阅读 · 0 评论 -
mysql中的mvcc机制
在InnoDB引擎下,按锁的粒度分类,可以分为行锁和表锁。行锁实际上是作用在索引之上的。当我们的SQL命中了索引,那锁住的就是命中条件内的索引节点(这就是行锁),如果没有命中索引,那锁的就是整个索引树(表锁);简单来说就是:锁住的是整棵树还是某几个节点,完全取决于SQL条件是否有命中到对应的索引节点。而行锁又可以简单的分为读锁(共享锁、S锁)和写锁(排它锁、X锁);读锁是共享的,多个事务可以同时读取同一个资源,但不允许其他事务修改。写锁是排他的,写锁会阻塞其他的写锁和读锁。原创 2022-09-11 20:02:10 · 570 阅读 · 0 评论 -
mysql日志总结
什么是binlog?binlog是用于记录数据库表结构和表数据变更的二进制日志,比如insert、update、delete、create、truncate等等操作,不会记录select、show操作,因为没有对数据本身发生变更。使用命令show variables like ‘%log_bin%’;查看binlog是否打开。执行SHOW MASTER STATUS;可以查看当前写入的binlog文件名。(没有开启就不存在)binlog是用来干什么的?第一,用于主从复制。原创 2022-09-10 21:55:57 · 3934 阅读 · 0 评论 -
StringTable常见面试问题
【代码】StringTable常见面试问题。原创 2022-08-28 21:17:50 · 183 阅读 · 0 评论 -
Top命令参数详解
09:54:05 当前时间up 237 days 系统运行时间2 user 当前登录用户数load average 1.29 0.68 0.37 系统负载,即任务队列的平均长度。第二、三行为进程和CPU的信息,当有多个cpu时,这些内容可能会超过两行。内容如下:total 进程总数running 正在运行的进程数sleeping 睡眠的进程数stopped 停止的进程数zombie 僵尸进程数Cpu(s):3.7% us 用户空间占用CPU百分比。原创 2022-08-23 10:59:59 · 1221 阅读 · 0 评论 -
打字(赛马网)
最近找工作需要笔试,做了几道题练习一下,赛码网这个题答案的通过率是9%,因此我自己记录一下自己写的答案。用java实现。原创 2022-08-05 12:22:16 · 1555 阅读 · 0 评论 -
java线程中断
线程中断相关的方法interrupt()方法是一个实例方法,它通知目标线程中断,也就是设置目标线程的中断标志位为true,中断标志位表示当前线程已经被中断了。isInterrupted方法也是一个实例方法它判断当前线程是否被中断(通过检查中断标志位)并获取中断标志Thread类的静态方法interrupted()返回当前线程的中断状态,且将当前线程的中断状态设为false,此方法调用之后会清除当前线程的中断标志位的状态(将中断标志位设置成false了),返回当前值并且设置为false。...原创 2022-08-02 15:59:53 · 368 阅读 · 0 评论 -
springboot环境下Shiro+Token+Redis安全认证方案
认证我们接收filter传过来的token,并认证login操作的token授权获取到登录用户信息,并取得用户的权限存入roles,以便后期对接口进行操作权限验证/***大坑!,必须重写此方法,不然Shiro会报错}/***授权**@returnlog.info("Shiro权限配置");}/***认证**@returnlog.info("Shiror认证");isAccessAllowed()判断是否可以登录到系统/**...原创 2022-07-27 15:43:43 · 9340 阅读 · 0 评论 -
NIO 基础总结
non-blockingio非阻塞IO。原创 2022-07-26 19:49:22 · 279 阅读 · 0 评论 -
访问者模式(JAVA)
/基础用户信息publicabstractclassUser{//姓名publicStringidentity;//身份;重点班、普通班|特级教师、普通教师、实习教师publicStringclazz;//班级publicUser(Stringname,Stringidentity,Stringclazz){}//核心访问方法publicabstractvoidaccept(Visitorvisitor);}基础信息包括。...原创 2022-07-23 21:55:53 · 288 阅读 · 0 评论 -
Mysql中rank类的函数用法
mysql中rank类的函数原创 2022-07-22 19:21:45 · 1837 阅读 · 0 评论 -
简述聚簇索引
唯一的非空索引**代替(“唯一的非空索引”是指列不能出现null值的唯一索引,跟主键性质一样)。如果没有这样的索引,InnoDB会隐式地定义一个主键来作为聚簇索引。原创 2022-07-15 12:25:17 · 306 阅读 · 0 评论 -
权限控制的设计方式
目前主流的权限模型有两种:基于角色的访问控制(Role-Based Access Control,简称 RBAC),指的是通过用户的角色(Role)授权其相关权限,实现了灵活的访问控制,相比直接授予用户权限,要更加简单、高效、可扩展。当使用 RBAC模型 时,通过分析用户的实际情况,基于共同的职责和需求,授予他们不同角色。这种 用户 -> 角色 -> 权限 间的关系,让我们可以不用再单独管理单个用户权限,用户从授予的角色里面获取所需的权限。以一个简单的场景(Gitlab 的权限系统)为例,用户系统中有原创 2022-07-08 19:06:22 · 739 阅读 · 0 评论 -
Mysql为什么采用B+树
众多的数据结构中我们可以分为:线性结构和非线性结构。线性结构主要有:数组、链表、基于它们衍生出的有哈希表、栈、队列等。非线性结构有:树、图。还有其他的数据结构:跳表、位图也都是由基础的数据结构演化而来的,不同的数据结构存在即都是为了解决某些场景问题。我们思考mysql索引适合什么样数据结构,首先应该思考索引是用来解决什么样的问题?索引发挥着什么样的作用?然后再思考什么样的数据结构能够解决这样的问题,实现这样的作用。mysql存储的数据是在磁盘里的,即使设备断电,放在磁盘里面的数据是不会有影响的,保原创 2022-07-06 23:52:21 · 593 阅读 · 0 评论 -
JUC三大常用工具类CountDownLatch、CyclicBarrier、Semaphore
CountDownLatch位于 java.util.concurrent包下。CountDownLatch是通过一个计数器来实现的,计数器的初始值是线程的数量。每当有一个线程执行完毕后,通过countDown方法来让计数器的值-1,当计数器的值为0时,表示所有的线程都执行完毕,然后继续执行await方法之后的语句,即在锁上等待的线程就可以恢复工作了。CountDownLatch中主要有两个方法:简单的小例子:一个寝室八个人要出去,需要等到1、2、3、4、5、6、7、8个人都出来,才可以锁上寝室门。即当原创 2022-07-05 10:00:00 · 210 阅读 · 0 评论 -
适配器模式
共有两种适配器模式我们养了一只猫,它会发出叫声目标(Target)角色适配器(Adapter)角色测试如果有一天又养了一只狗人又和狗成为了朋友重新测试聊天如果再有其他朋友,还需要增加适配器。是否有办法使其通用呢?我们希望可以有一个可以和各种动物做朋友的办法,而不是每次有了新的动物朋友都需要增加一个适配器。万物拟人适配器(Adaper)角色测试...转载 2022-07-03 12:23:21 · 7935 阅读 · 0 评论 -
==与equals 的区别,为什么重写 equals 方法也要重写 hashCode 方法?
引用类型:== 是直接比较的两个对象的堆内存地址,如果相等,则说明两个引用实际是指向同一个对象地址的。基本类型:对于 基本数据类型(8个)和 String 来说又是怎样呢?对于基本类型(8个)和 直接声明的 “abc” 字符串,他们是作为字面量存在常量池中以 HashSet 策略存储起来的,在常量池中,一个常量只会对应一个地址,所以它们的引用都是指向的同一块地址。另外,对于基本数据的包装类型,除了Float和Double之外,其他的六种都是实现了常量池技术,其中 Integer 在常量池中的存储范围为 [转载 2022-07-01 00:34:00 · 85 阅读 · 0 评论 -
装饰者模式
用动物接口作为抽象构件(Component)角色,动物会移动,和咬。具体构件(Concrete Component)角色用会跑会咬的狗狗类作为具体构件(Concrete Component)角色。装饰(Decorator)角色给动物设计装备,可以加强动物的技能(也就是方法)。具体装饰(Concrete Decorator)角色在装饰角色中我们设计了动物的装备,但是没有具体实现装备的功能,在此实现动物移动的加速装备。有的小动物会被大的动物欺负,于是为他们设计一款攻击力增强装备来保护自己,在此实现原创 2022-07-01 00:17:33 · 208 阅读 · 1 评论 -
进程通信的方式
管道、命名管道、信号、消息队列、共享内存、内存映射、信号量、Socket管道管道也叫无名(匿名)管道,它是是 UNIX 系统 IPC(进程间通信)的最古老形式,所有的 UNIX 系统都支持这种通信机制。管道本质其实是内核中维护的一块内存缓冲区,Linux 系统中通过 pipe() 函数创建管道,会生成两个文件描述符,分别对应管道的读端和写端。无名管道只能用于具有亲缘关系的进程间的通信。命名管道匿名管道,由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道(FIFO),也叫命名管道、F原创 2022-06-30 23:35:18 · 146 阅读 · 1 评论 -
java.util.ConcurrentModificationException
当我们迭代一个ArrayList或者HashMap时,如果对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationException的异常。例子:输出:ArrayList的父类AbstarctList中有一个域,每次对集合进行修改(增添元素,删除元素……)时都会而foreach的背后实现原理其实就是Iterator,等同于上面代码的注释部分。在这里,迭代ArrayList的Iterator中有一个变量,该变量会初始化和相等,但如果接下来如果集合进行修原创 2022-06-10 22:21:09 · 134 阅读 · 0 评论