面试那些事
程裕强
开源是人类最大的公益事业!--程裕强
展开
-
面试算法题
1、二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public static boolean find(int target, int [][] array) { int m = array.l原创 2017-12-11 20:00:09 · 510 阅读 · 5 评论 -
Hadoop Map中如何处理跨行Block和InputSplit
比如对于那么对于一个记录行形式的文本大于128M时,HDFS将会分成多块存储(block),同时分片并非到每行行尾。这样就会产生两个问题 1. Hadoop的一个Block默认是128M,那么对于一个记录行形式的文本,会不会造成一行记录被分到两个Block当中? 2. 在把文件从Block中读取出来进行切分时,会不会造成一行记录被分成两个InputSplit,如果被分成两个InputSplit...转载 2018-01-24 22:41:54 · 1474 阅读 · 2 评论 -
Java HashSet源码分析
1、源码分析废话不多说,直接上代码,相关解释请参见注释package java.util;/** * * @param <E> the type of elements maintained by this set * * @see Collection * @see Set * @see TreeSet * @see Ha...原创 2018-01-26 10:37:34 · 429 阅读 · 0 评论 -
基于Lock+Condition实现生产者消费者模式
package demo;import java.util.ArrayList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;...原创 2018-01-27 17:47:00 · 1065 阅读 · 0 评论 -
Java设计模式之观察者模式(发布/订阅模式)
1、概述观察者模式又称为发布/订阅(Publish/Subscribe)模式观察者设计模式涉及到两种角色:主题(Subject)和观察者(Observer)(1)Subject模块 Subjec模块有3个主要操作addObserver():注册添加观察者(申请订阅)deleteObserver():删除观察者(取消订阅)notifyObserver():主题状态发生变化时通...原创 2018-01-31 21:28:35 · 21412 阅读 · 4 评论 -
Java设计模式之静态代理和动态代理(简单例子)
1、代理模式一个生活中的例子:明星都有一个自己的经纪人,这个经纪人就是他们的代理人。 当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人。比如张学友在没有出名之前,我们可以直接找他唱歌,跳舞,拍戏;但是张学友出名之后,他干的第一件事就是找一个经纪人,这个经纪人就是张学友的代理人(代理)。 当我们需要找刘德华表演时,不能直接找到张学友了,只能是找其代理人,具体事务和代理人谈,相...原创 2018-02-01 20:59:55 · 632 阅读 · 0 评论 -
Java设计模式之适配器模式
1、适配器模式1.1原理适配器模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或适配者类。 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。现方式主要有两种:类的适配器模式(采用继承实现)对象适配器(采用对象组合方式实现)1.2...原创 2018-02-02 09:37:26 · 354 阅读 · 0 评论 -
Java设计模式之装饰模式
1、装饰模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰者与被装饰者拥实现了共同的接口。在装饰模式中的角色有: ● 抽象接口(Component)角色:规范准备接收附加责任的对象。 ● 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 ● 装饰(Decorato...原创 2018-02-03 14:38:28 · 319 阅读 · 0 评论 -
Java设计模式之单例模式
1、一般单例模式一般单例模式口诀:两私一公。 具体说就是私有构造方法、私有静态实例、公开的静态获取方法。1.1 懒汉式public class LazySingleton { private static LazySingleton instance=null; private LazySingleton(){} /** * 在多线程的情况下...原创 2018-02-03 19:27:21 · 435 阅读 · 1 评论 -
HBase rowkey设计案例
hbase所谓的三维有序存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)三部分组成的三维有序存储。rowkey是行的主键,而且hbase只能用个rowkey,或者一个rowkey范围即scan来查找数据。所以 rowkey的设计是至关重要的,关系到你应用层的查询效率。rowkey是以字典顺序排序的,存...转载 2018-01-22 22:44:14 · 5027 阅读 · 2 评论 -
Java IO流处理 面试题汇总
说明:本节内容来源于网络汇总输入输出流是相对于内存而言的!1、面试题汇总(1)java中有几种类型的流?字符流和字节流。字节流继承inputStream和OutputStream,字符流继承自InputSteamReader和OutputStreamWriter。(2)谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞答:输入流就...原创 2018-01-27 22:17:36 · 106967 阅读 · 18 评论 -
Kafka原理框架汇总
Kafka拓扑结构1.producer: 消息生产者,发布消息到 kafka 集群的终端或服务。 2.broker: kafka 集群中包含的服务器。 3.topic: 每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。 4.partition: partition 是物理上的概念,每个 topic 包含一个或多个 part...转载 2018-01-24 15:08:39 · 845 阅读 · 0 评论