自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String和集合类型的isEmpty()和isBlank()

1.StringUtils(Apache Commons Lang库中的一个类),该工具类是用于操作Java.lang.String类的。

2024-03-27 11:01:37 371

转载 @JsonInclude注解

@JsonInclude注解

2022-10-10 10:04:33 1111

转载 XXL-JOB的使用

XXL-JOB的使用

2022-09-30 09:10:26 2717

转载 spring注解:@Autowired、@Qualifier、@Primary

spring注解

2022-09-27 16:41:08 273

转载 jackson解析xml

jackson解析xml

2022-09-27 16:19:34 2940

转载 jboss部署异常

jboss部署异常

2022-09-27 15:31:52 668

转载 Oracle:rownum基本用法

rownum基本用法

2022-09-23 14:31:14 2192

转载 sql:多个left join 执行

sql

2022-09-23 14:02:20 2191

转载 Oracle数据库网络配置文件:tnsnames.ora

tnsnames.ora

2022-09-23 13:46:48 11639

转载 SpringDataJPA的接口

JPA

2022-09-20 17:10:04 1185

转载 @Entity注解

@Entity注解

2022-09-19 10:37:22 608

转载 iframe用法

iframe用法

2022-09-14 14:54:09 319

转载 jQuery中的$.each()方法

jQuery中的$.each()方法

2022-09-14 14:37:04 601

转载 iReport数据源

iReport数据源

2022-09-14 14:18:43 249

转载 eclipse解决js文件乱码

乱码

2022-09-08 14:01:24 1408

转载 SYN泛洪攻击

大家都知道一个TCP连接的启动需要经历三次握手的过程。正常情况下客户端首先向服务端发送SYN报文,随后服务端回以SYN+ACK报文到达客户端,最后客户端向服务端发送ACK报文完成三次握手,后续就是上层业务数据交互,直到某一方断开连接。那么假如在这“握手”的过程中,客户端程序因为莫名崩溃等原因,收到SYN+ACK报文后不再回以ACK,即丢失第三次握手,这时服务端可能会以为会发送的包丢失了,于是重新发送一遍SYN+ACK,再收不到来自客户端的ACK响应的话,就把这次连接丢弃掉。这个过程大约会持续分钟级,

2022-04-08 21:53:37 1110

转载 SpringBoot和Spring的区别

1.Maven依赖以web为例,让我们看一下使用Spring创建Web应用程序所需的最小依赖项:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.1.0.RELEASE</version></dependency><depe...

2022-04-06 16:06:24 266

转载 MySQL:长文本建立索引失败的办法

文本字段越长,在这个字段上建索引的代价就越高方法1:可以为这个字段配一个hash字段,然后在这个hash字段上建索引。select * from log where url_hash= CRC32('http://bing.com?query=xxx&tp=xxx' )crc32()返回的值一般比较短,比较合适; 如果用md5或sha1做hash, 返回的值也很长,那就失去意义了。不过,像上面这样写可能存在hash collision问题,所以应该加个原字段上的搜索条件,确保搜出来的

2022-04-06 08:16:27 1001

转载 MVCC原理

MVCC全称Multi-Version Concurrency Control,即多版本并发控制。指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SEELCT操作时访问记录的版本链的过程,这样子可以使不同事务在不加锁的情况下的读-写、写-读操作并发执行,从而提升系统性能。MVCC实现的关键知识点1.快照读和当前读快照读:读取的是记录数据的可见版本(有旧的版本)。不加锁,普通的select语句都是快照读,如:select * from.

2022-03-31 11:10:34 612

转载 分布式事务一致性的解决办法

分布式事务:如何保证多个系统间的数据是一致的?_腾讯新闻 (qq.com)面试必问:分布式事务六种解决方案 - 知乎 (zhihu.com)强一致性事务1.2pc第一阶段:准备阶段,协调者会给各参与者发送准备命令,除了提交数据库事务以外的所有工作,都要在准备阶段完成第二阶段:提交阶段,同步等待所有资源的响应之后就进入第二阶段即提交阶段(注意提交阶段不一定是提交事务,也可能是回滚事务)(1)执行状况第一阶段所有参与者都返回准备成功,那么协调者则向所有参与者发送提交事务命令,

2022-03-30 21:33:21 3285

转载 redis底层原理

