自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (8)
  • 问答 (3)
  • 收藏
  • 关注

原创 图数据库(六):Neo4j中的查询操作

上一篇文章我们学习了Neo4j中的更新操作,今天我们学习一下Neo4j的查询。说到查询我们就不得不提到Match关键字。

2023-06-12 22:51:32 2492 1

原创 图数据库(五):Neo4j中的更新操作

学过Mysql的人都知道,对于数据库的操作大多数都是增删改查,同样对于Neo4j图数据库也一样,今天我们就学习一下Neo4j中的更新操作。

2023-06-11 15:36:29 2308

原创 word2vec

【代码】word2vec。

2023-06-11 14:51:33 163

原创 图数据库(四):Neo4j中的删除操作

在Neo4j中delete和remove的使用

2023-06-09 19:31:28 3668

原创 图数据库(三):Neo4j中的Create和Merge

在上篇文章中,我们介绍了在项目中如何使用Java来操作Neo4j图数据库。今天我们就仔细的学习一下,Neo4j中如何创建节点,以及Create和Merge的区别使用。

2023-06-08 23:14:44 2375

原创 图数据库(二):Java操作图数据库

在上篇文章中,我们介绍了什么是Neo4j,什么是Cypher以及Neo4j的使用,今天我们学习一下如何使用Java操作Neo4j图数据库。

2023-06-06 22:53:01 708 2

原创 图数据库(一):Neo4j入门

我们可以看一下百度百科对其的定义:Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。节点:实体,可以表示一个单独存在的个体,一般包含多个属性关系:用于连接两个节点之间的边属性:写在节点里的,用于对节点的扩展标签:用于对节点的分类。

2023-06-05 18:59:18 829

原创 【OpenCV入门教程Java版之四】视频操作入门

需要注意的一点就是需要将OpenCV的build/bin文件夹下的opencv_videoio_ffmpeg460_64.dll文件拷贝到Windows/Systems32文件夹下。在生活中我们经常会用相机去捕捉我们看到的景物,OpenCV中也提供了一个非常简单的接口,可以实现该功能。在OpenCV中如果我们要操作视频,VideoCapture类是一个非常重要的接口类,它可以从文件或者摄像设备中读取视频。首先我们可以简单的实现一个功能,通过电脑的摄像头得到监测视频,每隔一秒截取视频的图像存储。

2022-10-18 20:51:57 855 1

原创 【OpenCV入门教程Java版之三】图像的几何变化

今天我们聊一聊图像的几何变化。所谓图像的几何变化,就是指在不改变图像像素的前提下,对图像的像素进行空间几何变化,比较常见的变化有距离变化、坐标映射、平移、镜像旋转、缩放等。

2022-10-16 13:57:39 1116

原创 【OpenCV入门教程Java版之二】图像的加载、显示与保存

随着OpenCV的发展,使用Mat类型进行存储图片数据,OpenCV的学习变得越发简单,有点趋向于Matlab编程,而今天我们学校的图像加载、显示和保存所用到的主要方法也越发像Matlab。话不多说,我们开始今天的图像入门。

2022-10-11 21:29:00 1900

原创 【OpenCV入门教程Java版之一】安装OpenCV:OpenCV4.6.0+IDEA开发环境配置

在读研期间的研究方向与图像处理有一点相关,后来由于工作可能会有需要,所以晚上回去也闭门研究了OpenCV和图像处理相关的知识。也准备写一个OpenCV系列的专栏作为自己的学习笔记,也分享给大家,如果有写错的地方也欢迎大家及时指出。好了这篇文章作为OpenCV系列的第一篇,我们先介绍一下OpenCV的开发环境。在学习OpenCV的过程中也搜集了网上的很多资料,发现多为C++、Python开发,很少使用Java,所以我打算使用Java来学习OpenCV。

2022-10-09 21:49:01 6704 1

原创 聊一聊ShardingSphere的分库分表

ShardingSphere的分库分表

2022-10-08 20:29:22 381

原创 聊一聊ShardingSphere的读写分离

ShardingSphere的读写分离

2022-10-06 19:57:13 1409

原创 聊一聊Redis的RDB快照

