#ap

apply、call和bind

虽然在一个独立的函数调用中,根据是否是strict模式,this指向undefined或window,不过,我们还是可以控制this的指向的!要指定函数的this指向哪个对象,可以用函数本身的apply方法,它接收两个参数,第一个参数时在其中运行函数的作用域,第二个参数是Array的实例,也可以是arguments对象...
代码星球 ·2021-01-26

hadoop学习第四天-Writable和WritableComparable序列化接口的使用&&MapReduce中传递javaBean的简单例子

1.如果一个javaBean想要作为MapReduce的key或者value,就一定要实现序列化,因为在Map到Reduce阶段的时候,只能是传输二进制数据,不可能将字符流直接进行RPC传输,只要一个javabean实现了序列化和反序列化,就可以做为key或者value最简单的序列化和反序列化就是实现Writable接...

hadoop学习第三天-MapReduce介绍&&WordCount示例&&倒排索引示例

(最好以下面的两个示例来理解原理)Map-reduce的思想就是“分而治之”MapMapper负责“分”,即把复杂的任务分解为若干个“简单的任务”执行“简单的任务”有几个含义:1数据或计算规模相对于原任务要大大缩小;2就近计算,即会被分配到存放了所需数据的节点进行计算;3这些小任务可以并行计算,彼此间几乎没有依赖关系一...

ConcurrentHashMap底层实现原理(JDK1.8)源码分析

  ConcurrentHashMap相比HashMap而言,是多线程安全的,其底层数据与HashMap的数据结构相同,数据结构如下:    说明:ConcurrentHashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树是为了提高查找效率。  1、类的继承关系 publiccla...

HashMap闭环(死循环)的详细原因(转)

为何出现死循环简要说明  HashMap是非线程安全的,在并发场景中如果不保持足够的同步,就有可能在执行HashMap.get时进入死循环,将CPU的消耗到100%。  HashMap采用链表解决Hash冲突。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行get操作就会产...

Redis和MemCache静态Map做缓存区别

  本地缓存:使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。  分布式缓存:使用redis或memcached之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致...

HashTable和HashMap的区别详解(转)

  HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。    HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentH...

HashMap、Hashtable、ConcurrentHashMap的原理与区别(简述)

HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize=olesize*2+1计算index的方法:index=(hash&...

Redis学习之API学习及Jedis源码原理分析

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisson,Je...

设计模式之适配器模式(Adapter)详解及代码示例

  适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。  适配器模式分为类结构型模式和对象结构型模式两种:在类适配器模式中,适配器与适配者之间是继承(或实现)关系;在对象适配器模式中,适配器与适配者之间是关联关系。前者类之间的耦合...

Netty学习之核心组件ByteBuf及API

  Netty提供的ByteBuf不同于JDK中NIO的ByteBuffer,ByteBuf是netty中数据传输的容器,是Netty自己实现的,作为NIOByteBuffer的替代品,提供了更好的API供开发者使用。相较于NIO的ByteBuffer更具有卓越的功能性和灵活性。具体NIO的ByteBuffer如何实现...

Netty学习之核心组件(AbstractBootstrap、Bootstrap、ServerBootstrap)

  Netty的核心组件的设计都很模块化,如果想要实现一个应用程序,就需要将这些组件组装到一起。Netty通过Bootstrap类,以对一个Netty应用程序进行配置(组装各个组件),并最终使它运行起来。对于客户端程序和服务器程序所使用到的Bootstrap类是不同的,后者需要使用ServerBootstrap,这样设...

TreeMap核心源码实现解析

  TreeMap实现了SotredMap接口,它是有序的集合。而且是一个红黑树结构,每个key-value都作为一个红黑树的节点。如果在调用TreeMap的构造函数时没有指定比较器,则根据key执行自然排序,如果指定了比较器则按照比较器来进行排序。  1、继承关系publicclassTreeMap<K,V&g...

HashMap、HashTable差异详解

  HashMap和HashTable有什么不同?在面试和被面试的过程中,我问过也被问过这个问题,也见过了不少回答,今天决定写一写自己心目中的理想答案。代码版本  JDK每一版本都在改进。本文讨论的HashMap和HashTable基于JDK10.0.1。  HashTable产生于JDK1.1,而HashMap产生于...

TreeMap源码实现类中文全解析

/***基于红黑树(Red-Blacktree)的NavigableMap实现。该映射根据其键的自然顺序进行排序,*或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。**此实现为containsKey、get、put和remove操作提供受保证的log(n)时间开销。*这些算法是Corme...
首页上一页...106107108109110...下一页尾页