09 2019 档案
摘要:一、讲解 HashMap在并发执行put的时候会引发死循环,会因为多线程会导致HashMap的entry链表形成环形数据结构,一旦形成环形数据结构Entry的next永远不为空,就会产生死循环获取entry。 HashTable容器使用synchronized来保证线程安全的,但是在线程竞争激烈的情
阅读全文
摘要:一、Vector与ArrayList区别 1、ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删
阅读全文
摘要:1、Heap(Java7之前) 一个Jvm实例只存在一个堆内存,堆内存的大小是可以调节的。类加器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息以方便执行器执行。 堆内存逻辑上分为三部分:新生+养老+永久 新生区 新生区是类的诞生、成长、消亡的区域,一个类在这里产生,应
阅读全文
摘要:1、Stack栈 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存种分配。 2、
阅读全文
摘要:1、Method Area 方法区 方法区是被所有的线程共享,所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。简单说,所有定义的方法的信息都保存在该区域,此区属于共享区间。 静态变量+常量+类信息(构造方法/接口定义)+运行时常量池存在方法区中,但是实例变量存在堆内存中,和方法
阅读全文
摘要:1、PC寄存器 每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。 这块内存区域很小,它是当前线程所执行的字节码的行号指示器,字节码解释器通过改
阅读全文
摘要:1、 Native Interface 本地接口 本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序,Java诞生的时候是C/C++横行的时候,要想立足,必须有调用C/C++程序,于是就在内存中专门开辟了一块区域处理标记为native的代码,它的具体做法是Native M
阅读全文
摘要:1、JVM的体系机构 2、类加载器ClassLoader 负责加载class文件,class文件在文件开头有特定的文件标识(CA FE BE AN),并且ClassLoader只负责class文件的加载,至于它是否可运行,则由Execution Engine决定。 3、类加载器ClassLoader
阅读全文
摘要:1、首先看一下代码: 结果分析: 1、false 2、true 3、false 4、false 第1个是false的原因是因为使用的是==比较的引用类型 第2个结果是true的原因是因为String的源码中进行了equals的重写,源码如下: 3、第3个结果为false的原因是因为使用==判断的引用
阅读全文
摘要:1、Spout Spout最顶层抽象是ISpout接口。 Open()是初始化方法,为spout提供执行环境,执行器将运行此方法来初始化喷头 nextTuple()循环发射数据,通过收集器发出生成得数据 ack()成功处理tuple回调方法,确认处理特定元组 fail()处理失败tuple回调方法,
阅读全文
摘要:内容楼主正在更新中.............
阅读全文
摘要:1、介绍 Storm的使用场景非常广泛,比如实时分析、在线机器学习、分布式RPC、ETL等。Storm非常高效,再一个多节点集群上每秒中可以轻松处理上百万的消息。Storm还具有良好的可扩展性和容错性以及保证数据可以至少被处理一次等特性。 Storm的组成拓扑图就是Storm的应用(Topology
阅读全文
摘要:1、Sqoop概念 Sql-To-Hadoop,sqoop主要用于关系型数据库(mysql,postgresql,oracle....)与hadoop(hive)之间数据的传递,也可以hadoop上hdfs的数据导入导出到关系型数据库中。 利用MapReduce,批处理 的方式进行数据的传输 2、S
阅读全文

浙公网安备 33010602011771号