自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 轻松学会Java导出word,一篇文章就够了!

很多小伙伴在工作中,可能又这样一个需求:根据word模板去填充数据,变成我们想要的word文档,这是很多刚进入职场的小白都会碰到的需求。当遇上这种需求,我们可以通过这篇文章要讲的来做处理。

2023-07-11 10:25:43 5406 3

原创 JAVA核心概念:Assert断言以及如何在项目中使用Assert

Java assert关键字允许开发人员快速验证程序的某些假设或状态。

2023-03-07 19:03:04 1847 1

原创 PostgreSQL string_to_array函数的应用以及 ANY运算符的用法

学会PostgreSQL中的string_to_array和Any运算符,掌握更多的SQL知识;

2023-03-06 10:10:28 5723 2

原创 一篇告诉你Comparator.comparing的使用

一篇学会JAVASE的Comparator函数式接口以及comparing方法;

2023-02-24 17:25:35 14362

原创 常用到的SQL优化问题

对于刚刚毕业或者刚刚参加实习的同学,必须看这篇文章,保证会对自己的SQL水平或者一些进步!

2023-02-04 13:37:52 547

原创 SQL优化——limit1

还在用 select count(*) from xx where xx=?吗

2022-11-15 10:40:46 1156

原创 Springboot返回前端Json数据如何忽略某个属性

前几天,写代码遇到这样一个问题,当我们有时候传递给前端一个Json对象的时候,不想要某个属性参数,那么该怎么办呢?1.通过springboot的Controller接口传递一个json对象,但是这个json对象中显示了Password这个属性: 这肯定不是不行的,我们不能让这么重要的属性字段在前端展示出来;那么我们有没有方法解决这个问题呢?答案是:当然有啦,我们都知道Springboot默认支持的Json处理框架是:jackson;而jackson的注解@JsonIgnore可以实现这个.

2022-05-18 23:22:41 3022 1

原创 学习Git(二):分支操作

多人使用Git执行流程1.什么是分支在版本控制中, 我们为了推进多个任务,可以创建多个任务的单独分支。比如说:创建分支1,用于添加管理功能实现。创建分支2,用于添加用户功能实现。这样,并不会影响到主线分支的运行。可以把分支看做一个副本,副本的完成与否,并不影响主线的执行。2.分支的好处可以同时进行多功能开发,提高效率。在产生分支后,只要没有合并主线,分支就算产生问题错误,也不会影响到主线的运行,删除其分支重新产生分支即可。3.分支的操作命令作用git

2022-04-06 19:52:34 292

原创 thymeleaf模板获取markdown数据后,渲染到页面上(showdown.js)

我今天遇到一个问题,通过markdown输入数据保存到数据库中,然后前端无法渲染markdown数据,一直困惑了我几个小时,终于找到showdown.js插件。没渲染前:方法:1.导入showdown.js,我这里采用的CDN方式 <script src="https://unpkg.com/showdown/dist/showdown.min.js"></script>2.通过jquery获取页面上还未渲染的数据:<div id="contents" cl.

2022-03-29 21:27:44 2169

原创 学习Git(一):基础命令以及概念

什么是版本控制?版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。在我们去修改论文的时候,就会产生不同的版本,如同下图:为什么要版本控制? 简单来说就是一句话 :个人开发过渡到团队合作;下面,是本人画的一张描绘图:版本控制工具Git的工作机制工作区:就是你代码在本地磁盘上的目录位置暂存区:就是让git知道你本地代码需要提交了,先添加到暂存区保存起来。(当然我们可以把暂存区的东西进行删除)本地库:把暂存区的代码提交到本地库后,就会生

2022-03-28 18:01:45 230

原创 java实现UDP多线程咨询

