自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

怀念过去

我不怕失败,我只怕当机会来的时候,没有准备好!

  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spark---Reciever

总体过程 首先ReceiverSupervisor启动,继而启动BlockGenerator和Receiver,其中BlockGenerator首先启动一个定时器定时将接收的数据封装成Block,然后启动一个线程不断将Block数据推送给BlockManager。而Receiver启动后不断接收数据,并不断将接受的数据添加到BlockGenerator中,这样BlockGenerato

2017-11-26 21:21:01 288

原创 spak学习----窗口函数参数理解

spak学习—-窗口函数Spark Streaming提供了窗口计算(window computations)的功能,允许我们每隔一段时间(sliding duration)对过去一个时间段内(window duration)的数据进行转换操作(tranformation).slideDruation AND windowDurationslideDruation控制着窗口计算的频度,window

2017-11-26 20:35:46 532

原创 c++ socket编程中accept阻塞问题

在用c++编写socket代码时,出现了,accept不阻塞的问题,感觉很是苦恼,一直查找问题,发现代码时没有问题的。最终发现把#include <thread> #include <mutex>屏蔽掉可以解决,当时就在想为什么出现这种情况呢,后来,在大神的指点下,发现,这是因为在使用using namespace std;出现的错误,所以希望大家尽量不要使用using namespace st

2017-03-29 13:26:21 6324

原创 Git学习:分布式版本控制(三)

分布式版本控制创建与合并分支每次提交,Git都把它们串成⼀一条时间线,这条时间线就是一个分支。 HEAD指向当前分支。 master用来表示主分支。      当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:       从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次

2017-02-19 18:21:11 457

原创 Git学习:分布式版本控制(二)

分布式版本控制远程仓库  Git是分布式版本控制系统,同一个Git仓库,可以分布在不同的机器上。怎么分布呢?实际情况是,找一台电脑24小时开机,其他每个人都从这个服务器仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。   为了学习远程仓库,可以使用GitHub网站,这个网站相信大家都很熟悉了。 步骤如下: 1. 创建SSH Key。  在用

2017-02-19 15:32:35 290

原创 Git学习:分布式版本控制(一)

分布式版本控制1. 集中式和分布式的区别 集中式版本库存放在中央服务器,要先从中央服务器获得版本到自己的电脑上,再干活。修改完成之后,再返回到中央服务器。 分布式版本没有中央服务器,每个人的电脑存版本库。2. 创建版本库1.安装完成后设置姓名和Email: git config --global user.name "XX" git conifg --glo

2017-02-17 16:19:21 271

原创 动态规划---走格子

里边有: 无障碍走格子和有障碍走格子 在面试时,没有打出来,现在看看。 这里写链接内容

2016-12-27 14:55:24 1527

原创 VC++获取计算机串口

void Get_serialport(){ HKEY hKey; if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm", NULL, KEY_READ, &hKey) == ERROR_SUCCESS){// 打开串口注册表 int i = 0;

2016-11-14 21:58:58 1223

原创 VC++ 文件读取并在CListControl上展示

VC++中对文件读取操作获取文件的pathvoid getPath(){ char filepath[256], sDrive[256], sDir[256], sFname[256], sExt[256], pStrPath[256]; GetModuleFileName(AfxGetInstanceHandle(), filepath, 256); _tsplitpath

2016-11-11 11:04:33 922

原创 根据前序遍历中序遍历求二叉树

public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root=reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1); return root; } public TreeNode reConstruc

2016-08-23 17:01:40 522

原创 动态规划:

如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大。 输入描述 Input Description 第一行是数塔层数N(1<=N<=100)。 第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行。 输出描述 Output Description 输出最大值。 样例输入 Sample Input 5

2016-08-17 10:24:43 648

原创 动态规划:击鼓传花

题目描述 学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主持人在旁边背对着大家开始击鼓,鼓声开始之后拿着花的同学开始传花,每个同学都可以把花传给自己左右的两个同学中的一个(左右任意),当主持人停止击鼓时,传花停止,此时,正拿着花没传出去的那个同学就要给大家表演一个节目。 聪明的小赛

2016-08-16 20:44:36 4829 1

原创 求正数数组的最小不可组成和

给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念: 1,arr的所有非空子集中,把每个子集内的所有元素加起来会出现很多的值,其中最小的记为min,最大的记为max; 2,在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成和; 3,在区间[min,max]上,如果所有的数都可以被arr的某一个子集相加得到,那

