- 博客(30)
- 收藏
- 关注
原创 rocketmq总结
(一)介绍了:(1) rocketmq的核心概念,比如生产者,消费者,生产者组,消费者组等https://blog.csdn.net/kobewwf24/article/details/83621682(二)介绍了:(1) nameserver的作用(2) broker如何及何时向nameserver注册(3) producer,consumer如何通过nameserver与broke...
2018-12-04 18:05:58
210
原创 LinkedList浅析
(一)LinkedList的定义public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable  &
2018-11-16 12:08:32
141
1
原创 HashMap与Hashtable的区别
(1)HashMap是非线程安全的,Hashtable是线程安全的以get()方法为例HashMap: public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value; }Hashtable:...
2018-11-14 18:20:54
134
原创 集合的fail-fast机制
(一) 什么是fail-fast?&nbsp; &nbsp; &nbsp; &nbsp;fail-fast是java集合的一种错误机制,当多个线程并发访问集合时,就有可能产生fail-fast事件,抛出ConcurrentModificationException异常。(二) fail-fast如何产生?&nbsp; &nbsp; &nbsp; &nbsp;当一个线程对集合进
2018-11-13 18:05:34
189
1
原创 ArrayList的序列化与扩容
&amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;nbsp;ArrayList的底层实现时数组,与普通的数组相比,ArrayList能实现容量的动态增长。在ArrayList中最重要的属性是:elementData和size。elementData是Object[]的数组,size是数组中实际元素的大小。(一)序列化&
2018-11-13 16:12:44
150
原创 ArrayList的 toArray() 与 toArray(T[] a)
一、public Object[] toArray()与public T[] toArray(T[] a)先来看看一段代码:public static void main(String[] args) throws Exception { List&lt;String&gt; list = new ArrayList&lt;&gt;(); list.add("dddd");...
2018-11-13 11:16:41
2894
1
转载 rocketmq架构解读
转自:https://blog.csdn.net/earthhour/article/details/787180641.rocketmq部署方式 RocketMQ 的 Broker 有三种集群部署方式: 1. 单台 Master 部署; 2. 多台 Master部署; 3. 多 Master 多 Slave 部署;采用第 3 种部署方式时, Master 和 Slave 可以采用同步复制和...
2018-11-01 16:04:18
523
1
转载 rocketmq核心概念
整理自 https://blog.csdn.net/jayjjb/article/details/69948357核心概念生产者(Producer):消息发送方,将业务系统中产生的消息发送到brokers(brokers可以理解为消息代理,生产者和消费者之间是通过brokers进行消息的通信),rocketmq提供了以下消息发送方式:同步、异步、单向。生产者组(Producer G...
2018-11-01 15:47:19
273
原创 windows下安装rocketmq采坑全记录
1.下载解压rocketmq 地址为:http://rocketmq.apache.org/release_notes/release-notes-4.3.0/2.配置ROCKETMQ_HOME环境变量 变量名:ROCKETMQ_HOME 变量值:rocketmq解压路径3.启动nameserver cmd进入到“rocketmq解压路径/b...
2018-09-15 11:57:01
10499
14
翻译 Java NIO Selector
Java NIO Selector@(译)[韦文丰]A Selector is a Java NIO component which can examine one or more NIO Channel’s, and determine which channels are ready for e.g. reading or writing. This way a single thread ca
2017-06-29 11:47:07
212
原创 NIO Buffer
1.Buffer的基本用法Buffer是和Channel一块使用的,首先来看一段代码:public class Buffer { public static void main(String[] args) throws IOException { //获取文件流 RandomAccessFile inFile = new RandomA
2017-05-11 22:58:58
189
原创 NIO简介
NIO是在JDK 1.0中引入的,其目的是为了提高速度。java NIO包含了三个中重要的核心组件:Channels,Buffers,Selectors。Channels和Buffers 通常来说,在NIO中所有的IO都是以Channels开始的。 Channels和Streams有些类似。区别如下: 1.Channels是双向的,可读可写,Stre
2017-05-11 20:04:09
185
原创 I/O流
一、InputStream和OutputStream I/O类库中经常使用流这个概念,流指的是有能力产出数据的数据源对象或有能力接收数据的接收端对象。在java流的使用过程中,很少使用单一的类来创建流对象,而是通过使用别的流来“装饰”来达到想要的功能,“装饰”的前提是装饰器与它装饰的对象有同样的接口。在下图中的FilterInputStream和FilterOutputStream就是这样一种
2017-04-25 23:31:41
321
原创 异常
一、前言 “发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决”–Java编程思想。很明了,异常就是为了在运行期间(RuntimeException)解决的错误的一种机制,异常是一种报告机制。二、异常的优点 (1)异常处理代码可以做到在一个地方专门处理异常,实现了异常处理代码和执行正常流程的代码相分离,
2017-04-16 22:50:40
197
原创 正则笔记
1.任意一个字符都是一个正则2. \ : 表示转义字符”\” \t : 表示”\t” \n : 表示”\n”(换行)3. [abc] : a or b or 中的一位 [^abc] : 不是a or b or 中的一位 [a-zA-Z] : 任意一位字母 [0-9] : 任意一位数字 [] : 范围4. . : 表
2017-04-13 23:32:02
276
原创 常见异常
常见的异常:NullPointerException - 空指针引用异常ClassCastException - 类型强制转换异常。IllegalArgumentException - 传递非法参数异常。ArithmeticException - 算术运算异常ArrayStoreException - 向数组中存放与声明类型不兼容对象异常IndexOutOfBoundsException - 数组越
2017-04-09 10:09:12
224
原创 编程习惯
1.”0”.equals(str),null != str 与 str.equals(“0”),str != null 当str == null,时,前者不会抛空指针异常2.常量有意义3.一个方法里只写一个功能4.方法参数不能超过5个5.不能 return null,以异常代之6.数据库,文件读写,网络连接等使用完要释放,在finally语句中释放7.异常要细分,比如 SBOException,U
2017-04-09 10:03:04
489
原创 linux补充
1. 命令模式 :任何模式按esc都可以回到命令模式插入模式 : 命令模式下按 i 进入插入模式ex模式 : 命令模式下按 : 进入ex模式,可以保存修改或退出vim2. i : 在光标前插入文本 o : 当前行的下一行插入新行 dd : 删除整行 yy : 复制 n+yy : 复制n行 p : 粘贴 u : 撤销 r : 替换当前
2017-03-17 21:34:52
164
原创 磁盘分区
1.创建文件系统的过程又叫做 格式化2.没有文件系统的设备又叫 裸(raw)设备3. 主流的文件系统: windows : NTFS linux : ext3 , ext44.文件系统的差别:日志,支持分区大小,性能等5.使用 MKE2FS 来在硬盘上创建文件系统 例如:mk2fs -t ext4 /dev/sda3 常用参数: -b blocksize 指定文件系统块大小
2017-03-12 22:02:49
174
原创 vi编辑器
1.操作系统为什么区分用户?限制用户可以使用哪些资源2.用户分为三种: root用户 ID为0 系统用户 1-499(系统用户运行某些服务,如打印等,不需要登录的shell) 普通用户 500以上 操作系统人的是ID3.系统的文件都有一个所属用户及所属组4.使用 id 命令查看用户信息,passwd 修改密码5. /etc/passwd 保存用户信息 /etc/shadow
2017-03-06 16:29:42
237
原创 文件系统
1.操作系统为什么区分用户?限制用户可以使用哪些资源2.用户分为三种: root用户 ID为0 系统用户 1-499(系统用户运行某些服务,如打印等,不需要登录的shell) 普通用户 500以上 操作系统人的是ID3.系统的文件都有一个所属用户及所属组4.使用 id 命令查看用户信息,passwd 修改密码5. /etc/passwd 保存用户信息 /etc/shadow
2017-02-28 23:04:36
176
原创 权限机制
1.每个文件都有特定的权限,所属用户及所属组2.每个进程都是以某个用户的身份运行,所进程与该用户的权限一样大,限制进程所访问的资源3.目录必须有 x 权限,否则无法查看文件内容4.改变文件所属chown 改变文件所属用户: chown 用户名 文件名 加 -R 递归修改目录chgrp 改变文件所属组 chown 用户名 文件名 加 -R 递归修改目录5.修改权限 u g o
2017-02-22 21:47:40
372
原创 linux 用户及用户组
1、linux为什么要区分用户及用户组 为了限制用户可以使用的资源,不同的用户拥有的权限大小是不一样的,root用户可以拥有最大的权限,使用所有的资源,读写执行所有文件;而普通用户的是受限的,只能读写执行拥有权限的文件。2、用户的分类: linux把用户分为了三种: ID 用户类型 0 root用户 1-499
2017-02-21 21:54:29
349
原创 linux目录结构
一、目录结构 先来看看linux的目录:每一行都代表了一个文件夹,其中蓝色的是目录的名称,来挨个介绍,其他颜色的先不管。(1)bin bin目录存放的是linux的命令,比如常用的cd, su, pwd(后面介绍) 等命令都在这个目录下。其实不光linux,绝大多数操作系统、安装软件的命令都在bin目录下。(2)boot 该目录下有linux的内核,引导相关配置文件等,当linux启动时,首
2017-02-19 14:03:57
337
原创 Linux基本操作
一、基本认识(1)在linux输入命令时,我们常常会在命令行的开头看见这样的字符:xxx@xxxx,其意思是:用户名@主机名。例如上面的图中,root表示的是超级用户,weiwenfeng表示的是普通用户,centOS表示的是主机。(2)linux系统通常都需要多用户去进行操作,每个用户拥有不同的权限,在用户之间进行切换可以用过命令:su 用户名 来实现。root用户可以随意切换到普通用户,而
2017-02-16 22:40:08
251
原创 二分查找
二分查找的两种方法:递归和非递归方法。非递归方法:nt bin_search(int a[],int low,int high,int num){ int mid; if(low>high) return -1; while(low<=high) //low要小于等于high,不然头和尾的数字查找出错 { mid=(high-lo
2016-08-11 23:09:17
814
原创 最大子列和问题
给出一个序列,求出最大子列和。算法一:void MaxSum(int A[],int N){ int i,j,k; int ThisSum=0,MaxSum=0; for(i=0;i<N;i++) //i为子序列左端 { for(j=i;j<N;j++) //j为子序列右端 { Th
2016-07-07 12:31:27
212
原创 抽象数据类型(ADT)
一、什么是抽象数据类型?用来做什么? ADT是指一个数学模型以及定义在该模型上的操作(即数学模型+数学模型的操作)。难理解,那就先说说类型。一个类型指两类信息:一个属性集+一个操作集),比如,int类型的属性表示它是一个整数,它允许的操作包括加减乘除,取模,改变符号:1+1,那么1是类型,+ - * /等是操作。假设想定义一个新的数据类型,第一,需要提供数据存储的方式;第二,需要提供数据的操作方式
2016-04-19 09:39:12
1667
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人