自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spark 体系架构

首先来看一张Spark 1.3.0 官方给出的图片,如下:在这张图中,你会看到很多的术语 ,诸如“executor”, “task”, “cache”, “Worker Node” 等。原作者表示,在他开始学spark的时候,上述图是唯一一张可以找到的图片(Spark 1.3.0),形势很不乐观。更加不幸地是,这张图并没有很好地表达出Spark内在的一些概念。因此,通过不断地学习,

2017-02-26 16:02:40 2991

原创 SSH免密登录(笔记)

三台主机,分别是Master,Slave1,Slave2,需要他们之间能够互相免密访问。1.首先修改hosts文件,vim /etc/hosts2.如果没有安装SSH,则先进行安装 yum -y install openssh-server3.然后修改vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes Au

2016-12-16 10:46:40 1836

原创 搭建Spark2.0源码研读和代码调试的开发环境

搭建Spark源码研读和代码调试的开发环境Table of Contents源码获取与编译从Github上获取Spark源码编译Spark项目源码导入与代码运行导入源码到Intellij IDEA 16运行实例代码1. 配置运行参数2. 添加缺失的flume sink源代码3. 添加运行依赖的jars4. 成功运行实例代码单步

2016-12-15 15:11:47 2769

原创 美团大众点评面试经验——后台开发

经历了3,4月份的实习面试,再到9,10月份的校招,现在所谓的金九银十已经接近了尾声,是时候该总结一下了,非常感谢之前的很多前辈写的面经,让我能够顺利通过很多面试,所以我也会把我的面试经历分享出来,希望能帮到后面的学弟学妹们。新美大的笔试还是比较简单的,好多同学都通过了,笔试的重点还是编程题,希望大家能好好准备。一面(初试1):美团的面试时间需要自己预约,我预约的是下午的14:15分,到了酒店之后,

2016-10-23 17:07:10 10115 1

原创 百度云计算部门面试

感觉百度部门之间面试都没加锁呢。。一个个部门都开始来面试了。。。今天面了一个百度的云计算部门,对方是一个姐姐,感觉还挺客气的,说重点吧,讲讲面试的过程,不过感觉那个姐姐就是列了个题目列表,按顺序一个个问的。(1)for和foreach的区别(从源码角度分析一下)? 答:在固定长度或长度不需要计算的时候for循环效率高于foreach。 在不确定长度,或计算长度有性能损耗的时候,用foreach比

2016-08-30 20:37:41 2393 1

原创 百度云计算部门面试

感觉百度部门之间面试都没加锁呢。。一个个部门都开始来面试了。。。今天面了一个百度的云计算部门,对方是一个姐姐,感觉还挺客气的,说重点吧,讲讲面试的过程,不过感觉那个姐姐就是列了个题目列表,按顺序一个个问的。(1)for和foreach的区别(从源码角度分析一下)? 答:在固定长度或长度不需要计算的时候for循环效率高于foreach。 在不确定长度,或计算长度有性能损耗的时候,用foreach比

2016-08-30 20:36:20 6482

原创 堆排序