2016-08-16 18:39:06 357

原创 递归:排成一条线的硬币博弈问题

面值为正数的硬币放置成一排,玩家1和玩家2轮流拿走硬币,规定每个玩家在拿硬币时,只能拿走最左或最右的硬币。 例如: 硬币面值与排列为:1,2,3,4,5,现在轮到玩家1拿硬币。 在当前状态下,玩家1只能拿走1或5, 如果玩家1拿走1,则排列变为2,3,4,5,那么接下来玩家2可以拿走2或5,然后继续轮到玩家1拿硬币… 如果玩家1拿走5,则排列变为1,2,3,4,那么接下来玩家2可以拿走1或4;然后继

2016-08-16 15:39:44 805

原创 简单模拟高响应优先调度算法

高响应比优先调度算法 在批处理系统中,用作作业调度的短作业优先算法是一个比较好的算法。其主要缺点是作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权机制,并使以速率a增加,则长作业在等待一定的时间后,必须有机会分配到处理机。该优先权的变化可描述为: 优先权=(等待时间+要求服务时间)/要求服务时间 由于等待时间加上要求服务时间,就是系统对该作业的响应时间,故该优先

2016-08-12 17:17:23 2693

原创 求两个节点的最近祖先

求两个节点的最近祖先: 思路1:如果一个节点是最近祖先的话,那么这两个节点,必须分布在该节点的左右子树上。 思路2:非递归后序遍历,分别找到根节点到两个节点的路径,求出最近祖先。 本此根据思路二写出 //求从根节点到指定节点之间的路径 public void Route(Node node,Arraylist<Node> arraylist){ Stack<

2016-08-11 17:13:14 384

原创 百度2017暑期实习生编程题

短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);是对FCFS算法的改进,其目标是减少平均周转时间。 短作业优先调度算法基于这样一种思想: 运行时间短的优先调度; 如果运行时间相同则调度最先发起请求的进程。 PS:本题题面描述有误,但原题如此,不宜修改,实际优先级如下: 1)接到任务的时间; 2) 如果接

2016-08-10 17:32:35 466

原创 链表的倒序遍历

