自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Http请求过程

一个完整的Http请求过程常有以下7个步骤:1.建立TCP连接2.web浏览器向服务器发送请求命令3.web浏览器向服务器发送请求头信息4.服务器应答5.服务器向web浏览器发送应答头信息6.服务器向web浏览器发送数据7.关闭TCP连接 一个Http一般由4个部分组成:1.Http请求的方法或动作 比如是get还是post方法2.正在请求的URL3

2015-09-18 11:04:27 643

原创 快速排序

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。 虽然

2015-09-07 19:59:38 506

原创 TCP/IP协议三次握手与四次握手流程解析

一、TCP报文格式  TCP报文格式图:    上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。  (3)标志位:共6个,即URG、ACK、PS

2015-09-04 19:14:33 827

原创 兔子问题(斐波那契数列)

有这样一个有趣的“兔子问题”:“假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一年后共有多少对兔子?”分析:第一个月兔子没有繁殖能力,所以还是一对;两个月后生下一对兔子,共有两对;三个月后,老兔子生下一对,小兔子还没有繁殖能力,所以一共是三对,以此类推,可以列出下表表中1,1,2,3,5,8,

2015-08-30 17:07:57 18535

原创 快学Scala习题解答—第十六章 XML处理

1. (0) 得到什么?(0)(0)呢?为什么?回答:(0) 得到一个scala.xml.Node,(0)(0)也是得到scala.xml.Node。因为scala.xml.Node 实现了方法 def apply(i: Int): Node,所以支持串接调用。注意:scala-xml-x.x.x.jar 需要另外导入。?12

2015-08-24 20:38:24 1119

原创 快学Scala习题解答—第十五章 注解

