自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMq入门

文章目录1. RocketMq整体介绍2. RocketMq概念模型3. RocketMq结构4. RocketMq环境搭建5. RocketMq控制台使用6. RocketMq - 生产者使用7. RocketMq消费者使用8. RocketMq四种集群环境构建9. 主从模式集群环境构建与测试1. RocketMq整体介绍RocketMq是一款分布式、队列模型的消息中间件支持集群模型、广播模型、负载均衡、水平扩展能力支持亿级别的消息堆积能力采用零拷贝的原理、随机写盘、随机读丰富的Api使用

2021-03-29 15:56:00 160

原创 Java常用算法

文章目录1. 二分查找算法2. 冒泡排序算法3. 插入排序算法4. 快速排序算法(优化的冒泡排序)5. 希尔排序(改进版的插入排序)6. 归并排序算法7. 桶排序算法8. 基数排序算法9. 其他算法1. 二分查找算法二分查找又叫做折半查找,要求查找的序列有序,每次查找都取中间位置的值和待查关键字比较,如果中间的值比待查关键字大,则在序列的左半部分继续执行该查找过程。如果中间位置的值比待查关键字...

2020-04-12 02:08:43 809

原创 Java并发多线程学习(四)线程池

线程池new Thread弊端每次new Thread新建对象,性能差线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM缺少更多功能,如更多执行,定期执行,线程中断线程池的好处重用存在的线程,减少对象的创建,消亡的开销,性能好提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞提供定时执行,定期执行,单线程,并发数控制等功能...

2020-04-04 01:00:06 196

原创 Springboot前后端分离搭建博客(附源码)

页面展示个人博客传送门 源码地址在最下方首页展示个人信息标签创作页面博文查看页面项目需求功能需求编写博文(仅对网站管理员开放)个人介绍访客注册登录根据标签分类博文用户评论博文用户留言板安装部署此项目为maven项目,可用maven打成jar包并运行MySQL版本为8.0、Java版本为1.8项目设计项目构建:Mavenweb框架...

2020-01-18 14:35:02 1433

原创 Deepin15.10安装mysql 8.0

在deepin15.10中安装配置mysql 8.0前言: 因为自己Ubuntu18.04的系统由于自己的不当操作(其实就是装了一个插件), 导致图形化界面崩溃,幸好所有代码和sql文件备份都在github项目里边,同学又给我推荐了deepin系统,试了一下还不错,但是mysql8.0安装却难受的要死,网上好多教程都没能解决我的问题.切入正题: 在deepin里边安装配置 mysql...

2020-01-08 10:36:44 3638 5

原创 springboot+mysql 实现评论回复功能

1. 数据库结构字段名类型注释comment_idbigint主键iduser_Idbigint用户idblog_idbigint博客文章idreply_user_Idbigint被回复用户idpidbigint父idcomment_msgvarchar回复内容creat_timevarchar创建时间其...

2019-12-22 01:02:23 8606 19

原创 Mysql建表时选择数据类型的一些技巧

文章目录1. 选择数据类型的原则2. 各种数据类型的对比选择1. 整数类型2. 实数类型3. 字符串类型4. BLOB和TEXT类型5. 使用ENUM代替字符串类型1. 选择数据类型的原则1. 更小的通常更好一般情况下,尽量使用可以储存数据的最小数据类型,更小的数据类型通常更快,因为占用更少的磁盘、内存和cpu。2. 简单就好简单数据类型的操作通常需要更少的CPU周期,可提高处理数据速度...

2019-11-27 21:22:48 860

原创 Java多线程并发学习 (三)线程安全-并发容器 J.U.C及

线程安全-并发容器 J.U.CGithub实例传送门并发容器ArrayList -> CopyOnWriteArrayList当有新元素添加到CopyOnWriteArrayList,先从原有的数组里边拷贝一份出来,然后在新的数组上进行写操作,写完之后将原来的数组指向新的数组所有的add操作都是在锁的保护下进行的缺点:会另外开辟空间不能进行实时读的需求多用于...

2019-10-31 19:12:55 173

原创 Java多线程并发学习(二) 线程安全策略

线程安全策略Github演示代码传送门将对象设置成不可变对象不可变对象创建需要的条件对象创建后其状态就不能修改对象的所有域都是final类型对象是正确创建的(对象创建时,this引用没有逸出)参考Stringfinal关键字修饰类:不能被继承,类中的方法都会是final。修饰方法:锁定方法不能被继承类修改效率高一个类的private方法会被隐式的指定为fi...