堆的定义如下:  n个元素的序列{k0,k1,…,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。   ” ki<=k2i,ki<=k2i+1;或ki>=k2i,ki>=k2i+1.(i=1,2,…,[n/2])”   若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,  则完全二叉树中每一个节点的值的都大于或等于任意一个字节的值(如果有的话),称之为大

2016-08-26 23:43:05 1671

原创 一些常见的面试问题

一、Java基础1. String类为什么是final的。2. HashMap的源码,实现原理,底层结构。3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。4. 描述一下ArrayList和LinkedList各自实现和区别5. Java中的队列都有哪些,有什么区别。6. 反射中,Class.forName和classloade

2016-08-26 23:13:24 2227 1

原创 同程旅游——Java开发面经

同程旅游是苏州的一家公司,表示还是很不错的,哈哈。先进行自我介绍,然后开始面试。不过面试过程,基本都是一些基础问题的考察。(面试官全程都在说问您一个问题哈?再问您一个问题哈。。。很少见到面试官说您的。。>0.0< )以下是所问到问题的列表,不深,但是相当广啊,各方面都有所涉及。(1)简单介绍一下朴素贝叶斯分类?原理是什么(大哥?我投的是Java!!还好看过)(2)ID3算法?适用场景?有什么优缺点?

2016-08-26 21:34:39 7462

原创 360企业安全基础大数据部——Java开发面经

早上10点,面试官如约打来电话,开始面试。和预料的不一样,并没有让做自我介绍。 罗列一下问到的题目:(1)“==”和“equals”的区别? (2)String的equals具体的实现方式? public boolean equals(Object anObject) { if (this == anObject) { return true;

2016-08-26 16:51:00 3158

原创 深入理解Java线程池

本文要解决的问题;线程池一般都是面试过程中常问的问题,本文总结一下线程池的一些基本内容。线程池的适用场景:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Ja

2016-08-19 16:45:30 947

原创 最美房子编程题

题目描述有一个n*m的数组grid,数组值为0或1,为1之处代表房间,相邻的1是同一所屋子的房间(斜线相邻不算),求一共有多少屋子?如0 0 0 0 0 0 1 1 0 00 0 0 0 00 0 0 1 10 0 0 0 0则图中屋子总数则为2个。分析一开始想到的是利用并查集的想法来做,考虑到时间复杂度,

2016-08-18 15:42:25 1224

原创 Java关键字final、static总结

本文要解决的问题:对Java关键字Final和Static进行总结。一、final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。        final类不能被继承,没有子类,final类中的方法默认是final的。

2016-08-16 22:25:17 1004

原创 百度网页搜索部门面试经历

主要叙述一下面试的过程,顺便进行一定的总结。面试官首先让进行自我介绍一下,我大概介绍了一下自己的基本信息,包含本科和硕士阶段的研究方向。然后面试官开始提问,说我简历上有很多项目,咱们倒着说一下项目吧。第一个是关于网络通信的项目。巴拉巴拉。。。项目简单介绍一下,然后面试官提问项目相关问题。。。为啥用UDP,不用TCP,TCP和UDP的主要区别。。。网络问的很少。第二个是几个Java

2016-08-10 19:18:18 5121

原创 单例模式

本文要解决的问题:了解23钟设计模式之一的单例模式。概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有

2016-08-08 22:10:23 1840

原创 Java的回调机制

本文要解决的问题:简单分析一下Java 的回调机制。一、回调函数在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。所谓回调函数是指:在程序中,A类和B类分别有两个函数M1、M2,其中A类首先调用了B类的M2函数,然后B类通过接口回调A类M1函数,我们就将M1称之为回调函数。

2016-08-08 14:21:21 549

原创 深入理解Java内存模型

并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之

2016-08-08 14:00:16 709

原创 mysql索引总结----mysql 索引类型以及创建

本文要解决的问题:系统总结mysql数据库索引关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被

2016-08-06 20:44:01 995

转载 一致性哈希算法(consistent hashing)

本文要解决的问题:从原理上理解一致性哈希算法。转自:http://blog.csdn.net/cywosp/article/details/23397179/一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法

2016-08-06 10:17:47 703

原创 Struts2与Struts1之间的区别和对比

本文要解决的问题:从各方面比较Struts2与Struts1之间的区别。1、Action 类:  Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。  Struts2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去

2016-08-04 22:48:21 1085

转载 Bloom Filter 布隆过滤算法学习

BloomFilter——大规模数据处理利器   Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例   为了说明Bloom Filter存在的重要意义,举一个实例:  假设要你写一个网络蜘蛛(web crawler

2016-08-03 23:10:57 625

原创 各种排序算法的总结和比较

本文要解决的问题:总结一下各种排序算法的特点。1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据

2016-08-03 22:34:43 1847 1

原创 归并排序

import java.util.Arrays;public class MergeSort { /** * 归并排序 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 * 时间复杂度为O(nlogn) * 稳定排序方式 * @p

2016-08-03 22:23:07 312

原创 快速排序

主要写一下快速排序,基本思想就是: 随机取一个值作为中间值,此处我们取第一个,然后按照大于中间值得数放到其右边,小于中间值的数放到其左边,依次下去,知道排序完成。 时间复杂度为:O(nlogN) 空间复杂度:O(N)public class quickSort { /** * @param args */ public static void main(St

2016-08-03 22:19:25 336

转载 PageRank算法简介及Map-Reduce实现

转自:http://www.cnblogs.com/fengfenggirl/PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。一、什么是pagerank  PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(g

2016-08-03 19:41:11 1403

原创 spark + ansj 对大数据量中文进行分词

本文要解决的问题:实现将Spark与中文分词源码(Ansj)相结合,进行一系列中文分词操作。目前的分词器大部分都是单机服务器进行分词,或者使用hadoop mapreduce对存储在hdfs中大量的数据文本进行分词。由于mapreduce的速度较慢,相对spark来说代码书写较繁琐。本文使用 spark + ansj对存储在hdfs中的中文文本数据进行分词。 首先下载ansj源码文件,下载地址为ht

2016-08-03 13:40:47 2458

原创 HTTP请求报文和HTTP响应报文

本文要解决的问题:详细分析HTTP请求报文和HTTP响应报文HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

2016-08-03 11:00:10 892

原创 TCP 滑动窗口机制

本文要解决的问题:了解滑动窗口机制的原理和基本方法。(1).窗口机制    滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些

2016-08-03 10:00:41 4033 1

原创 TCP/IP协议与UDP协议的区别

本文要解决的问题:总结一下TCP/IP协议与UDP协议的区别TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?

2016-08-02 15:12:53 583

原创 剑指offer——字符串空格替换

题目描述:请实现一个函数,将一个字符串中的空格替换成”%20”。例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。思路:一组单词不是有空格嘛,所以直接使用String类的split函数直接分割为char数组不就好了,不过在这之前需要判断一下第一个位置和最后一个位置是否有空格,然后针对空格的出现情况再进行替换。发现OJ的时候,如你所猜,自然是失败的。因

2016-07-30 19:01:14 566

原创 剑指offer——从尾到头打印链表

题目描述:输入一个链表,从尾到头打印链表每个节点的值思路:用一个辅助存储栈来实现。代码实现:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }*

2016-07-30 18:51:22 565

原创 剑指offer——在二维数组中查找元素

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:由于题目条件的成立,所以使得这道题可以使用对角线的方法完成,可以从右上角的元素考虑,如果目标查找元素小于右上角的元素,那么不可能在右上角元素所在的列,如果目标大于剩余列的右上角的元素,那么不可能在该右上角元素所在的行。依

2016-07-30 18:45:12 536

原创 剑指offer——重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:在完成代码之前,我自己分析了一下如何根据前序遍历和中序遍历的结果构建一棵二叉树。首先,根据二叉树遍历的性质,由前序遍历的结果序列可知该二叉树的根节点是

2016-07-30 15:50:02 426

原创 剑指offer——用两个栈实现队列

题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思想:栈的特点是先进后出,而队列的特点是先进先出。题目中提到使用两个栈实现队列,好像有戏。现在问题是如何把栈的出栈和入栈与队列的入队和出队联系起来?因为现在只有栈,所以在实现的队列中,只能先往栈中添加元素,这点比较好理解;那么出队呢,由于先进去的元素被压在栈底,而如果是队列的话,必须是栈底的那个元素先出队。

2016-07-30 15:16:25 382

原创 剑指offer——旋转数组的最小数字

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0思路:这题其实不用考虑旋转数组的特性,采用顺序查找的方式也能很快写出实现代码。 不过也能使用二分查找的思想,快

2016-07-30 15:11:07 412

原创 剑指offer——斐波那契数列

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39思路:比较简单,就是一个循环的事情。但要特殊考虑前几个值。代码实现:public class Solution { public int Fibonacci(int n) { int a=1,b=1,c=0; if(n<=0){ ret

2016-07-30 11:09:17 441

原创 剑指offer——变态跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:现在青蛙的能力升级了,不仅能一次跳1级,还能一次跳n级,这是了不起的进步(说笑的)。不管如何,我们仍然使用数学归纳法进行分析:当n=1时,跳法只有1种,用f(1)=f(1-1)=1表示,下同; 当n=2时,可以一次跳1级,跳两次,也可以一次两2级,跳法有2种,f(2) =

2016-07-30 10:51:13 476

原创 剑指offer——跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:这种问题的思路一般是采用数学归纳法,当n=1时,只有一种跳法;当n=2时,青蛙可以一次跳2级,也可以一次跳两级,需要跳两次,所以有两种跳法;当n=3的时候,首先考虑一次跳1级的情况,由于有3级,所以还有2级没跳,而跳两级的跳法已经在前面n=2的情况中计算得到了;下面考虑一次跳2级的情况,同样跳完

2016-07-30 10:44:12 353

原创 剑指offer——矩形覆盖问题

题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:我们采用从能够简单到复杂的思路思考这个问题,当n=1的时候,只有一个2*1的矩形,所以只有一种方法,记为f(1)=1;当n=2的时候,是两个2*1的矩形,这时候具有两种方式去覆盖这个矩形了(这时候应该是一个正方形),一种是竖着放,一种是横着放,所以有两种方法

2016-07-30 10:35:05 2526 1

原创 剑指offer——二进制中1的个数

题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:一个数与该数减一的结果进行与运算,会把该数右边(低位)第一个1变为0,而该位左边保持不变(高位)。可以举一个简单的例子进行证明:比如1100(对应十进制是12),减去1之后的结果是1011(也就是十进制的11),两个数进行与运算之后,我们发现最后的结果是1000(对应十进制的8,当然这个8与后面没有关系,可以略过)。这样

2016-07-30 10:27:16 438

vi使用方法

vi的使用,使用比较方便。用于操作系统。。

2012-12-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除