自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我能在河边钓一整天的鱼

欢迎来到我的酒馆

  • 博客(94)
  • 资源 (1)
  • 收藏
  • 关注

原创 JDK9中对集合中添加元素的优化(of方法)

使用of方法的注意事项

2020-03-30 21:49:39 166

原创 Java中的Hashtable集合

什么是Hashtable集合java.util.Hashtable<K,V>集合继承了Map接口。Hashtable的底层也是一个哈希表,是一个线程安全的集合,是单线程的集合,速度慢,而HashMap是一个线程不安全的集合,是多线程集合,速度快。HashMap集合可以存储null键,null值。Hashtable和Vector集合一样,在jdk1.2版本之后...

2020-03-30 21:32:35 321

原创 Java中的LinkedHashMap集合

什么是LinkedHashMap集合LinkedHashMap集合继承了HashMap集合,底层是哈希表+链表(记录元素顺序)。LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序一致。...

2020-03-30 21:19:28 173

原创 Java中的HashMap集合

什么是HashMap集合HashMap集合继承了Map接口,HashMap集合底层是哈希表,jdk1.8之前结构是数组+单向链表;1.8之后结构是数组+单向链表/红黑树(链表长度超过8)。HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致HashMap存储自定义类型键值1.Key是String类型,value是自定义类型...

2020-03-30 21:13:10 197

原创 Java中的Map集合

目录什么是Map集合Map集合的子类EntryMap集合的常用方法1.把指定的键值对添加到Map集合中2.根据指定的键删除对应的键值对3. 根据指定的键返回对应的值4.判断集合中是否包含指定的key5.通过keySet键找值的方式遍历Map集合6.通过entry对象找键值对的方式遍历Map集合什么是Map集合1.Map集合是一个双列集...

2020-03-30 20:47:56 1558

原创 Java之Collections集合工具类

java.utils.Collections是集合工具类,用来对集合进行操作,常用方法如下1.往集合中添加多个元素ArrayList<String> list = new ArrayList<>();Collections.addAll(list, "a","b","c");...

2020-03-30 17:59:11 138

原创 Java中的LinkedHashSet集合

LinkedHashSetLinkedHashSet集合继承了HashSet集合。它的底层是一个特殊的哈希表。它的哈希表由(数组+链表/红黑树+链表)组成,作用是保证了元素的有序性。HashSet<String> set = new HashSet<>();set.add("www");set.add("www");set.add(...

2020-03-25 21:48:01 202

原创 Java中的HashSet集合

目录HashSet集合存储数据的结构(哈希表)哈希值哈希表HashSet集合的特点Set集合不允许存储重复元素的原理HashSet存储自定义类型元素HashSet集合存储数据的结构(哈希表)哈希值哈希值是一个十进制的整数,由系统随机给出。哈希值也就是对象的地址值,是一个逻辑地址,模拟出来的地址,不是数据实际存储的物理地址。在Object类中有...

2020-03-25 21:00:30 284

原创 Java的Set集合

Set集合set接口有两个特点1.不允许存储重复的元素2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历

2020-03-25 20:03:05 147

原创 Java中的Vector集合

Vector集合这个集合是java最早的一个集合,它的底层是一个数组。它采取的是单线程,而ArrayList采取的是多线程。ArrayList的出现很快就取代了Vector,java1.2开始此集合改进为实现List接口,使它成为了Java Collections Framework的一员。...

2020-03-25 19:19:16 246

原创 Java中的LinkedList集合

LinkedList特点1.底层是一个链表结构,查询慢,增删快2.里面包含了大量操作首尾元素的方法3.多态形式不能用LinkedList特有的方法常用方法public void addFirst(E e); //将指定元素插入此链表的开头public void push(E e); //将元素推入此链表的开头public void...

2020-03-25 19:12:29 144

原创 Java之List集合

List集合List集合的所处位置List集合的特点1.首先List是一个接口。存储的是有序的集合,存储元素和取出元素的顺序是一致的2.List集合存储时有索引,包含了一些带索引的方法3.List集合允许存储重复的元素...

2020-03-25 18:50:50 178

原创 与集合有关的数据结构

目录栈队列数组链表红黑树栈队列数组链表红黑树

2020-03-25 18:09:57 148

原创 Java中的泛型

目录什么是泛型使用泛型的好处定义和使用含有泛型的类定义和使用含有泛型的方法定义和使用含有泛型的接口泛型通配符什么是泛型泛型的本质是参数化类型。它指的是一个未知的数据类型。当我们创建对象的时候会确定泛型的数据类型。泛型的数据类型一经确立,必须都要用统一的类型。另外,泛型只能是引用类型或包装类不能是基本类型 。使用泛型的好处...

2020-03-25 15:47:41 158

原创 Java之Collection集合、Iterator迭代器、增强for循环

目录Collection集合集合与数组的区别集合的家族Collection集合的常用方法Iterator迭代器为什么要使用迭代器?迭代器的使用方法迭代器的原理增强for循环什么是增强for循环为什么不能对集合中的元素进行增删改操作?增强for循环的使用Collection集合集合与数组的区别1.数组的长度是固定的。集合的长...

2020-03-24 21:45:42 225

原创 StringBuilder类

目录什么是StringBuilder类StringBuilder的原理常用构造方法常用成员方法什么是StringBuilder类我们知道String的值一经创建是不可改变的,但是StringBuilder(字符串缓冲区)却是支持可变字符串的。StringBuilder的原理常用构造方法1.空参数的构造方法。(new一个空字符串)...

2020-03-24 11:25:36 128

原创 Java之Calendar类和System类

简介Calendar是一个日历抽象类,里面提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)。Calendar类无法直接创建对象使用,里面有一静态方法叫getInstance(),该方法返回了Calendar类的子类对象。静态方法static Calendar getInstance()使用默认时区和语言环境获得一个日历。Calend...

