来源:https://mp.weixin.qq.com/s/WiRyQEoDfuowT3LNfZ-NSw 0 本文大纲: 一、我们本次的目的是什么? 这次我们的目的是,在本地的 IDEA 中去 debug flink-clients 代码,然后远程提交给 flink standalone 集群上去执行,看一看 flink 客户端在提交代码之前都干了什么。就像下面这样: 很简单是不是,瞬间自信心爆棚!在开始之前,我想要提两个发人深省的问题,你平时一定没有考虑过: 问题 1:用户代码如何变成 DAG 图 DataS...
synchronized原子性、可见性、有序性应用 加锁的三种方式: 1、普通同步方法,锁的是实例对象 2、静态同步方法,锁的是当前类的对象。 3、同步方法块,锁的是synchronized括号里的对象synchronized的字节码指令: 对于同步块的实现使用了monitorenter和monitorexit指令,前面我 们在讲JMM的时候,提到过这两个指令,他们隐式的执行了Lock和UnLock操作,用于提供原子性保证。monitorenter指令插入到同步代码块开始的位置、monitorex...
转载自http://www.cnblogs.com/chengxiao/p/6059914.html#t1 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。 一、什么是哈希表在讨论哈希表之前,我...
MySQL索引实现 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。 MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图: 图8 这里设表一共有三列,假设我们以Col1为主键,则图8是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址...
参考资料[1] 《JavaScript高级程序设计》 [2] js手动实现bind方法,超详细思路分析! --- 听风是风PS:下面是我个人的总结,有些所以然都略过了,想理解得更透彻,建议看参考资料。 三者的用法及区别 const obj = { name: 'jack' } function printMessage(age, sex) {console.log(`my name is ${this.name}, my age is ${age}, my sex is ${sex}.`); } printMessage.apply(obj,[12,'男']) // 数组传参,直接执行 printMessage.bind...
1. 前言 在一场面试中最能打动面试官的其实是细节,候选人对细节的了解程度决定了留给面试官的印象到底是“基础扎实”还是“基础薄弱”,如果候选人能够举一反三主动阐述自己对一些技术细节的理解和总结,那无疑是面试过程中的一大亮点。HashMap是一个看着简单,但其实里面有很多技术细节的数据结构,在一场高端的面试中即使不问任何红黑树(Java 8中HashMap引入了红黑树来处理极端情况下的哈希碰撞)相关的问题,也会有很多的技术细...