2019-10-30 19:39:29 108

原创 Java多线程并发学习(一)线程安全性

线程安全性github学习笔记传送门df: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么称这个类是线程安全的原子性:提供了互斥访问,同一时刻只能有一个线程来对他进行操作可见性:一个线程对主内存的修改可以及时的被线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于...

2019-10-28 10:08:02 90

原创 记我的1024

眼瞅着就到了1024,一个学了Java两年的小白,也变成了一条面向百度编程的咸鱼,今天感觉是今年最充实的一天,从早上九点开始就在一直忙活,到了现在才想起来CSDN今天发博客是有勋章的,所以来水一哈发发牢骚 ^ _ ^今天的工作算是比较多的,列个List 修改项目代码 部署服务器数据库 跟前端对接另外一个项目(今天双屏一个屏一个项目是真的酸爽) 跟老师谈团队发展方向 帮师兄安排人手接...

2019-10-24 20:16:02 344

原创 Linux 常用命令

这里是引用find1. 在指定目录下查找文件find path [options] paramsex:find -name "question.docx"./exam/question.docx在目录下寻找 “question.docx”的文件。得到结果为 ./exam/question.docx;2. 全局搜索find / -name "question.doc...

2019-10-09 16:29:38 135

原创 Redis (五) Redis集群

为什么要使用redis集群在处理高并发请求同时,从海量数据中查询满足条件的数据,并快速响应如何从海量数据里快速找到所需要的数据分片:按照某种规则去划分数据,分散在多个节点上,通过分片降低当节点服务器的压力常规的按照哈希划分无法实现节点的动态增减一致性哈希算法对232 取模,将哈细致空间组织成虚拟的圆环...

2019-10-08 21:15:22 87

原创 Redis (四) 为什么要使用Pipeline以及redis的主从同步

使用PIpeline的好处pipeline和linux的管道相似cat /tmp/redisTest.txt | redis-cli -h [127.0.0.1] -p [6379] --pipe一次性传入,批量执行redis基于请求/响应模型,节省请求处理需要一一应答PipeLine批量执行指令,节省IO往返的时间有顺序依赖的指令建议分批发送Redis的同步机制主...

2019-10-08 21:05:09 451

原创 Redis (三) Redis如何做持久化

Redis如何做持久化为什么要做redis持久化redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。Redis如何做数据持久化RDB(快照)持久化:保存某个时间点的全量数据快照找到redis.conf文件从文件中找到 savesava 900 1 在900s以内有一条是写入指令,则触发备份,产...

2019-10-08 20:18:22 269

原创 Redis (二) Redis的数据类型及常见问题

供用户使用的数据类型1. StringRedis的字符串是可修改的动态字符串,内部结构类似于ArrayList,K-V键值对。当字符串长度小于1MB时,扩容是加倍现有的空间。当字符串长度超过1Mb,扩容时一次只会多扩1MB的空间。字符串最大长度为512MB,二进制安全可包含任何数据,例如jpg图片或者序列化的对象常见用途:  存储用户信息。存储对象时,将用户对象使用JSON序列化成字符...

2019-10-08 19:35:01 179

原创 Redis (一) 为什么要使用Redis及Redis快速的原因

主流应用架构请求数据在缓存层直接返回缓存层没有数据则向存储层(数据库)穿透查询数据库将查询好的数据回写给缓存层、方便下次客户端请求数据时直接从缓存层返回 (回种)将回种的数据返回给客户端熔断机制:当存储层挂掉或者无法提供服务时、可让客户端的请求直接打在缓存层上然后直接返回缓存中间件——Memcache和Redis的区别Memcache支持简单数据类型不支持数据持久化存...

2019-10-06 20:20:16 500

原创 数据库 (五) Sql语法

关键语法GROUP BY分组满足SELECT字句中的列名必须为分组列或列函数列函数对于group by 子句定义的每个组各返回一个结果HAVING通常于GROUP BY子句一起使用WHERE过滤行,HAVING过滤组出现在同一sql顺序:where > group by > having统计相关:count、sum、max、min、avg题一:...

2019-10-05 20:45:44 105

原创 数据库 (四) 锁

MyISAM与InnoDB关于锁方面的区别是什么MyISAM默认使用表级锁,不支持行级锁InnoDB默认用的行级锁,也支持表级锁数据库事务的四大特性事务隔离级别以及各级别下的并发访问问题InnoDB可重复读隔离级别下如何避免幻读RC,RR级别下InnoDB的非阻塞读如何实现...