2020-03-24 10:41:52 361

原创 Java之Date类的使用

目录Date类简介常用方法DateFormat类常用方法Date类简介Date类表示日期和时间,精确到毫秒。需要注意的是时间的原点是从:1970年1月1日 0:00:00(英国格林威治)开始的但是中国属于东八区,时间原点为1970年1月1日 8:00:00常用方法1.Date类空参数构造方法表示获取当前系统的日期和时间Da...

2020-03-22 23:21:11 193

原创 Java之Object类的使用

目录Object类toString方法equals方法Objects类Object类我们知道,Object类是所有类的父类。每个类都会直接或者间接地继承这个类。我们在使用Object时,最常用到的两个方法就是toString和equals。toString方法作用打印对象的信息重写前打印的是包类类名“@地址值...

2020-03-22 22:38:42 201

原创 Java的内部类、匿名内部类

目录内部类概念类的权限修饰符成员内部类格式举例成员内部类的外部访问方式在内部类中访问同名的变量内部类的编译局部内部类格式举例局部内部类的外部访问方式局部内部类的final问题匿名内部类内部类概念内部类指的是类中包含另一个类。分为成员内部类和局部内部类(局部中包括匿名内部类)注意:内部类使用外部可以随意访问。...

2020-03-22 20:35:43 181

原创 Java中的final关键字

目录finalfinal用在类当中final用在方法中final用来修饰局部变量final用来修饰成员变量finalfinal意为最终的、不可改变的。它可以用在类中、方法中、局部变量中、成员变量中final用在类当中final用在类中代表这个类不能有子类。由于它没有子类,所以final类中的成员方法无法被覆盖重写pu...

2020-03-21 21:59:04 116

原创 RocketMQ之消息的存储

目录简介消息存储的位置同步刷盘与异步刷盘简介RocketMQ中的消息数据存储,采用零拷贝的技术(mmap+write方式),文件系统采用Linux Ext4文件系统进行存储。消息存储的位置在RocketMQ中,消息数据量保存在磁盘文件中,为了保证写入的性能,RocketMQ尽可能地保证顺序写入,顺序写入比随机写入的效率高很多Rock...

2020-03-21 16:42:16 515

