java
文章平均质量分 88
大老费
耐得住寂寞,才守得住繁华
展开
-
storm总结
一、Storm到底是什么?1、hadoop与stormhadoop:离线批处理hadoop是离线批处理,每天将所有数据收集起来,第二天凌晨统一批量计算 分布式存,把9T数据分散在9台机器上存储,每台机器上存储1T 分布式计算,每台机器上就算那一部分的数据(1T),之后汇总起来 hadoop不能来一条算一条(不能实时计算)storm:实时计算来一条数据,就算一条,来一条,算一条2、storm的特点是什么?(1)支撑各种实时类的项目场景:storm做...原创 2021-05-27 21:45:33 · 320 阅读 · 2 评论 -
线程池原理解析
1、为什么要用线程池,线程池的作用(意义),如果使用线程池会有什么好处,说说你对线程池的了解?创建和销毁线程的代价是很大的,线程不像创建普通object对象那样,在堆中分配点内存就好了的,在new Thread的时候,是先分配内存,但是并没有创建线程,当调用线程的start方法的时候,会通过cpu指令创建一个线程。所以,频繁的创建线程、销毁线程的代价是很大的,会导致系统性能下降。还有,如果频繁创建线程,不加以管理,会导致系统线程过多,影响系统运行。如果用线程池,指定线程数量,线程池会帮助我们管.原创 2021-05-27 21:02:33 · 533 阅读 · 0 评论 -
Eureka 源码总结
Eureka1、Eureka 是为微服务提供服务注册和发现的产品2、为什么要用eureka多个服务间,如订单中心调用库存中心,如果没有eureka,那订单中心就要写死一个URL来访问库存中心接口。这期间,如果商品中心又加了一台机器呢?那订单中心岂不是要加一个URL然后轮询去调用,所以才会用eureka提供服务注册和发现3、使用场景4、Eureka有两类一类是 eureka-server ,一类是 eureka-client ,eureka-server是单独一个服务,专门用来发现原创 2019-07-05 22:29:41 · 1810 阅读 · 1 评论 -
HashMap源码总结
1、底层结构是 数组 + 单向链表 + 红黑树 (jdk8之后),之前是数组 + 链表底层是,用node节点组成的数组2、基于<key, value>对存储数据,数据会被封装成一个Node<K,V>节点,会存放它的hash值、key值、value值、next指针。3、几个关键参数初始容量默认加载因子是0.75;扩容临界值(容量*加载因子); 这个东西不只是干了这个事,还有另一个作用 在使用构造函数创建hashmap时,如果指定了容量,那构造函原创 2021-05-27 14:35:21 · 290 阅读 · 1 评论 -
LinkedList源码总结
LinkedList源码总结1、LinkedList 底层是基于双向链表实现的2、LinkedList的每条数据都会被封装成Node<E>private static class Node<E> { E item; Node<E> next; Node<E> prev; //构造方法 Node(Node<E> prev, E element, Node<E> next) { this.item = element; t.原创 2021-05-27 14:25:41 · 165 阅读 · 0 评论 -
ArrayList源码总结
ArrayList源码总结1、底层基于数组实现2、创建ArrayList如果不指定大小,会先创建一个大小为0的Object[ ]数组 ,第一次添加数据时,会扩容成ArrayList的 默认大小default_capacity:10;3、创建时如果指定大小,直接创建指定大小的Object[ ]数组4、add()对 size+1,去判断数组是否满了,如果满了就调用 grow()方法扩容,扩容大小为,原数组大小 + 原数组大小右移一位。也就是扩容到原来的1.5倍 ...原创 2021-05-27 14:23:39 · 132 阅读 · 0 评论 -
JVM运行原理及优化
我们写好的代码,是要通过JVM才能运行的 JVM 想要执行一个类,首先要加载类,在加载类之前,需要先编译成字节码class 文件 然后就执行类的加载过程,JVM 加载类的话,需要类加载器 类加载器是分层级的,遵循双亲委派机制, 最上层是Bootstrap ClassLoder,加载java的核心类库,加载java安装目录下的lib目录的class文件 第2层是Ext ClassLoder,加载一些java的其他类库,加载java安装目录下的lib/ext目录下的class 第三层...原创 2020-07-05 16:50:22 · 24962 阅读 · 8 评论