面试官:Redis 为什么这么快?除了基于内存操作还有其他原因吗? - 知乎 (zhihu.com)redis的操作都是基于内存的,绝大部分请求是纯粹的内存操作,非常迅速。使用单线程可以省去多线程时CPU上下文会切换的时间,也不用去考虑各种锁的问题,不存在加锁释放锁操作,没有死锁问题导致的性能消耗。对于内存系统来说,多次读写都是在一个CPU上,没有上下文切换效率就是最高的!既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章的采用单线程的方案了总结:redis是纯内存操作:数据存放..

2022-03-14 10:26:54 642

转载 RabbitMQ的使用

超详细的RabbitMQ入门,看这篇就够了!-阿里云开发者社区 (aliyun.com)作用:解耦;异步;削峰 RabbitMQ的组成部分:Broker:消息队列服务进程。此进程包括两个部分:Exchange和Queue。 Exchange:消息队列交换机。按一定的规则将消息路由转发到某个队列。 Queue:消息队列,存储消息的队列。 Producer:消息生产者。生产方客户端将消息同交换机路由发送到队列中。 Consumer:消息消费者。消费队列中存储的消息关键的组件Exchange..

2022-03-13 18:43:37 145

原创 SpringCloud:gateway

Router(路由)路由是构建网关的基本模块,它由ID,目标URI, 一系列的断言和过滤器组成,如果断言为true则匹配该路由Predicate(断言)开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由Filter(过滤)指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。server: port: 80 # 服务端口spring: profiles: ac

2022-03-12 18:04:58 403

原创 SpringCloud:OpenFeign和sentinel