原创 RocketMQ之重复消息的解决方案

网络不可达是造成消息重复的根本原因,但这种情况无法避免。当消费端收到两个一样的消息时,应该如何处理呢?1.消费端处理消息的业务逻辑保持幂等性原理是只要第二三四条消息执行时对项目不会造成影响,那么就不需要去管它。例如此消息为判断true或false2.保证每条消息都有唯一编号且保证消息处理成功与去重表的日志同时出现。原理是利用一张日志表来记录已经处理成功的消息ID,如果新来的...

2020-03-21 16:23:35 1296

原创 RocketMQ之消息队列模式

什么是消息模式当消息队列发送消息时,其实是发送给一个ConsumerGroup(消费者组),很多时候消费者组不是只有一个消费者。那么消息队列就要根据集群模式或广播模式两种方法,来决定如果把消息发送给多个消费者。集群模式同一个消费者组里的每一个Consumer只消费所订阅消息的一部分内容,同一个消费者组里所有消费者内容合起来才是所订阅Topic内容的整体,从而达到负载...

2020-03-21 16:16:17 984

原创 RocketMQ之消费者获取消息的两种模式

Push&Pullpush:客户端与服务器建立连接后,当服务器有消息时,服务器将消息推送到客户端pull:客户端不断轮询请求服务端,来获取新的消息RocketMQ中的Push&PullRocketMQ中都是采取消费端主动拉取的方式,即consumer轮询从broker中拉取消息。原因是服务器如果主动给客户端推送消息的话,当客户端...

2020-03-21 15:57:47 2348

原创 RocketMQ之分布式事务消息

目录什么是分布式事务消息HalfMessage(半消息)Message Status Check(消息回查)分布式消息的执行原理模拟事务正常执行的功能模拟事务失败执行的功能模拟消息回查执行的功能什么是分布式事务消息聊什么是事务,最经典的例子就是转账操作,用户A转账给用户B1000元的过程如下:用户A发起转账请求,用户A账户减去1000元...

2020-03-21 13:24:51 332

原创 RocketMQ之消息的顺序发送与消费

目录顺序消息生产者消费者顺序消息在某些业务中,consumer在消费消息时,是需要按照生产者发送消息的顺序进行消费的,比如在电商系统中,订单的消息,会有创建订单、订单支付、订单完成,如果消息的顺序发生改变,那么这样的消息就没有意义了。(想实现订单的需求,生产时必须让每一笔订单单独存在于一个队列中,消费时在指定队列中按顺序消费)生产者在代码中...

2020-03-21 11:48:16 372

原创 RocketMQ之消息的多种订阅方式&消息过滤器

目录消息的消费(订阅全部)消息的消费(订阅指定操作)消息过滤器消息的消费(订阅全部)订阅时,我们设置通配符“*”意味订阅topic匹配的全部消息package cn.itcast.rocketmq.consumer;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;imp...

2020-03-21 10:16:54 3048

原创 RocketMQ之手动创建Topic、发送消息(同步&异步)

目录手动创建topic发送消息(同步)发送消息(异步)手动创建topictopic是broker中的一个个分组,如果设置topic自动创建的话如果创建多了,可能会影响电脑的运行速度,所以我们来手动创建。首先我们先在Demo项目中新建一个TopicDemo类,关于Demo项目的搭建在这篇博客中有提到https://blog.csdn.net/Delici...

2020-03-20 22:34:13 9373 1

原创 Java中的多态、对象的上下转型

目录Java中的多态多态的格式和使用多态中访问成员变量多态中访问成员方法对象的向上和向下转型Java中的多态我们知道,多态指的是一个对象拥有多种形态。在java中,如果要使用多态,必须拥有extends或者implements关系,这是多态性的前提。使用多态有什么用?我们看一个例子。图中所说的等号左边不发生改变,只有右边不发生改变。这大大...

2020-03-20 18:39:36 183

原创 Java中的接口