链表的倒序遍历,我们很容易想到,利用栈来存储,再输出 public void reversePrint(){ Stack<Node> stack=new Stack<Node>(); Node p=head; while(p!=null){ stack.push(p); p=p.next;

2016-08-03 19:31:14 896

原创 树的遍历

二叉树的递归遍历 /** 递归实现前序遍历 */ public void preorder(Node p) { if (p != null) { System.out.println(p.data); preorder(p.getLeft()); preorde

2016-08-01 17:31:03 202

原创 多线程——死锁的例子

在面试的过程中可能会要求写出一个死锁的例子:public class Lock implements Runnable{ public static Object o1=new Object(); public static Object o2=new Object(); int flage; public Lock(int flage){ this.

2016-07-28 14:50:59 586

原创 线程的yield方法和jion方法

yield()方法线程的yield方法:让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。jion()方法 阻塞所在线程,等调用它的线程执行完毕,再向下执行。

2016-07-28 14:29:08 564

转载 策略模式

这个策略模式讲的很清楚,也很有意思。 这里写链接内容

2016-07-26 17:06:22 174

原创 设计模式——适配器模式

适配器模式有两种:类的适配器: //需要被适配的类public class Adaptee{ public void printAdaptee(){ System.ou.println("适配器的类"); }}//目标接口public interface Target{ void printtarget();}//适配器public c

2016-07-26 16:46:24 182

原创 java IO流

JavaIO流的分类: 字节流、字符流 输入流 输出流 节点流 处理流 Tables 字节流 字符流 输入流 InputStream Reader 输出流 Outputstream WriterInputStream中的方法:  read() 读取一个字节  read(byte[] buffer)读取一个字节数组

2016-07-21 10:36:29 291

转载 红黑树

最近在学红黑树,发现一篇比较好的介绍红黑树的博客。http://www.cnblogs.com/skywang12345/p/3245399.html

2016-07-20 09:07:01 161

原创 队列和栈

两个栈构成一个队列问题描述:用两个栈组成一个队列这个很容易想出,队列的特点是先进先出,栈的特点是先进后出。思路:操作顺序push(1),push(2),push(3),push(4),pop(),pop(),push(5),push(6),pop().pop()....对于push(1),push(2),push(3),push(4),先存入一个stack1中,下一个操作pop(),则需要将s

2016-07-05 16:38:40 273

原创 数据结构:遍历一次获得链表的倒数第N个节点

最近在学习链表中,发现一道题: 遍历一次链表,获得链表的倒数第N个节点思路: 要想获得倒数第N个节点,就会不自然的想到,倒数第N个节点是正数第M-N+1个节点(假设链表长度是M), 这时候,我们以,M-N+1和M+1这两个节点为标准,一起向前遍历,直到M-N+1的节点为1,这时,M+1的节点为N+1. 我们将p1和p2分别替换上边的指针,且p1和p2之间相差n个节点

2016-07-04 15:59:10 1016

原创 JVM内存管理和垃圾回收

学习JVM最主要的两大部分内存管理内存管理主要包括:程序计数器、堆、java栈、本地方法栈、方法区- 程序计数器 程序计数器主要是用来存储下一条要执行的指令的地址,这和在CPU中的程序计数器的作用相同。因此,每一个线程都要有一个自己的程序计数器,用来存放本个线程的下一个指令的地址,从而能够使得不同线程之间来回切换。- 堆 Java中的堆是用来存储对象本身的以及数组(当然,数组引用是存

2016-06-29 16:46:02 216

原创 线程volatile

最近学习了多线程操作中的volatile关键字1. 内存模型  大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交

2016-06-28 20:03:29 268

原创 后缀表达式计算算术表达式

最近在学习二叉树,学习了怎样计算算术表达式计算算术表达式的大体思路是: 1. 首先是将中缀表达式转换成后缀表达式 2. 将后缀表达式,借助栈就能轻易的求出值 例如: (1+2)x3的后缀表达式是 12+3x,借助一个栈,将1,2放进去,在发现是+,将1,2弹出,计算1+2,计算出结果(3),放进去,栈中有3,3再遇见‘x’号,将3,3弹出,计算出结果(9),最终计算出结果。

2016-06-28 10:19:16 805

原创 二叉排序树转换成双向链表

在面试过程中经常会出现二叉排序树转换成双向链表的问题 思路:在二叉树的学习中,我会发现,基本所有的问题都可以用树的先序遍历、中序遍历、后序遍历解决,所以我们可以使用这个思路来解决。 在此问题中,使用的是:后序遍历。 /* * 将二叉树转换成双向链表:直接在树上改动(后序遍历) */ public Node change_Linkedlist(Node head)

2016-06-27 19:38:22 1807 1

原创 动态代理

最近学习了一下动态代理,感觉很有意思,就简单学习了一下,动态代理的思路比较简单。 动态代理:顾名思义,就是为了能够对某个类进行代理,为什么要就行代理呢?在某些时候,我们希望在不改变原始类的方法的情况下,能够在方法的前面和后面,添加诸如:运行时间,添加日志等等,这个时候就要使用动态代理了。 好了,废话不多说,上代码。//接口pubic interface HelloWorldImpl{

2016-06-19 14:45:06 287

原创 java多线程:循环输出ABC

java多线程的经典问题: 问题:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,要求, 同时启动三个线程, 按顺序输出ABC, 循环10次。首先写出测试类public class Main { public static void main(String[] args) throws Exception{ Object a=new Object()

2016-06-13 21:53:10 7043

原创 生产者-消费者

在学习java 的多线程中,生产者和消费者的问题是最经典的问题,因此在学习了java的多线程后 本文假设的是只有一个篮子、一个生产者和消费者首先需要创建一个类Apple(苹果)的类,这个类是产品。//创建一个苹果类,作为产品public class Appple{ private int i; public Appple(int i){ this.i=i;

2016-06-13 20:14:33 298

原创 单例模式

单例模式单例模式:顾名思义,使产生的对象个数只有一个。那么怎么来使产生的对象只有一个呢,我们产生一个想法,将构造方法创建成private,这样就只能在本类中产生对象。 1.饿汉式单例public class Single{ private static Single single=new Single (); private Single(){ } public s

2016-06-13 16:38:21 234

原创 工厂模式

java工厂模式分为三种:简单工厂、工厂方法、抽象工厂简单工厂: 又叫静态工厂,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数 来决定返回实现同一接口的不同类的实例。 public static xxxx factory(String name){ switch(name): case appl

2016-06-13 15:28:31 225

空空如也

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

TA关注的人

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