2019-10-05 20:12:38 203 1

原创 数据库 (三) 深入理解索引

密集索引(聚集索引)和稀疏索引(非聚集索引)的区别密集索引文件中的每个搜索码值都对应一个索引值稀疏索引文件只为索引码的某些键建立索引项由于密集索引决定了表的物理排列顺序,一张表只能有一个物理排列顺序,所以一张表只能创建一个密集索引MySQL两种存储引擎中索引的区别InnoDB若一个主键被定义,该主键则作为密集索引若没有主键被定义,该表的第一个唯一非空索引作为密集索引...

2019-10-04 16:48:34 134

原创 数据库 (二) 优化数据库索引

二叉树二叉查找树的特点若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左右子树也分别为二叉查找树查找操作为二分查找  查找效率为O(logn)缺点:最坏的情况下,构成二叉树查找树变为单支树,树的深度为n,其查找时间复杂度与顺序查找一样为O(n)B-TreeBTree特点根节点至少包括两个孩子...

2019-10-02 14:30:27 105

原创 数据库 (一) 数据库架构

重点如何设计一个关系型数据库数据库最主要的功能是储存我们的数据,因此需要一个存储模块来存储数据、类似OS文件系统,将数据持久化存入磁盘中光有存储还不够、需要组织运用数据。因而需要程序实例存储管理模块:对数据的格式以及文件的分割进行统一管理,即把物理数据通过逻辑的形式表现出来。如何优化存储性能磁盘的IO速率是程序执行速度的瓶颈,为了执行速率,需要尽可能的减少IO,一次IO读取...

2019-10-01 13:15:22 755

原创 计算机网络 (五) Socket

