12 2016 档案
摘要:void waitForSignal() { Object obj = new Object(); synchronized(Thread.currentThread()) { obj.wait(); obj.notify(); } } 解析: 这题有两个错误的地方,第一个错误是 wait() 方法
阅读全文
摘要:1.HashMap和Hashtable都实现了Map接口 2.HashMap是非synchronized,而Hashtable是synchronized 3.HashTable使用Enumeration,HashMap使用Iterator 4.Hashtable直接使用对象的hashCode,Has
阅读全文
摘要:Log4J简介 Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台、文件、CUI组件、NT的事件记录器;还可以控制每一式条日志输出格。此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通
阅读全文
摘要:转载自:http://lxw1234.com/archives/2016/10/772.htm Spark2.0新增了Structured Streaming,它是基于SparkSQL构建的可扩展和容错的流式数据处理引擎,使得实时流式数据计算可以和离线计算采用相同的处理方式(DataFrame&SQ
阅读全文
摘要:转载自:http://lxw1234.com/archives/2015/11/569.htm 作为互联网公司,网站监测日志当然是数据的最大来源。我们目前的规模也不大,每天的日志量大约1TB。后续90%以上的业务都是需要基于日志来完成,之前,业务中对实时的要求并不高,最多也就是准实时(延迟半小时以上
阅读全文
摘要:Integer i01=59 的时候,会调用 Integer 的 valueOf 方法, 这个方法就是返回一个 Integer 对象,只是在返回之前,看作了一个判断,判断当前 i 的值是否在 [-128,127] 区别,且 IntegerCache 中是否存在此对象,如果存在,则直接返回引用,否则,
阅读全文
摘要:原文链接:https://www.zhihu.com/question/35225203/answer/123986969 1. 技术角度上,面向的数据集类型不一样:ML的API是面向Dataset的(Dataframe是Dataset的子集,也就是Dataset[Row]), mllib是面对RD
阅读全文
摘要:一、数组声明了它容纳的元素的类型,而集合不声明。 二、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。 三、数组不论是效率还是类型检查都是最好的。 1.数组是大小固定的,一旦创建无法扩
阅读全文
摘要:Java集合类与数组的区别:Java的集合类的长度是动态的,数组则是固定长度的。 Java集合类与数组的联系:使用相应的toArray()和Arrays.asList()方法可以互相转换。 首先来看看Java集合框架中的接口: Collection接口实现类中存放的是元素和Map接口实现类中存放的是
阅读全文
摘要:前言 很多初学者其实对Spark的编程模式还是RDD这个概念理解不到位,就会产生一些误解。 比如,很多时候我们常常以为一个文件是会被完整读入到内存,然后做各种变换,这很可能是受两个概念的误导: 如果你没有主动对RDDCache/Persist,它不过是一个概念上存在的虚拟数据集,你实际上是看不到这个
阅读全文
摘要:可变参数底层其实是一个数组,下面是通过反编译工具参看的字节码内容:
阅读全文
摘要:import java.util.ArrayList; import java.util.Iterator; /* * ArrayList存储字符串并遍历 * A:迭代器 * B:普通for * C:增强for */ public class ArrayListDemo { public static void main(String[] args) { //...
阅读全文
摘要:封装MyStack类 测试类: 测试结果: 测试结果是先进的元素后出来的,满足栈先进后出的特性
阅读全文
摘要:假设迭代器定义的是一个类,这样我们就可以创建该类的对象,调用该类的方法实现集合的遍历。但是呢?我们想想,Java中提供了很多集合类,而这些 集合类的数据结构是不同的,所以,存储的方式和遍历的方式应该是不同的。进而它们的遍历方式也应该不是一样的,所以,就没有定义迭代器类。 而无论你是哪种集合,你都应该
阅读全文
摘要:迭代器是遍历集合的一种方式,是依赖于集合而存在的: 现在举例一个集合: 集合的使用步骤: A:创建集合对象 B:创建元素对象 C:把元素添加到集合中 D:遍历集合 a:通过集合对象获取迭代器对象 b : 通过迭代器对象的hasNext()方法判断是否有元素 c : 通过迭代器对象的next()方法获
阅读全文
摘要:运行报错: 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 例如,某个线程在 Collection 上进行迭代时,通常不允许另一个线性修改该 Collection。通常在这些情况下,迭代的结果是不确定的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collecti
阅读全文
摘要:这里通过跟进源码看了一下内部的继承关系,里面的具体实现就没有拿出来说。通过梳理出这样的继承关系可以很清楚的看出Iterator的实现原理
阅读全文
摘要:输出结果: 通过测试结果很容易看出来前面的名字和年龄是交叉对应的和不是一个对象对应的两个属性
阅读全文
摘要:做项目的时候遇到一个问题,在Mapper和Reducer方法中处理目标数据时,先要去检索和匹配一个已存在的标签库,再对所处理的字段打标签。因为标签库不是很大,没必要用HBase。我的实现方法是把标签库存储成HDFS上的文件,用分布式缓存存储,这样让每个slave都能读取到这个文件。 main方法中的
阅读全文