前面我们学习了Redis的AOF日志,我们知道通过AOF在进行数据恢复时需要将操作日志全都执行一遍,如果操作很多,那么Redis就会恢复的很慢。那有没有一种既可靠有快速的方法呢,今天我们聊一聊Redis的RDB快照。顾名思义快照就是将内存中的数据全都记录到磁盘中,但是同样的如果给内存的全量数据做快照,把它们全部写入磁盘也会花费很多时间。Redis的单线程模型就意味着我们需要尽量避免所有阻塞主线程的操作,在Redis中提供了两个命令来生成RDB快照:有一个问题我们在创建快照的时候能修改数据吗,如果修改了那么

2022-06-23 20:17:58 317

原创 聊一聊Redis的AOF日志

日志是任何系统或者软件中必不可少的,同样在Redis中AOF日志也是Redis用来持久化的重要手段之一。我们比较熟悉的MySQL中redo log用到了WAL(Write-Ahead Logging)技术,它是先写日志,再写磁盘,相比较而言,在Redis中与其相反,是后写日志。在Redis中AOF日志的实现都是先写命令,再记录日志,为什么要先执行命令再记录日志呢,而不是像传统的数据库日志。后写日志的方式,就是先让系统执行命令,只有命令执行成功,才会被记录到日志中,否则直接向客户端报错,这样也就避免了日

2022-06-20 18:53:15 221

原创 Redis的单线程模型

我们在学习Redis的过程中都说Redis快,redis是单线程的,但是我们有没有想过单线程的Redis为什么会这么快呢?确实,Redis在6.0之前都是单线程模型,这主要指的是Redis的网络IO和键值对的读写都是由一个线程来完成的,这也是Redis提供键值存储服务的主要流程。但是相对于Redis中其他的功能,比如持久化、集群等确是由额外的线程执行的。相比较单线程,我们经常会听到一个说法,为了提高性能和效率,使用多线程可以增加系统吞吐率、增加系统的扩展性。的确在合理分配资源的情况下,可以增加系统中处理请

2022-06-19 14:58:48 166

原创 Redis真的没有慢操作吗

Redis的底层数据结构

2022-06-19 12:02:17 125

原创 Elasticsearch中自定义扩展IK分词器字典

在Elasticsearch中我们常使用IK分词器进行语句分词,但是有时候一些生僻的词汇,IK分词器也无法分割,此时就需要我们进行自定义分词。在Elasticsearch中使用IK分词器还是比较简单的,上篇文章中我们说过docker中安装Elasticsearch,并将文件夹映射到本地文件夹中,所以此时我们仅需将IK分词器下载解压到本地Elasticsearch映射的文件夹下如图所示,直接将IK分词器解压到Elasticsearch的plugins 文件夹下就好。自定义扩展IK分词器字典需要修改

2022-05-03 17:55:16 530

原创 docker 中安装Elasticsearch、Kibana

为了学习方便我们使用腾讯云服务器(也可以使用阿里云),避免自己搭建Linux服务器。安装docker(具体安装方法可以查看docker官网)docker pull elasticsearch:7.4.2## docker启动在9200端口和9300端口(9300是集群端口),将docker容器的文件夹映射到本地磁盘对应的文件夹,便于操作docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=singl

2022-05-01 20:08:32 1939

原创 聊一聊order by的工作原理

我们在开发的过程中,肯定会经常碰到需要排序的需求,今天我们就聊一聊order by的工作原理。

2022-04-08 21:24:58 1078

原创 聊一聊count的性能

在开发的过程中,我们经常有需求要计算一个表的行数,很多人都会想到可以直接使用select count(*) from table。但是随着系统记录不断变多,这条语句也会变慢,今天我么就聊一聊count(*)这个语句如何实现的。count(*)的实现在MySQL中count(*)由于引擎的不同,实现的方式也是不一样的。在MyISAM中有一一个表的总行数存在了磁盘中,使用count(*)可以直接返回在InnoDB引擎中,执行count(),会把数据一行一行从引擎中读出,然后累计**这也就造成了为什么

2022-04-07 20:36:39 419

原创 聊一聊唯一索引和普通索引

在我们学习MySQL的过程中,肯定了解了索引的一些基本概念,也了解了唯一索引和普通索引的区别,今天我们就简单讨论一下唯一索引和普通索引的使用场景。我们在开发业务需求时,建立用户信息表是不可避免的。比如维护一个员工信息系统,每个人都有一个身份证号,并且我们的用户代码也保证了不会写入重复的身份证号。在我们查询员工信息时,我们可以在身份证号(u_card)上建立索引。但是由于身份证号的字段比较大,我们不建议将身份证号码作为主键...

2022-04-02 18:45:10 1427

