- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Kafka实践
一、为何使用消息队列流量削峰 系统解耦 异步处理二、为何使用Kafka特性 ActiveMQ RabbitMQ Kafka RocketMQ 生产者-消费者 支持 支持 支持 支持 发布-订阅 支持 支持 支持 支持 应答模式 支持 支持 - 支持 API完备性 高 高 高 低(静态配置) 多语言支持 支持,JAVA优先 语言无关 支持,
2021-12-27 20:27:37
697
原创 Class.forName和classloader的区别
要理解Class.forName和classloader的区别的话,首先需要对JVM类加载机制有一个简单的理解。JAM类加载机制:加载:过程:通过一个类的全限定名来获取定义这个类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中声明一个代表这个类的java.lang.Class对象,作为方法区中这个类的各种数据访问的入口获取方式:从ZIP包中获...
2019-10-19 16:59:50
177
原创 JAVA中的队列有哪些、有什么区别
Queue实现了Collection接口boolean add(E e); //添加元素 超出上限抛出异常boolean offer(E e); //同样添加元素 超出上限返回falseE remove(); //移除元素 为空抛出异常E poll(); //移除元素 为空返回nullE element(); //获取元素,为空抛出异常E peek(); //获取元素,为空返回...
2019-10-19 14:54:53
462
原创 几个Java集合类:list、set、map实现类
本文只是简单介绍几个类的区别以及相关的一些常用方法,详细的源码解析有空会陆续发出Listint size(); //返回list集合大小boolean isEmpty(); //判断集合是否为空boolean contains(Object o); //判断集合是否包含某个值Iterator<E> iterator(); //返回集合的迭代器Object[] toArray...
2019-10-19 10:17:29
421
原创 HashMap源码解析
成员变量:默认初始化大小为16,必须为2的次幂(为了减少Hash碰撞,尽可能减少空间浪费,本文后面会进行讲解)static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16最大容量,必须是2的次幂static final int MAXIMUM_CAPACITY = 1 << 30;默认加载因子,当大...
2019-10-17 10:41:45
109
原创 记一次项目经历遇到各种难题
记一次项目经历遇到各种难题第一回 接到任务小帅刚到公司不久便接到一个任务,需要将甲方公司的人员、部门等信息同步到我方产品中。小帅很兴奋,想要展现一下自己的实力,于是什么jdk1.8新特性什么的花里胡哨的东西都给用上,为了避免过多的麻烦,因此设计的时候是将两方数据都拿出来,在内存中比较那些是新增数据,哪些是重复数据(重复数据不论是否更新除了工号等不变的东西都会置为最新的),哪些是需要删除的数据...
2019-10-11 19:02:56
469
原创 为什么String是final的
String类为什么是final的public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; ......首先想要弄清楚String类为什么是final的就必须弄清楚final有什么作用。f...
2019-10-11 12:20:26
133
原创 根据dockerfile构建镜像
根据dockerfile构建镜像1、创建目录mkdir -p /usr/local/dockerjdk82、下载jdk 上传到创建目录中3、在此目录中创建dockerfile文件(在前面有说明,此处就不再赘述)4、执行命令构建jdk镜像docker build -t=‘jdk1.8’ .(空格和点)5、查...
2019-07-25 13:01:20
148
转载 DockerFile编写
DockerFile编写1、添加基础镜像,比如依赖于jdk1.8 from2、拷贝解压 Add 将jar包拷贝解压3、拷贝yml之类...
2019-07-25 10:16:46
157
原创 java基础——重载和重写的区别
重载:1、方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现(不过在我看来,重载与多态无关,与面向对象更是没有关系)2、java方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。3、重载的时候,方法名要一样,但...
2018-05-15 17:40:28
157
原创 java基础——int和Integer有什么区别
int是基本数据类型,直接存的是数值而Integer是对象,是一个引用只想这个对象初始化:int i= 1;Integer i = new Integer(1);由于有了自动装箱以及拆箱,所以Integer i = 1;也是正确的当需要网ArrayList,HashMap中放东西时,像int,double这种内建类型是无法放进去的,因为容器都是装object的,这时就需要这些内建类型的外覆类了。泛...
2018-05-15 17:29:58
197
转载 java基础——面向对象的特征
面向对象的特征:封装、继承、多态封装:具体的说就是get、set方法。封装也成为信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。好处:实现了专业的分工;良好的封装能够减少耦合;类内部的结构能够...
2018-05-15 17:21:52
100
原创 java基础——final、finally、finalize的区别
1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能即被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们再使用过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被fianl声明的方法也同样只能使用、不能重载。2、finally是在异常处理时提供f...
2018-05-15 17:05:36
130
原创 java基础——equals、==、hashcode
equals和==其实是一样的功能都是比较物理地址。不同的是equals可以重写,但是==是不可以重写的但是重写equals一定要重写hashcode。因此一定要满足一个原则:hashcode相等,equals不一定相等;equals相等,hashcode一定相等。需要说明的是equals方法的重写还有很多规定:自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 对称性:...
2018-05-15 14:38:42
118
转载 java学习总纲
一、java基础 1、String类为什么是final的。从设计安全上讲:1)确保它们不会在子类中改变语义。String类是final类,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,它应用的一定是一个String对象,而不可能是其他类的对象。2)String一旦被创建是不能被修改的,因为java设计者将String为可以共享的。从效率上讲:1)设计成fina...
2018-03-28 21:27:33
2626
基于随机网络编码的k_RNARQ重传策略_王耀兴
2018-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人