首先, 我们需要明白UDP是发送的数据是以数据包的形式发送,无需建立连接,也无需考虑对方是否能够接收到数据。而我们通过多线程去实现UDP聊天,需要同时执行一个输出数据程序和一个读取用户信息的程序,采用多线程的方式同时执行这两个程序;为了更好的展示,我们给两个程序都赋上端口号和ip地址。采用多线程的方式,两个不同的用户同时执行这两个程序,从而达到我们实现UDP聊天。发送数据:public class SendUdp implements Runnable{ //定义发送的ip地址,.

2022-03-28 10:43:53 1265

原创 java实现TCP文件上传

对于TCP文件上传客户端上传文件,通过文件输出流输出,然后在服务端读取文件,并返回一个响应接收完毕的信息,客户端收到后关闭服务。上传该文件:客户端:public class Client_upload { public static void main(String[] args) { Socket socket=null; OutputStream outputStream=null; FileInputStream fileInpu

2022-03-28 10:26:57 801 1

原创 java通过TCP实现网络聊天

什么是TCP(传输控制协议)? 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议而对于tcp网络聊天而言,首先我们需要先建立连接,只有在建立连接之后,我们才能够通过tcp进行数据传输。客户端:public class Client_work { public static void main(String[] args) { OutputStream outputStream=null

2022-03-28 10:19:06 1191

原创 OpenCV和java做人脸识别

因为学校副院长带我们学习OpenCV做计算机视觉图像处理,小杨一向都是非常对于新技术都是非常追求的。在翻阅了众多大牛写的博客文章和百度上的资料后,终于简单的实现了一个通过计算机调取本地摄像头做人脸识别的功能。1.下载首先,我们要去opencv的官网下载windows系统的安装包:下载地址:https://opencv.org/releases/1.把图1下面bin目录的文件保存到图2中:2.导入依赖<!-- opencv + javacv + ffmpeg--> .

2022-03-23 21:00:15 6212

原创 ElasticSearch7.x的基本操作学习(一):概念了解

什么是ElasticSearchElasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根

2022-03-23 20:19:21 3676

原创 计算机网络之网络层总结和概述

网络层知识点网络层概述IP数据报格式功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入网络层概述注意:数据报和分组的关系:分组是一段比较长的数据,将它进行切割成一段段之后(分片)就得到数据报网络层的功能:功能1:(路由)分

2021-05-20 18:34:42 270

原创 计算机网络之数据链路层

数据链路层理解和掌握的知识点数据链路层基本概念和功能概述封装成帧帧定界(成帧的几种方法)差错控制(检错编码和差错编码)差错控制方法(CRC循环冗余校验)(重点掌握)数据链路层的流量控制和差错控制停止等待协议(ARQ协议)(重点掌握)滑动窗口协议后退N帧协议(连续ARQ协议)选择重传协议(选择ARQ协议)PPP协议和HDLC协议(重点掌握)PPP协议(点对点协议)PPP协议的帧格式(掌握):HDLC协议数据链路层基本概念和功能概述基本概念:功能概述:封装成帧封装成帧透明传输简单来说:就

2021-05-17 02:27:34 600 1

原创 物理层学习

物理层的特性首先,我们需要弄明白物理层主要任务是:解决如何在连接计算机上的传输媒体上传输数据比特流,而不是指具体的传输媒体(光纤,电缆等等)。而物理层的主要任务是确定与传输介质的接口的一些特性:机械特性:定义物理连接的特性,规定物理连接时的接口形状,规格,引线数目,引脚数目等。电气特性:指线路上信号出现的电压的范围,阻抗匹配,传输速率和距离速率等。功能特性:指某一线路上的某一电平的电压表示的意义。规程特性:表示线路的工作规程和时序关系。(各种可能事件的出现顺序)传输媒体我们需要明

2021-05-10 17:16:48 520 2

原创 第三章:数据通信基础

1.基本概念数据:传送信息的实体,通常是有意义的符号序列。信号: 数据的电磁/电气的表现,是数据在传输过程中存在的形式。通常分成两种:信源:产生和发送数据的源头信宿:接收数据的终点信道:信号的传输媒介码元:指一个固定长度的信号波形(数字脉冲),一个码元可以携带多个bit,如果是二进制码元(它的离散值为0和1两个),那么一个码元携带的bit数就是1个bit,如果是四进制码元(它的离散值种数有00,01,10,11四个),那么一个码元携带的bit数就是2个bit。信号传输速率:表示在单位时

2021-05-09 18:28:34 1707

原创 OSI参考模型和TCP/IP模型

OSI 7层参考模型名称作用应用层直接对用户主机的应用程序提供服务,提供的服务:文件传输(FTP),电子邮件(SMTP),万维网(HTTP)表示层用于处理两个系统之间交换信息的表示方式(就好比A说国语,B说法语,如何让两个人通话之间没有障碍)会话层负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接传输层负责两个主机中的进程通信,也就是端到端的通信(每一个进程有一个端口号,通过端口号找到指定的进程,传输的单位是TCP报文段或者UDP用户数据报),可靠

2021-05-08 14:00:34 456 1

原创 计算机网络的性能指标

速率速率即数据率或称数据传输率,比特率速率就是连接在计算机网络上的主机在信道上传输数据位数的速率单位为b/s(比特/秒)比如说:发送端把10个比特在1秒内发送在信道上,那么速率就是10b/s但是如果是用字节做单位:1Byte=8Bit单位为:1MB/s 1KB/s 1B/s带宽通常是指单位时间内从网络中某一点到另一点所能通过的“最高数据率”,单位为比特/秒 b/s kb/s简单来说:一个设备能传输的最高数据率,这是一种理想的速率。这种速率(带宽)只是指设备发送数据的速率(理想

2021-05-07 17:29:44 410

原创 数据交换技术(*):电路交换,报文交换,分组交换的概念,特点和优缺点以及存储转发技术概念

什么是数据交换?在计算机网络中,负责传输数据的是通信子网,通信子网由传输线路和中间的结点组成,当发送方和接收方没有直接相连时,发送方发出的数据先到达与之直接相连的中间结点,然后从中间结点传到下一个中间结点,知道到达接收方,这个过程称之为数据交换。而数据交换技术演变过程有三种技术:电路交换报文交换分组交换电路交换...

2021-05-06 14:17:20 4426

原创 Lock实现生产者消费者问题

什么是生产者消费者问题?所谓的生产者消费者问题,是通过一个容器来解决生产者和消费者的强耦合问题。通俗的讲,就是生产者在不断的生产,消费者也在不断的消费,可是消费者消费的产品是生产者生产的,这就必然存在一个中间容器,我们可以把这个容器想象成是一个货架,当货架空的时候,生产者要生产产品,此时消费者在等待生产者往货架上生产产品,而当货架满的时候,消费者可以从货架上拿走商品,生产者此时等待货架的空位,这样不断的循环。那么在这个过程中,生产者和消费者是不直接接触的,所谓的‘货架’其实就是一个阻塞队列,生产者..

2021-01-03 01:48:28 315 1

原创 Synchronized实现生产者消费者问题

首先,我们得了解什么是生产者消费者问题所谓的生产者消费者模型,是通过一个容器来解决生产者和消费者的强耦合问题。通俗的讲,就是生产者在不断的生产,消费者也在不断的消费,可是消费者消费的产品是生产者生产的,这就必然存在一个中间容器,我们可以把这个容器想象成是一个货架,当货架空的时候,生产者要生产产品,此时消费者在等待生产者往货架上生产产品,而当货架满的时候,消费者可以从货架上拿走商品,生产者此时等待货架的空位,这样不断的循环。那么在这个过程中,生产者和消费者是不直接接触的,所谓的‘货架’其实就是一个阻..

2021-01-03 01:18:51 705

原创 synchronized和Lock的区别

synchronized和Lock的区别有哪些?synchronized是一个关键字,而Lock是一个类;synchronized无法获取锁的状态,而Lock可以去判断是否获取到了锁;synchronized执行完后会自动释放锁,而Lock需要手动去释放,如果没有释放锁,就会造成死锁的现象!synchronized:线程A获取到了锁,这时候线程B只能慢慢等待;Lock:不一定会一直等待(Lock.trylock();)。synchronized:可重入锁,非公平,不可中断;Lock:可重入锁.

2020-12-28 14:18:40 166

原创 简单了解Lock

Lock是一个接口,他有三个实现类,分别是:ReentrantLock, ReentrantReadWriteLock.ReadLock, ReentrantReadWriteLock.WriteLockLock是如何加锁的查看jdk1.8的官方文档给出的答案:查看源码,发现Lock默认也是非公平锁(synchronized也是非公平的):想要设置成公平锁,那么可以在可重入锁的对象中添加一个true,会发现底层方法发生了变化:public ReentrantLock(boolean f.

2020-12-28 13:58:28 231 2

原创 多线程中wait();和sleep();的区别

1. 来自不同的类wait():来自Object类;sleep():来自Thread类;2.关于锁的释放:wait():在等待的过程中会释放锁;sleep():在等待的过程中不会释放锁3.使用的范围:wait():必须在同步代码块中使用;sleep():可以在任何地方使用;4.是否需要捕获异常wait():不需要捕获异常;sleep():需要捕获异常;...

2020-12-18 10:47:09 97

原创 回顾多线程基础

首先我们要明白什么是进程,什么是线程?进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)什么是多线程?1.多进程是指操作系统能同时运行多个任务(程序)。2.多线程是指在同一程序中有多个顺序流在执行.3.很多线程都是模拟出来的,真正的多线程指的是多个cpu,即多核,如服务器。4

2020-12-15 16:28:53 80

原创 学习Redis主从复制简单原理

主从复制的简单概念Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点)

2020-10-20 01:14:22 87

原创 带你了解Redis发布订阅

Redis发布订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。1.订阅发布图:发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。Redis的这种发布订阅机制与基于主题的发布订阅类似,Channel相当于主题。2.Redis发布订阅命令3.测试我们先演示两个用户订阅了同

2020-10-15 19:10:43 134

原创 学习Redis持久化——AOF方式

AOF(Append Only File)什么是AOF?与快照持久化通过直接保存 Redis 的键值对数据不同,AOF 持久化是通过保存 Redis 执行的写命令来记录 Redis 的内存数据。理论上说,只要我们保存了所有可能修改 Redis 内存数据的命令(也就是写命令),那么根据这些保存的写命令,我们可以重新恢复 Redis 的内存状态。AOF 持久化正是利用这个原理来实现数据的持久化与数据的恢复的简单来说,就是以日志的形式保存的写命令放在一个.aof的文件中,只许追加文件不可以改写文件,类

2020-10-15 14:53:13 217

原创 Redis之.RDB文件操作

Redis持久化操作我们直到,Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器的进程退出,服务器中的数据库状态也会消失,所有redis提供了持久化功能!RDB(Redis DataBase) 什么是rdb?在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存中。redis的父进程会(fork)一个子进程来进行持久化,会先将一个数据写入临时文件中,等到持久化过程结束了,再用这个临时文件替换掉上一次持久化好的文件。在这个过程中,父进程是不

2020-10-14 22:45:14 2922

原创 Redis——Redis.conf文件简单详解

Redis.conf 我们启动Redis的时候,需要通过配置文件来启动!Redis.conf中可以包含其他的conf文件,就类似于Spring中的注解@Import网络通用 GENERAL快照我们直到Redis是内存数据库,如果没有持久化的化,内存中的数据就会断电及失!所有我们就对其进行持久化操作。 快照:在规定的时间内,执行了多少次操作,则会持久化到文件中什么文件?.rdb文件.aof文件安全SECURITY redis默认是没有密码的

2020-10-14 20:29:15 207

原创 Springboot整合Redis以及自定义Redis模板(Redis Template)

我们先新建一个Springboot项目注意:在Springboot2.X后,我们的原来使用的Jedis已经被替换成了lettuce这里随便提一下为什么Springboot要使用lettuce?Jedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全。lettuce:采用的netty,实例可以在多个线程中共享,不存在线程不安全的情况,2. 在Springboot的全局配置文件中,配置Redis一些二基本的连接配置 我们先在Springboot的自动配置类中找到Sp.

2020-10-13 16:59:32 2495

原创 Redis的基本事务操作以及Redis实现乐观锁

事务在我们学习关系型数据库MYSQL的时候,就了解过Mysql的事务的特性(ACID)。Nosql中redis的单条命令是具备原子性的, 但是在Redis事务中式不具备原子性的!也没有隔离级别的概念!Redis的事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行的过程中,会按照顺序执行! ------队列 set set set 执行--------Redis事务的特性:一次性,顺序性,排他性!所有的命令在事务中,并不是之间执行!而是通过发起执行命令的时候才会执

2020-10-09 00:44:17 104

原创 Redis:三种特殊数据类型(三):Bitmap

Bitmaps位存储应用场景:统计用户信息:活跃,不活跃!登录,未登录!打卡和未打卡!只有两种状态的都可以使用Bitmaps!例:我们需要统计一周的打卡情况。

2020-10-08 23:43:05 84

原创 Redis:三种特殊数据结构类型(二):Hyperloglog(用作基数统计的算法)

什么是基数?比如A:{1,3,5,7,8,7}; B:{1,3,5,7,8}’基数(不重复的元素)=5,可以接受误差!简介官方早在Redis2.8.9的时候就更新出了Hyperloglog数据结构。Redis Hyperloglog 基数统计的算法!比如:网页的UV(一个人访问同一个网站多次,但是还是算作一个人!)传统的方式:set保存用户的id,然后可以统计set中元素的数量作为判断标准!这种方式保存大量的id,就会比较麻烦,占用大量的空间!而Hyperloglog的优点:.

2020-10-08 23:05:54 86

原创 Redis:三种特殊数据类型(一):geospatial地理位置

geospatial地理位置geospatial地理位置在Redis3.2版本就已经推出了!这个功能可以推算出两地的地理位置的信息,两地之间的距离,方圆几里的人!GeoADD命令(添加地理位置的坐标。)Geopos命令(获取地理位置的坐标。)Geodist命令(计算两个位置之间的距离。)会发现,偏差仅仅只有十几千米,说明还是很准的!Georadius命令:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。一般,在实际开发中,我们手机上查找附近的人,就可以使用到

2020-10-08 19:12:57 208

原创 Redis:Zset有序集合类型常用命令详解

Zset(有序集合)在set的基础上,增加了一个值 zset k1 score1(序号) v1Zadd命令Zrange命令ZADD key score1 member1 [score2 member2]:向有序集合添加一个或多个成员,或者更新已存在成员的分数。ZRANGE key start stop [WITHSCORES]:通过索引区间返回有序集合指定区间内的成员Zrangebyscore命令ZRANGEBYSCORE key min max [WITHSCORES]

2020-10-08 18:31:09 143

原创 Redis:Hash哈希类型详解

Hash(哈希)hash类型,底层就是一个key-map集合本质上和String类型没有太大区别,只是hash类型的value是一个map集合Hset命令Hget命令Hmset命令和Hmget命令Hgetall命令HGET key field:获取存储在哈希表中指定字段的值。HGETALL key:获取在哈希表中指定 key 的所有字段和值HMSET key field1 value1 [field2 value2 ]:同时将多个 field-value (域-值)对设置到哈希表 k

2020-10-08 17:35:30 186

jquery-1.11.3.js.zip

jquery-1.11.3的jar包,有 :jquery-1.11.3.min.js jquery-1.11.3.js

2020-04-25

空空如也

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

TA关注的人

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