15  注解  16.1  编写四个JUnit测试用例,分别使用带或不带某个参数的@Test注解。用JUnit执行这些测试 import org.junit.Testclass ScalaTest { @Test def test1(){ print("test1") } @Test(timeout = 1L) def test2(){

2015-08-24 16:52:03 1126

原创 快学Scala习题解答—第十四章 模式匹配和样例类

14 模式匹配和样例类14.1 JDK发行包有一个src.zip文件包含了JDK的大多数源代码。解压并搜索样例标签(用正则表达式case [^:]+:)。然后查找以//开头并包含[Ff]alls?thr的注释,捕获类似// Falls through或// just fall thru这样的注释。假定JDK的程序员们遵守Java编码习惯,在该写注释的地方写下了这些注释,有多少百分比的样例是会掉

2015-08-23 21:38:43 1474

原创 25个经典的Spring面试问答

1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Sp

2015-08-23 21:27:28 899 1

原创 快学Scala习题解答—第十三章 集合

14.1 编写一个函数,给定字符串,产出一个包含所有字符的下标的映射。举例来说:indexes("Mississippi")应返回一个映射,让'M'对应集{0},'i'对应集{1,4,7,10},依此类推。使用字符到可变集的映射。另外,你如何保证集是经过排序的?更新scala到版本2.10.0。有可变的可排序的Set,实际上还是TreeSetimport collection.mutabl

2015-08-23 16:59:01 1338

原创 scala学习第十三章 集合

scala集合有三类:,分别为序列(Seq),集(Set)和映射(Map)集是无先后次序的集合,不重复元素的结合+将原书添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两个集合串接在一起;-和--移除元素seq是一个有先后次序的值的序列,比如数组或列表,IndexedSeq允许我们通过整型的下标快速的访问任意元素.Sorted中,元素以某种排过序的顺序被访问.

2015-08-23 16:04:44 574

原创 快学Scala习题解答—第十二章 高阶函数

12 高阶函数12.1 编写函数values(fun:(Int)=>Int,low:Int,high:Int),该函数输出一个集合,对应给定区间内给定函数的输入和输出。比如,values(x=>x*x,-5,5)应该产出一个对偶的集合(-5,25),(-4,16),(-3,9),…,(5,25)object Test extends App { def values(fun: (Int

2015-08-22 21:52:56 2308 1

原创 快学Scala习题解答—第十一章 操作符

11 操作符11.1 根据优先级规则,3 + 4 -> 5和3 -> 4 + 5是如何被求值的?在REPL中执行即可得到结果。都是从左至右执行12.2 BigInt类有一个pow方法,但没有用操作符字符。Scala类库的设计者为什么没有选用**(像Fortran那样)或者^(像Pascal那样)作为乘方操作符呢?Scala中的操作符就是方法,其优先级是根据首字母来判断的,优先级如下

2015-08-22 16:21:46 1696

原创 快学Scala习题解答—第十章 特质

11 特质11.1 java.awt.Rectangle类有两个很有用的方法translate和grow,但可惜的是像java.awt.geom.Ellipse2D这样的类没有。在Scala中,你可以解决掉这个问题。定义一个RenctangleLike特质,加入具体的translate和grow方法。提供任何你需要用来实现的抽象方法,以便你可以像如下代码这样混入该特质:val egg =

2015-08-22 15:31:12 1492 1

原创 Scala学习第十章 特质

在Java中,类只能扩展自一个超类,可以实现任意数量的接口,但接口中只能包含抽象类,不能包含字段,scala提供"特质",而非接口,特质可以同时拥有抽象方法和具体方法,支持部分实现,类可以实现多个特质.让特质拥有具体行为存在一个弊端.当特质改变时,所有混入了改特质的类都必须重新编译一般来说特质从最后一个开始被处理在JVM 中一个类只能扩展一个超类特质构造顺序:1.首

2015-08-22 15:17:48 566

原创 正则表达式教程

本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住

2015-08-22 10:58:46 777 1

原创 快学Scala习题解答—第九章 文件和正则表达式

9 文件和正则表达式 9.1 编写一小段Scala代码,将某个文件中的行倒转顺序(将最后一行作为第一行,依此类推) Scala代码  import io.Source  import java.io.PrintWriter    val path = "test.txt"    val reader = Source.fromFile(pat

2015-08-21 21:29:03 1466 1

原创 快学Scala习题解答—第八章 继承

8 继承 8.1 扩展如下的BankAccount类,新类CheckingAccount对每次存款和取款都收取1美元的手续费class BankAccount(initialBalance:Double){     private var balance = initialBalance     def deposit(amount:Double) = { balance += amo

2015-08-20 21:06:49 1386 1

原创 快学Scala习题解答—第六章 对象

6 对象 6.1 编写一个Conversions对象,加入inchesToCentimeters,gallonsToLiters和milesToKilometers方法 Scala代码  object Conversions{      def inchesToCentimeters(){}      def gallonsToLiters(){}

2015-08-20 16:08:02 2462 1

原创 快学scala习题解答--第五章 类

5 类 5.1 改进5.1节的Counter类,让它不要在Int.MaxValue时变成负数 Scala代码  class Count{    private var value = Int.MaxValue    def increment(){if(value 1 else value }    def current = value  }

2015-08-20 14:57:46 2248 1

原创 scala学习第五,六,八章 类,对象,继承

对于取值器方法(不会改变对象状态的方法) 去掉()是一个不错的风格myCounter.increament()  //对改值器使用()println(myCounter.current)  //对取值器不使用()class Person{var age = 0}在scala中,setter和getter分别叫做age和age_=在scala中,如果字段是私有的,gett

2015-08-20 14:26:26 643

原创 快学Scala习题解答—第四章 映射和元组

4 映射和元组 4.1 设置一个映射,其中包含你想要的一些装备,以及它们的价格。然后构建另一个映射,采用同一组键,但是价格上打9折 映射的简单操作 Shell代码  scala> val map = Map("book"->10,"gun"->18,"ipad"->1000)  map: scala.collection.immutable.Map[ja

2015-08-20 11:17:56 2605

原创 scala学习第四章 映射和元组

要检查映射中是否有某个指定的键,可以用contains方法:val bobsScore = if(score.contains("Bob")) score("bob") else contain 0还有一种快捷写法:val bobsScore = score.getOrElse("Bob",0) //如果映射包含键"Bob",返回对应的值,否则,返回0val t = (1,3.14,

2015-08-20 11:15:00 484

原创 快学Scala习题解答—第三章 数组相关操作

3 数组相关操作 3.1 编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间 random和yield的使用 Scala代码  import scala.math.random    def randomArray(n:Int)={    for(i 0 until n) yield (random * n).

2015-08-20 01:01:49 2176

原创 scala学习第三章数组相关操作

val b = new ArrayBuffer[Int]() //或者 new ArrayBuffer[Int] b += 1 //ArrayBuffer(1) 用+= 在尾端添加元素 b += (1,2,3,5) //ArrayBuffer(1,1,2,3,5) 在尾端添加多个元素 b ++= Array(1,2,3) //ArrayBuffer(1,1,2,3,5,1,2

2015-08-19 20:03:31 724

原创 快学Scala习题解答—第二章 控制结构和函数

2 控制结构和函数 2.1 一个数字如果为正数,则它的signum为1;如果是负数,则signum为-1;如果为0,则signum为0.编写一个函数来计算这个值 简单的逻辑判断 Scala代码  def signum(num:Int){if(num>0)print(1)else if(num0)print(-1)else print(0)}  S

2015-08-19 16:48:27 2363 1

原创 scala学习第二章 控制结构与函数

在scala中可以将if/else表达式的值赋值给一个变量 例如: val s = if(x > 0) 1 else ovar sum = 0;val s == "hello"for(i //until 方法返回一个并不包含上限的区间 sum += s(i)也可以不需要使用下标var sum = 0for(ch <- "Hello") sum += ch每

2015-08-19 15:54:19 693

原创 快学Scala习题解答—第一章 基础

2 基础 2.1 在Scala REPL中键入3.然后按Tab键。有哪些方法可以被应用? 在scalaREPL中要键入"3.",特别要注意"."不要忘记键入下面是结果 Scala代码  !=             ##             %              &              *              +  -

2015-08-19 10:39:14 2757

原创 scala学习第一章 基础

scala中使用val,var声明变量,scala将变量或者函数的类型写在函数或变量的后面 例如 var greet : Stringscala中可以将多个值或者变量放在一起声明 例如:var greeting, age : Stringscala中用方法,而不是强制类型转换来做数值类型之间的转换 例如: 5.21.toInt 得到99, 99.toChar得到'c'scala中没

2015-08-18 21:57:39 629

原创 归并排序

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2

2015-08-18 09:13:35 631

原创 直接插入排序

直接插入排序:算法步骤:1)将第一待排序列第一个元素看作第一个有序序列,吧第二个元素到最后一个元素当成是未排序序列.2)从头到位一次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置.(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)算法示意图:算法实现:public class InsertSort { voi

2015-08-17 16:34:41 579

原创 选择排序

选择排序:和冒泡排序的比较选择排序是一种和冒泡排序很相似的排序方法,冒泡排序是通过两两比较,不断调换,逐个推进进行排序的,两两比较,和两两调换都是比较费时的,选择排序可以说是冒泡排序的一种改进.冒泡排序每趟遍历比较的目的是要找出最小值,但是过程中很多交换都是无价值的交换,很浪费时间.所以选择排序的做法是:每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无

2015-08-17 14:27:59 817

原创 冒泡排序

/*冒泡排序基本思想:把记录当作一个纵向排列,每趟排序自底向上排列,每次进行相邻比较,如果第上面的数比下面的大,就调换位置,每趟排序都会使排序范围内最小的数像旗袍一样上浮到对应的位置. 初态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟 38 12 12 12 12 12 12

2015-08-16 17:46:27 760

原创 Spark RDD API详解(一) Map和Reduce

RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部分,将介绍S

2015-08-07 15:44:19 679

翻译 Spark开发指南

Spark开发指南从高的层面来看,其实每一个Spark的应用,都是一个Driver类,通过运行用户定义的main函数,在集群上执行各种并发操作和计算Spark提供的最主要的抽象,是一个弹性分布式数据集(RDD),它是一种特殊集合,可以分布在集群的节点上,以函数式编程操作集合的方式,进行各种各样的并发操作。它可以由hdfs上的一个文件创建而来,或者是Driver程序中,从一个

2015-08-07 14:51:08 774

原创 Spark学习笔记(一)

Spark知识掌握第一阶段要熟练掌握Scala的trait、apply、函数式编程、泛型、逆变与协变等;第二阶段:  精通Spark平台本身提供给开发者API1,掌握Spark中面向RDD的开发模式,掌握各种transformation和action函数的使用;2,掌握Spark中的宽依赖和窄依赖以及lineage机制;3,掌握RDD的计算流

2015-08-04 16:33:08 641

原创 JAVA集合类型(二)

JAVA集合类型 (现代的变量集群) List (接口)    特点:a. 先后顺序敏感,LIST结构中的元素必须分出谁先谁后。b. 可以重复        主要用来模拟队列(queue)等生活中对先后顺序敏感的应用场景。          ArrayList (以数组为基础实现)            数组在使用上较为麻烦,ArrayList是一个类,其对

2015-07-26 11:34:00 534

转载 大数据时代

一、大数据出现的背景进入2012年,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。它已经上过《纽约时报》《华尔街日报》的专栏封面,进入美国白宫官网的新闻,现身在国内一些互联网主题的讲座沙龙中,甚至被嗅觉灵敏的证券公司等写进了投资推荐报告。数 据正在迅速膨胀并变大,它决定着企业的未来发展,虽然现在企业可

2015-07-25 21:20:24 1645

原创 Java设计模式之单例模式

本文转载自博客http://blog.csdn.net/jason0539概念:  java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实

2015-07-14 12:12:21 367

原创 HDFS的可靠性

冗余副本策略机架策略心跳机制:1. hadoop集群是master/slave模式,master包括Namenode和Jobtracker,slave包括Datanode和Tasktracker。2. master启动的时候,会开一个ipc server在那里,等待slave心跳。3. slave启动时,会连接master,并每隔3秒钟主动向master发送一个“心跳”,这个时

2015-07-09 21:06:43 1320

原创 对程序员非常重要的20个软技能

软技能通常是被低估的。几乎所有的软件工程师都知道要关注技术的提高,但你忽视的软技能很可能会影响你的职业生涯。下面我将介绍24个对程序员非常重要的软技能,以及我对这些技能的看法和感受。1、学会如何学习学无止境,当然这里的学习并不仅仅指书上的知识,还有生活中,互联网上的。2、制定阅读规划我的生活常常没有规划。我也不知道这次我是否能够真正地执行我的阅读规划。但是按

2015-07-09 19:33:01 1187 1

空空如也

空空如也

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

TA关注的人

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