Socket简介Socket是两台主机之间的一个连接。它可以完成7个基本操作:连接远程机器发送数据接收数据关闭连接绑定端口监听入站数据在绑定端口上接受来自远程机器的连接Socket通信流程实例TCP实现服务端代码public class TcpServer { public static void main(String[] args) thr...

2019-09-26 21:09:46 129

原创 计算机网络 (四) HTTP协议

超文本传输协议HTTP的主要特点应用层协议常基于TCP的连接方式支持server/client模式简单快速客户端向服务端发送请求的时候,只需传输请求的方法(常用方法:get、post)与路径每种方法规定了客户与服务器联系的类型不同由于http简单,使得http程序规模小,因而通信速度很快灵活http允许传输任意类型的数据,以content-type加以标记无...

2019-09-22 16:11:21 481

原创 计算机网络 (三) TCP的滑动窗口

RTT和RTORTT : 发送一个数据包到收到对应的ACK所花费的时间RTO : 重传时间间隔TCP的滑动窗口窗口:窗口大小指的是无需等待确认应答就可以继续发送数据的最大值. 因为这个窗口不断向后滑动, 所以叫做滑动窗口. 操作系统内核为了维护这个滑动窗口, 需要开辟发送缓冲区来记录当前还有哪些数据没有应答 只有ACK确认应答过的数据, 才能从缓冲区删掉. TCP使用滑...

2019-09-18 14:53:33 375

原创 计算机网络(二) UDP协议以及UDP和TCP的区别

UDP简介UDP报文格式UDP特点面向非连接不维护连接状态,支持同事向多个客户端传输相同的消息数据包报头只有8个字节,额外开销小没有拥塞控制,吞吐量只限于数据生成速率、传输速率以及机器性能控制尽最大努力交付,不保证可靠交付,因此主机不需要维持复杂的链接状态表UDP面向报文,不对应用程序提交的报文信息进行拆分或者合并TCP和UDP的区别TCP面向连接、UDP面向无连接...

2019-09-18 13:15:03 145

原创 Springboot2.0项目加载静态资源显示404/401

文件位置:经过文件上传后保存在本地的一个upload_test文件夹中配置WebConfig实现WebMvcConfigurer类@Configurationpublic class WebConfig implements WebMvcConfigurer {}重写addResourceHandlers方法@Override public void addResource...

2019-09-14 18:26:34 2946 3

原创 计算机网络(一)TCP三次握手以及四次挥手

1. 计算机网络分层OSI模型物理层数据链路层网络层传输层会话层表示层物理层:定义了物理设备的标准,传输比特流(二进制数据转换为强弱不同的电流,到达目的后再转换为机器码)数据链路层:定义了如何格式化数据以及如何传输,提供错误检测以及纠正,将比特数据转换为帧网络层:将网络地址翻译为对应的物理地址,并决定将数据从发送方路由到接收方,选择最佳路由。IP协议,IP数据包传输层:接...

2019-09-14 18:17:24 345

原创 springboot @Value 在application文件中读取出来的值为null

application.ymlupload: upload-dir: "/home/hobo/upload_test"上传文件工具类@Value("${upload.upload-dir}")private static String path;这样读取的path为null,原因是static 修饰的属性为类属性 在赋值前就已经加载,所以无法赋值,String类型默认为null...

2019-08-16 16:57:29 1465

原创 数据库主键为字母编号+数字,并且需要自增

业务需求: 数据库主键为字母+数字 主键数字自增添加数据库结构mybatis部分代码 <select id="getId" resultType="java.lang.String"> SELECT IFNULL(( select tube_id from tp_tube where tube_id=(select tube_id fro...

2019-07-23 22:19:29 5567 3

原创 前后端分离——利用内网穿透实现不在一个局域网下使用swagger-ui调用API接口文档

最近有个项目,功能繁多并且需要两个后端和两个前端同学进行开发(看到数据库三十多张表心里一阵抽搐)。因为暑假几个同学早已离校,原来本地测试接口是在同一个局域网下进行的、并且利用swagger-ui实现后端自动生成API接口文档、这样一来就增加了开发难度和开发周期,但这些能难道聪明的程序猿吗 (手动狗头),刚好因为开发微信小程序的原因我想起还有一个内网穿透的工具----natapp,抱着试试看的想法花...

2019-07-23 18:55:18 5291 8

原创 springboot+springsecurity+阿里云短信服务验证实现注册登录

使用springboot+security+Aliyun短信服务实现注册登录为了实现个人博客部分的登录注册,我采用了阿里云短信服务发送验证码,后端比对验证码的方式完成注册,现在功能还不完全,以后这个功能可以用于修改密码等需要验证用户身份的地方。阿里云短信服务开通短信服务点击进入阿里云官网进入控制台 左侧选择产品与服务,搜索短信选择国内签名,创建自己的签名和模板 一般审...

2019-06-21 21:11:55 3002 2

原创 解决 Clone failed RPC failed;

git clone时RPC failed; curl 54 transfer closed with outstanding read data remaining原因: 缓冲区溢出解决办法: 命令行输入git config http.postBuffer 524288000执行上面命令如果依旧clone失败,考虑可能原因2:网络下载速度缓慢解决办法:命令行输入git confi...

2019-05-09 22:53:49 1353

原创 springboot+mybatis+security搭建个人博客的第二天(小白开发经验分享)

今天是搭建博客系统的第二天。完成的工作量比较少。上午对接了一台外卖小票打印机(另一个项目,github可参考微信外卖小程序),下午上课,现在感觉发际线都遭不住了。到目前为止,个人正式参与开发的项目只有一个,即微信外卖小程序。现在已经到前后端对接测试接口的部分,因为甲方的原因工期一直延长…另外还有几个以学习的目的参与其中的项目,一个团队信息管理系统(未开发完)、一个学校的开放性试验管理系统(学...

2019-04-23 19:58:02 223

原创 Springboot+mybatis+security搭建个人博客网站的第一天(用户登录)

从零开始,使用springboot+mybatis+security搭建个人博客的第一天

2019-04-22 22:25:04 468 2

原创 用Java实现PV操作——父亲女儿吃水果问题

在学习操作系统的进程的同步操作中,老师有道实验题,要求使用信号量完成父亲女儿吃水果问题。基于C系语言对我的不友好,我询问了老师能否使用Java实现(因为Java里边好多方法都是现成的,不用自己写~~),距离学习Java线程已经过了快一年,刚好复习复习。【问题描述】桌上有一空盘,最多允许存放一个水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。 试用P、V操作实现爸爸...

2019-04-17 20:07:50 6191

原创 微信小程序开发——微信授权登录

开发工具前端微信小程序开发工具后端idea 2018.3 +mysql8.0后端技术栈 ----Springboot+mybatisps:因为我是后端开发 所以只能写后端。。开发阶段一 准备账号邮箱注册微信公众平台小程序 !!! 着重强调 是小程序注册 !!!注册链接:微信公众平台注册完成之后 ,在开发-开发设置里边可以看到appid和secret,注...

2019-03-24 21:44:12 1179 2

空空如也

空空如也

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

TA关注的人

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