2 rabbit-bf

尚未进行身份认证

暂无相关简介

等级
TA的排名 14w+

Java中stream流

1、什么是stream流 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只...

2020-05-25 18:41:17

Git入门知识和具体操作

1、Git是什么Git是目前世界上最先进的分布式版本控制系统。2、Git安装①下载得到安装包,并运行②选择软件的安装位置③选择需安装的组件(默认即可,直接下一步)④选择使用的编辑器(默认即可,直接下一步)⑤环境变量调节⑥使用OpenSSH,直接下一步即可⑦使用OpenSSL库⑧配置命令行会话(默认即可)⑨配置终端(默认即可)⑩配置额外的选项(默认即可)安装完成在桌面空白处右键鼠标,若出现“Git GUI Here

2020-05-20 16:38:01

TCP连接释放——四次握手

1、数据传输结束后,通信的双方都可释放连接。现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。2、B 发出确认,确认号 ack = u + 1,而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程,从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。B 若发送数据,A 仍要接收。3、若 B 已经没有要向 A 发送的数据,其.

2020-05-14 13:07:01

TCP连接建立时三次握手详解

1、概述 TCP连接建立过程中要解决以下三个问题: (1)要使每一方能够确知对方的存在。 (2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。 (3)能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。 TCP 连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。 2、三次握手过程...

2020-05-14 12:27:35

TCP报文段首部格式介绍

1、TCP报文段首部格式tu2、头部各个字段介绍(1) 源端口和目的端口: 源端口和目的端口字段各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 (2)序号字段 序号字段占 4 字节。要明确的是:TCP是面向字节流的(UDP是面向报文的),也就是说TCP 连接中传送的数据流中每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 (3)确认号 确认号字段占 4..

2020-05-14 10:44:57

基于springboot+redis+rabbitmq的高并发秒杀系统实现-5

上一篇讲到秒杀过程,在后台的秒杀方法miaosha中通过sender.sendMiaoshaMessage(mm)向队列中发送了mm。1、上面的mm是封装类MiaoshaMessage的一个实例对象,此类中封装了user和商品goodsId。public class MiaoshaMessage { private MiaoshaUser user; private long goodsId; // set 和 get方法}2、sendMiaoshaMessage方法如下。通过rabb

2020-05-13 16:08:05

基于springboot+redis+rabbitmq的高并发秒杀系统实现-4

上篇讲述到了商品详情goods_detail.html页的展示问题,此篇开始讲述秒杀过程1、点击详情页中的“秒杀”按钮,会触发onclick事件getMiaosshaPath()。<button class="btn btn-primary" type="button" id="buyButton"onclick="getMiaoshaPath()">立即秒杀</button>2、getMiaosshaPath()方法如下。本秒杀系统在设计的时候,为了安全问题,隐藏了秒

2020-05-13 14:54:27

基于springboot+redis+rabbitmq的高并发秒杀系统实现-3

上文讲到了登录成功,然后开始往后台/goods/to_list跳转。1、/goods/to_list方法如下。注意此处使用了thymeleaf模板引擎,通过引擎生成了html文件。@RequestMapping(value="/to_list", produces="text/html")中的produdes=“text/html”表示此方法将返回html格式的文件。在list方法中,先通过goodsSevice方法查询到商品列表数据。然后把列表数据存入到上下文SpringWebContxt中,最后再把

2020-05-13 11:10:43

基于springboot+redis+rabbitmq的高并发秒杀系统实现-2

,1、登录,在浏览器地址栏输入127.0.0.1:8080/login/to_login,会执行下面类LoginController中的toLogin方法,进而跳转到login.html界面 @RequestMapping("/to_login") public String toLogin() { return "login"; }2、login.html文件如下,首先是一个表单,两个输入框:请输入手好号码和请输入密码,还有两个按钮:重置和登录。<form name="

2020-05-13 08:37:52

基于springboot+redis+rabbitmq的高并发秒杀系统实现-1

目录——项目简介——项目搭建——运行测试1、项目简介 本项目使用springboot框架构建一个秒杀系统,实现了商品列表查询、商品详情查看、商品秒杀功能和订单详情查看。重点在于秒杀功能。使用的技术栈包括:数据库:MySQL后台:SpringBoot前端:thymeleaf,jquery,javascript部署服务器:Linux其他技术:r...

2020-02-11 15:38:05

Linux中安装HAProxy

1、下载压缩包haproxy-1.8.25.tar.gz,然后上传到Linux服务器的usr/local目录下2、解压压缩文件后产生haproxy-1.7.8文件夹,命令:tar -zxvfhaproxy-1.8.25.tar.gz。3、为了方便,修改解压后的文件名。命令:mvhaproxy-1.7.8haproxy。4、编译安装,命令:makeTARGET=generic prefix=/usr/local/haproxy5、配置环境变量,命令:vim/etc/profile。...

2020-05-11 14:47:04

Linux中安装RabbitMQ(记录踩的坑)

1、感触(1)必要的总结是非常必要的。必要的总结是非常必要的。必要的总结是非常必要的。也踩了写坑,但是没有记录和总结,很长时间过去了,又要花大量时间去重新采坑,十分低效。(2)注意,注意,注意,此博文是基于我的“电脑生态”安装的,就是说,本博文记录的方法,是基于我的硬件、软件安装成功的,换个环境,可能就会出现问题,所以要有选择性的尝试。毕竟,大部分方法和步骤都是类似的。(3)不记录理论,直接记录操作过程。两个步骤,安装erlang(rabbitmq运行环境)和安装rabbitmq。(4)我的

2020-05-10 20:51:48

MySQL数据库中的锁知识点梳理

1、概述锁是网络数据库中的一个非常重要的概念,当多个用户同时对数据库并发操作时,会带来数据不一致的问题。所以,锁的出现主要用于多用户环境下保证数据库完整性和一致性。并发控制的主要采用的技术手段:乐观锁、悲观锁和时间戳。2、锁的分类(1)从数据库系统角度分为三种:排他锁、共享锁、更新锁。(2)从开发人员角度分为两种:一种是悲观锁,一种乐观锁。顾名思义,悲观锁很悲观,每次去拿数...

2020-05-08 11:21:14

MySQL中的两种存储引擎MyISAM和Innodb

本文目录: 1、概述 2、MyISAM 3、Innodb 4、区别 5、如何选择1、概述 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。现在...

2020-05-08 10:44:22

Java中equals()和hashCode()关系

1、equals和hashCode的作用(1)equals()equals方法是超类Object中的方法,用来判断两个对象是否相同,默认情况下是通过判断对象间的内存地址来决定是否相同。重写后,可以根据内容是否相同来决定对象是否相同。(2)hashCodea、概述 hashCode()方法返回的就是一个数值,也即哈希码。这个哈希码的作用是确定该对象在哈希表中的索引位置...

2020-05-07 16:45:06

Java中equals和==详解

目录: 1、==作用 2、equals作用 3、小结1、==作用==是判断两个操作数是否相等。如果操作符两侧都是基本数据类型,比如是java中的8中基本数据类型byte,short,int,long,char,float,double和boolean之一的话,则比较的是数值是否相等。如果操作符两侧是引用类型(类)的话...

2020-05-07 15:03:19

Java中接口与抽象类详解

1、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstractvoidfun();   抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。  在《JAV...

2020-05-07 12:34:17

Java中多态梳理以及代码示例

1、什么是多态所谓多态,就是指一个引用(类型)在不同的情况下的多种状态。也可以理解为,多态是指通过指向父类的指针,来调用在不同子类中实现的方法。详细来说,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。...

2020-05-07 09:17:27

Java异常相关知识点和面经梳理

1、异常类在java中,异常对象都是派生于Throwable类的一个实例。当然,如果内置的异常类不能够满足需求的话,用户可以创建自己的异常类。下图是异常类的层次结构图:由图可知,所有的异常都是由Throwable继承而来,然后在下一层分解成两个分支:Error和Exception。Error类描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该跑出这种类型的变量。开发人...

2020-05-06 20:22:38

每日算法-1

1、LeetCode第46题:全排列给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]](1)思路核心思想是在一个排列的基础上,1,2,3,按照规律交换位置,得到新的排列。比如1和2交换:2,1,3...

2020-05-06 17:06:53

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。