自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kafka实践

一、为何使用消息队列流量削峰 系统解耦 异步处理二、为何使用Kafka特性 ActiveMQ RabbitMQ Kafka RocketMQ 生产者-消费者 支持 支持 支持 支持 发布-订阅 支持 支持 支持 支持 应答模式 支持 支持 - 支持 API完备性 高 高 高 低(静态配置) 多语言支持 支持,JAVA优先 语言无关 支持,

2021-12-27 20:27:37 685

原创 Class.forName和classloader的区别

要理解Class.forName和classloader的区别的话,首先需要对JVM类加载机制有一个简单的理解。JAM类加载机制:加载:过程:通过一个类的全限定名来获取定义这个类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中声明一个代表这个类的java.lang.Class对象,作为方法区中这个类的各种数据访问的入口获取方式:从ZIP包中获...

2019-10-19 16:59:50 167

原创 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 455

原创 几个Java集合类:list、set、map实现类

本文只是简单介绍几个类的区别以及相关的一些常用方法,详细的源码解析有空会陆续发出Listint size(); //返回list集合大小boolean isEmpty(); //判断集合是否为空boolean contains(Object o); //判断集合是否包含某个值Iterator<E> iterator(); //返回集合的迭代器Object[] toArray...

2019-10-19 10:17:29 410

原创 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 101

原创 记一次项目经历遇到各种难题

记一次项目经历遇到各种难题第一回 接到任务小帅刚到公司不久便接到一个任务,需要将甲方公司的人员、部门等信息同步到我方产品中。小帅很兴奋,想要展现一下自己的实力,于是什么jdk1.8新特性什么的花里胡哨的东西都给用上,为了避免过多的麻烦,因此设计的时候是将两方数据都拿出来,在内存中比较那些是新增数据,哪些是重复数据(重复数据不论是否更新除了工号等不变的东西都会置为最新的),哪些是需要删除的数据...

2019-10-11 19:02:56 462

原创 为什么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 129

原创 根据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 144

转载 DockerFile编写

DockerFile编写1、添加基础镜像,比如依赖于jdk1.8 from2、拷贝解压 Add 将jar包拷贝解压3、拷贝yml之类...

2019-07-25 10:16:46 146

原创 java基础——重载和重写的区别

重载:1、方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现(不过在我看来,重载与多态无关,与面向对象更是没有关系)2、java方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。3、重载的时候,方法名要一样,但...

2018-05-15 17:40:28 147

原创 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 194

转载 java基础——面向对象的特征

面向对象的特征:封装、继承、多态封装:具体的说就是get、set方法。封装也成为信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。好处:实现了专业的分工;良好的封装能够减少耦合;类内部的结构能够...

2018-05-15 17:21:52 94

原创 java基础——final、finally、finalize的区别

1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能即被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们再使用过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被fianl声明的方法也同样只能使用、不能重载。2、finally是在异常处理时提供f...

2018-05-15 17:05:36 127

原创 java基础——equals、==、hashcode

equals和==其实是一样的功能都是比较物理地址。不同的是equals可以重写,但是==是不可以重写的但是重写equals一定要重写hashcode。因此一定要满足一个原则:hashcode相等,equals不一定相等;equals相等,hashcode一定相等。需要说明的是equals方法的重写还有很多规定:自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。 对称性:...

2018-05-15 14:38:42 113

转载 java学习总纲

一、java基础  1、String类为什么是final的。从设计安全上讲:1)确保它们不会在子类中改变语义。String类是final类,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,它应用的一定是一个String对象,而不可能是其他类的对象。2)String一旦被创建是不能被修改的,因为java设计者将String为可以共享的。从效率上讲:1)设计成fina...

2018-03-28 21:27:33 2614

基于随机网络编码的k_RNARQ重传策略_王耀兴

基于随机网络编码的k_RNARQ重传策略_王耀兴 基于随机网络编码的k_RNARQ重传策略_王耀兴基于随机网络编码的k_RNARQ重传策略_王耀兴

2018-05-18

空空如也

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

TA关注的人

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