目录接口的基本格式什么是接口接口的定义接口中可包含的内容接口中不可包含的内容接口中抽象方法的定义和使用接口中的默认方法的定义和使用接口中的静态方法的定义和使用接口中私有方法的定义和使用接口中常量的定义和使用接口之间的多继承关系接口的基本格式什么是接口接口就是多个类的公共规范。它是一种引用数据类型,最重要的内容就是接口中的抽象方...

2020-03-20 15:41:05 147

原创 Java中的抽象

抽象类和实体类的区别我们知道,子类继承父类可以获得父类的全部方法。那么子类继承抽象类和继承实体类有什么区别呢?子类继承抽象类如果子类继承抽象类,子类必须实现抽象类的方法,除非子类是抽象类。子类继承实体类而子类继承实体类只是单纯的起到了精简代码的作用,换句话说,父类的方法不需要实现,拿过来直接用就可以。抽象方法与抽象类抽象方法...

2020-03-20 11:36:07 216

原创 部署RocketMQ的可视化管理工具rocketmq-console

下载rocketmq-console镜像docker pull styletang/rocketmq-console-ng:1.0.0创建并启动容器docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.62.132:9876 -Dcom.rocketmq.sendMessageWith...

2020-03-19 22:59:10 373 1

原创 基于Docker安装RocketMQ4.3.2

目录拉取镜像创建nameserver容器创建broker容器启动容器测试消息是否可以发送成功拉取镜像我们拉取的不是官方提供的rocketmq,而是一个哥们自己整个的rocketmq版本。之所以不选择官方提供的最主要原因是,官方提供的版本有很多配置地方比较麻烦,这哥们整合的更好一些。docker pull foxiswho/rocketmq:serv...

2020-03-19 22:15:28 841 1

原创 使用Ubuntu16.04安装RocketMQ4.3.2(不使用Docker)

解压安装包我们把下载好的安装包放到项目文件夹中解压cd /haokeunzip rocketmq-all-4.3.2-bin-release.zip启动nameservercd rocketmq-all-4.3.2-bin-release/bin/./mqnamesrv但是我们发现启动失败,从报错信息可...

2020-03-19 20:32:23 662

原创 什么是RocketMQ?

RocketMQ简介Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给Apache,成为Apache的一个顶级项目。在 2017 年的双十一当天,整个阿里巴巴集团通过 RocketMQ 流转的线上消息达到了 万亿级,峰值 TPS 达到5600 万,在阿里大中台策略上发挥着举足轻重的作用 。Roc...

2020-03-19 15:21:00 673

原创 基于WebSocket以及MongoDB开发聊天系统(三)

websocket实现逻辑1.发送消息流程2.接收消息流程编写websocket新建MessageHandler里面主要写接受和发送消息的逻辑package cn.itcast.haoke.im.websocket;import cn.itcast.haoke.im.dao.MessageDAO;import cn.i...

2020-03-18 22:40:07 519

原创 基于WebSocket以及MongoDB开发聊天系统(二)

目录编写启动类新建配置文件新建测试类测试Save方法测试testQueryList方法编写启动类package cn.itcast.haoke.im;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.Spr...

2020-03-18 17:29:16 298

原创 基于WebSocket以及MongoDB开发聊天系统(一)

搭建聊天系统以及编写实体类新建项目导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&gt...

2020-03-18 17:07:43 528

原创 SpringBoot整合MongoDB

目录前言导入依赖编写application.properties配置文件编写PersonDao编写启动类编写单元测试前言涉及到了数据库的整合,我们采取把SpringData作为实现方式,整合在SpringBoot中导入依赖<parent> <groupId>org.springfra...

2020-03-18 16:05:39 215

Ubuntu16.04安装文档

1. 创建虚拟机 2. 安装Ubuntu系统 设置光盘镜像: 点击“开启此虚拟机”。 输入主机名: 输入用户名: 输入密码:itcast123 确认密码: 选择不更新: 至此,安装完成。 3. 安装完成后的配置 3.1. 设置root用户的密码 设置root用户的密码为root 3.1.1设置静态IP https://blog.csdn.net/Delicious_Life/article/details/104603312 3.2. 设

2020-09-18

空空如也

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

TA关注的人

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