原创 一条SQL的执行过程

在我们学习MySQL时,我们会执行各种SQL语句,今天我们就讨论一下SQL语句的执行过程,聊一聊MySQL的基础架构,看一看MySQL有哪些组件构成,以及这些组件的作用。MySQL的基础架构图简单来说,MySQL可以分为服务层和存储引擎层。服务层中主要包括:连接器、查询缓存、接下、优化器、执行器等。很多跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,内置函数等。存储引擎层主要负责数据的存储以及提取,支持多种存储引擎,比如常见的InnoDB、MyISAM、Memory等。其中InnoDB

2022-03-30 21:27:31 822

原创 int(2)中的2代表什么

今天有个朋友问我int(2)和int(10)有什么区别,难道是指字段的长度吗,答案肯定是否定的。我们知道在MySQL中int占4个字节,那么无符号的int,最大值就是2^32-1,但是具体int括号后的数字代表什么意思,我们测试来看。CREATE TABLE `zt` ( `id` int(2) unsigned NOT NULL, `value` varchar(255) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=

2022-02-20 11:43:47 2969

原创 ThreadLocal原理分析

ThreadLocal类提供线程局部变量,每一个访问这种变量的线程(通过get和set方法),都有独立初始化的变量副本。可以保证存储进去的数据,只被当前线程读取,各线程之间不会相互影响。 public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.g

2022-02-07 21:08:41 421

原创 石轩编码记

漠北荒原,残阳如血,一人一剑,一瘸一拐的走着。。。

2022-02-07 16:20:11 214

原创 mysql中分组取创建时间最新的数据

将数据进行分组,在组内获取创建时间最新的数据

2022-01-29 09:21:40 2720

原创 Promise模式

Promise模式一种异步编程的模式,使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,不用去等该任务执行完成可以执行其他操作,在生活中我们也经常会运用其中的思想,比如我们去一家小吃店点了一份鸭血粉丝和一份小笼包,会发一份凭据,鸭血粉丝比较快做好,我们可以不用等待小笼包做好,先吃鸭血粉丝,等到吃的差不多了,小笼包也可能出笼了,我们可以凭着发票换取小笼包。Promise模式介绍Promise模式主要是由4个部分构成:Promisor 负责对外暴露可以返回Promise对象

2021-11-04 20:05:52 382

原创 Guarded Suspension模式

Guarded Suspension模式顾名思义保护性暂停模式,可以大大降低多线程获取锁时锁冲突带来的性能开销,当线程访问某个数据时,发现无法请求到,此时就会要求线程在进行访问。暂时挂起,保证实例的安全性,等满足条件再去请求。比如我们如果要开发一个服务器,处理来自客户端的请求。为了不丢失请求,要维护一个缓冲区,将客户端的请求先储存至缓冲区,然后从缓冲区取出请求执行,如果缓冲区没有请求,就等待直到有新的请求过来。public class Request { private String name;

2021-11-03 18:27:34 86

原创 MySQL性能优化

我们在开发的过程中经常会遇到一个问题,有时数据库的查询速度很慢,那么为什么会造成这个问题呢。首先我们先了解一下,查询的整个生命周期,从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,返回结果给客户端。执行是整个生命周期中最重要的阶段,包含了大量为了检索数据到存储引擎的调用以及调用后的数据处理。查询的过程中需要在很多地方消耗时间,包括网络、CPU计算,生成统计信息执行计划、锁等待等,尤其是向底层存储引擎检索数据的调用操作,根据存储引擎的不同还会产生大量的上下文切换以及系统调用。优化数据访问

2021-10-28 20:35:36 325

原创 创建高性能索引

MySQL索引索引是存储引擎用于快速找到记录的一种数据结构,如果没有索引,MySQL必须从第一行,遍历整个表进行查找,索引对于良好的性能非常关键,尤其是数据量越来越大时,索引对性能的影响越发重要。索引的类型索引有很多类型,可以根据不同的场景提供更好的性能,在MySQL中索引是在存储层而不是服务层实现的,所以没有统一的索引标准:不同存储引擎的索引的工作方式也是不一样的,不同的存储引擎支持的索引类型也都不是一样的。我们先来看一下MySQL支持的索引类型(只讨论常用的InnoDB、MyISAM存储引擎中的

2021-10-26 20:18:00 91

原创 缓存穿透、缓存击穿、缓存雪崩的解决方案

考虑比较完善的方案,分为事前,事中,事后三个方面去解决:事前:发生雪崩之前如何避免redis彻底挂掉redis本身的高可用性,复制,主从架构,操作主节点,读写,数据同步到从节点,一旦主节点挂掉,从节点跟上双机房部署,一套redis cluster,部分机器部署在一个机房,另一部分部署在另一个机房还有一种部署方式,两套redis cluster,两套redis cluster之间做一个数据同步,redis集群可以搭建成树状结构一旦单个机房除了故障,另一个机房还可以使用事中:redis clust

2021-07-10 19:48:14 117

原创 程序员孔乙己

1

2021-05-14 21:21:02 321 4

原创 SpringBoot自动装配原理

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-03-30 20:48:00 79 4

原创 Dubbo原理解析

之前写过一篇dubbo入门的文章,大家如果有兴趣可以看一下。Dubbo入门看这篇就够了用到的程序,可以直接下载,我已经将积分设为0。今天我们就了解一下,Dubbo的运行原理。

2021-03-29 18:50:11 172

原创 SpringDataJPA 源码解析

SpringDataJPA是什么

2021-03-25 20:37:09 1157

原创 Java面试基础:类的实例化、静态方法、父类构造方法的执行顺序问题

public class classA { int a; public classA() { System.out.println("无参构造方法A"); } public classA(int a) { this.a = a; System.out.println("有参构造方法A"); } static { System.out.println("静态方法A"); } publ

2021-03-18 14:24:30 117

原创 RabbitMQ从入门到面试(六)

在之前的文章中我们从原理上介绍了

2021-02-05 21:53:02 131

原创 RabbitMQ从入门到面试(五)

在上篇文章中我们介绍了RabbitMQ的三种常见交换器类型的使用。今天我们在详细聊一聊生产者和消费者如何保证消息的准确到达。RabbitMQ在消费消息时分为两种模式:Push模式和Pull模式。Push模式采用的是Basic.Consume进行消费,而Pull模式调用的Basic.Get进行消费。我们常用的就是使用推模式: Consumer consumer = new DefaultConsumer(channel) { @Override public void handleD

2021-01-31 13:32:17 76

原创 RabbitMQ从入门到面试(四)

今天我们主要简单说一下其他几种交换器的使用与区别。topic交换器的使用topic交换器的路由规则和direct有点类似,由上篇文章我们可以知道direct交换器是把消息路由到RoutingKey和BindingKey完全匹配的队列中,但是topic也是将消息发送到RoutingKey和BindingKey匹配的队列中,只是可以模糊匹配。匹配规则为:RoutingKey为一个点号“.”分割的字符串,比如“com.rabbitmq.client”、“java.util.concurrent”Bind

2021-01-25 20:37:23 80

java学习资源,自己手写

java学习资源,自己手写

2023-09-20

在windows下neo4j的3.5.10版本

在windwos下neo4j的3.5.10版本,在windwos下neo4j的3.5.10版本,在windwos下neo4j的3.5.10版本,在windwos下neo4j的3.5.10版本,在windwos下neo4j的3.5.10版本

2023-06-04

图片修复11111111

图片修复

2023-03-31

训练数据1111111111111

11111111111111111111111111111111111111111111111111111111111

2022-12-03

学习资源111111111

111111111111111111111111111111111111111111111111111111111111111111111111

2022-12-03

PDF转word的可执行文件

将pdf文件转word文件

2022-08-28

redis学习资源,仅供学习使用

1231321331231111111111111111111111111111111111111111111

2022-05-25

mysql学习资源1111

mysql学习资源1111

2022-03-27

dubbo入门学习使用的程序.zip

本资源是自己在学习Dubbo时写的代码,可以直接使用

2021-03-25

guide-rpc-framework-master.zip

自己手写的RPC框架的实现

2021-02-20

我的打包工具制作安装包

该工具主要用来制作安装包

2020-12-15

Windows server 镜像中的sxs文件

在服务器安装IIS时,ASP.NET3.5无法安装,可以使用SXS文件,放到服务器中,并将路径指向sxs文件的路径

2020-06-09

socket.zip

本人亲自编写测试通过的javaIO流、pipe通道、NIO、AIO等各种socket编程代码,可以让你更加深入的体会到线程间的通信,以及同步、异步、阻塞、非阻塞等各种实现

2020-06-05

hibernate架包

hibernate完整架包下载,都是自己总结而来的,大家免费获取。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-01

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

TA关注的人

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