OpenFeign:服务接口调用接口+注解:微服务调用接口+@FeignClient另外在主启动要开启@EnableFeignClients注解package com.atguigu.srb.sms.client;@FeignClient(value = "service-core")public interface CoreUserInfoClient { @GetMapping("/api/core/userInfo/checkMobile/{mobile}") bo

2022-03-11 21:13:20 985

原创 nginx反向代理配置

让前端程序能够同时对接多个后端服务,使用nginx作为前后端中间的反向代理层;反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器nginx的配置server { listen 80; #如果80端口被占用,且不能被kill,可以修改为其他端口号,如90 server_name loca...

2022-03-11 15:50:04 3959

原创 请求跨域问题:CORS(Cross-Origin Resource Sharing)

出于浏览器的同源策略限制。所谓同源(即指在同一个域)就是两个地址具有相同的协议(protocol)、主机(host)和端口号(port)以下情况都属于跨域: 跨域原因说明 示例 域名不同 www.jd.com 与 www.taobao.com 域名相同,端口不同 www.jd.com:8080 与 www.jd.com:8081 二级域名不同 ..

2022-03-11 14:47:28 1187

原创 数据库拓展方式

数据库的扩展方式主要包括:业务分库、主从复制(主库负责写,从库负责读),数据库分表下面主要介绍数据库分表数据库分表将不同业务数据分散存储到不同的数据库服务器,能够支撑百万甚至千万用户规模的业务,但如果业务继续发展,同一业务的单表数据也会达到单台数据库服务器的处理瓶颈。例如,淘宝的几亿用户数据,如果全部存放在一台数据库服务器的一张表中,肯定是无法满足性能要求的,此时就需要对单表数据进行拆分。单表数据拆分有两种方式:垂直分表和水平分表。示意图如下:垂直分表:垂直分表适合将表...

2022-03-11 11:02:07 1137

原创 SpringBoot自动配置

自动配好Tomcat引入Tomcat依赖。配置Tomcat<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.3.4.RELEASE</version> <scope...

2022-03-10 19:23:13 77

原创 Mybatis在xml中配置sql语句时,${}和#{}取值的区别

#{属性名}:是参数预编译的方式,参数的位置都是用?替代,参数后来都是预编译设置进去的;安全,不会有sql注入问题 ${属性名}:不是参数预编译,而是直接和sql语句经行拼串;不安全除了MyBatis外:${}取出配置文件中的值#{}Spring的表达式语言...

2022-03-10 10:58:17 376

原创 JdbcTemplate 和 mybatis 的对比

jdbcTemplatejdbcTemplate 是spring对 jdbc操作数据库进行的封装,使得开发者可以直接在java文件中编写sql,无需配置xml文件。直接调用jdbcTemplate.update(sql,……)等方法。MyBatisMyBatis底层就是对原生JDBC的一个简单封装;MyBatis将重要的步骤抽取出来可以人工定制,其他步骤自动化;重要步骤都是写在配置文件中(好维护)...

2022-03-09 22:33:15 1519

原创 AOP:多切面的运行顺序

普通通知/** * 通知方法的执行顺序; * * try{ * @Before * method.invoke(obj,args); * @AfterReturning * }catch(){ * @AfterThrowing * }finally{ * @After * } * * 正常执行: @Before(前置通知)=====@After(后置通知)====@AfterReturning(正常.

2022-03-09 21:51:25 672

原创 web 中 / 斜杠的不同意义

斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径/hello 表示地址为:http://ip:port/工程路径/hello

2022-03-07 21:01:18 606

转载 B树和B+树作为索引的结构

用树这种数据结构作为索引的数据结构,那我们每查找一次数据就需要从磁盘中读取一个节点,也就是我们说的一个磁盘块。B树B+树B+树和B树的不同点:在数据库中页的大小是固定的;由于B+树的非叶子节点不存放实际的数据,所以每个节点可容纳的元素个数比B-树多,树高比B-树小,这样带来的好处是减少磁盘访问次数 因为 B+ 树索引的所有数据均存储在叶子节点,而且数据是按照顺序排列的。那么 B+ 树使得范围查找,排序查找,分组查找以及去重查找变得异常简单。而 B 树因为数据分散在各个节..

2022-03-06 11:08:13 279

原创 浮点型数据的MIN_VALUE

Double、Float里的最小值是非0非负的最小值,需要最小值只需 -MAX_VALUE即可,负的最大值是-MIN_VALUE。

2022-03-04 10:33:12 337

原创 线程状态转化

线程调用start()方法进入ready状态,获得cpu后进入running状态; Sleep() 线程,释放CPU,不会释放对象锁,进入Time_Waiting状态,结束后,进入ready状态,等待CPU时间片; wait()导致线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入ready状态Wait()和notify()方法只能从synchronized方法或块中调用,需要在其他线程正在等待的对象上调用notify方法 s

2022-02-25 20:23:22 120

转载 序列化和反序列化

序列化理解起来很简单 - 知乎 (zhihu.com)定义序列化:把对象转化为可传输的字节序列过程称为序列化。反序列化:把字节序列还原为对象的过程称为反序列化。目的序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组Java 是如何实现序列化要实现Serializable 接口public class User implements Serializable{ //年龄 priv.

2022-02-25 10:46:15 127

原创 np.array:二维数组变为一维数组

.flatten()import numpy as npa = np.array([[1, 2], [3, 4], [9, 8]])b = a.flatten()print(b)

2022-02-25 10:03:45 1502

原创 matplotlib:图例显示中文名字、添加图像标题、横纵坐标轴的标签

图例显示中文名字import matplotlibmatplotlib.rc("font",family='FangSong')添加图像标题、横纵坐标轴的标签plt.title("title")plt.xlabel("label")plt.ylabel("label")plt.legend(loc=‘best’)

2022-02-25 10:01:24 3136

原创 try-catch-finally

代码段首先进入try语句,因无异常抛出,代码将要return的内容保存在内存中,然后执行finally,因finally中无可执行内容,再转回try中执行return,整个代码段执行结束,而finally后面的return是不会执行的注:如果finallly中有return,程序在这里就会退出,不会再返回try中执行return...

2022-02-25 09:51:18 145

原创 hashMap的扩容机制

capacity 即容量,默认16。loadFactor 加载因子,默认是0.75(3/4,与容量相乘总是整数;设置太小频繁扩容,浪费空间;设置太大碰撞的概率高,查询效率慢)threshold 阈值。阈值=容量*加载因子。默认12。当元素数量size超过阈值时便会触发扩容。空参数的构造函数:实例化的HashMap默认内部数组是null,即没有实例化。第一次调用put方法时,则会开始第一次初始化扩容,长度为16。 有参构造函数:用于指定容量。会根据指定的正整数找到不小于指定容量的2的幂数,.

2022-02-24 15:28:11 1681 3

空空如也

空空如也

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

TA关注的人

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