自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

仰望星空的实干家

越努力,越幸运

  • 博客(32)
  • 收藏
  • 关注

原创 Java设计模式之观察者模式

本篇文章介绍一种设计模式——观察者模式,该篇文章内容参考:《JAVA与模式》之观察者模式一. 观察者模式简介一个软件系统里面包含了各种对象,就像一片欣欣向荣的森林充满了各种生物一样。在一片森林中,各种生物彼此依赖和约束,形成一个个生物链。一种生物的状态变化会造成其他一些生物的相应行动,每一个生物都处于别的生物的互动之中。 同样,一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其他的对象

2017-08-29 15:39:28 362

转载 git使用介绍

原文地址:(http://www.jianshu.com/p/072587b47515?utm_source=desktop&utm_medium=timeline) 在日常工作中,经常会用到Git操作。但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼。本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令。一、Git工作流程以上包括一些简单而常

2017-08-29 11:24:39 415

原创 更新linux系统内核后分辨率问题解决

今天更新了linux系统内核(升级到4.9版本),方法如下:下载Linux kernel 4.9的Debian软件包可以从 http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/ 下载。 因为原先系统是64位,所以下载的软件包为linux-headers-4.9.0-040900_4.9.0-040900.201612111631_all.deb

2017-08-18 10:59:51 3076

转载 Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本

原文地址:[Ubuntu 14.04 LTS下升级gcc](http://www.cnblogs.com/BlackStorm/p/5183490.html) 如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本。 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的。怎么办呢?我们或许可以自己去编译用旧版本的gcc去编译新

2017-08-18 10:21:15 722

转载 堆与堆排序

转载:白话经典算法系列之七 堆与堆排序  堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是

2017-08-15 16:00:03 381

原创 归并排序Java实现

文章内容参考:【排序算法】归并排序原理及Java实现 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。1. 基本思想归并排序就是利用归并的思想实现的排序方法。而且充分利用了完全二叉树的深度是(log(n) +

2017-08-01 16:21:01 431

原创 Java设计模式之抽象工厂模式

本篇文章介绍一种设计模式——工厂模式。工厂模式是用来封装对象的创建,减少应用程序和具体类之间的依赖,促进松耦合。根据工厂模式的应用特性,一共分为三种子模式:简单工厂模式,工厂方法模式和抽象工厂模式。本篇文章主要介绍抽象工厂模式。文章内容参考:设计模式详解——工厂模式(三)一、抽象工厂模式简介1.定义 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依

2017-07-27 09:38:50 320

原创 Java设计模式之工厂方法模式

本篇文章介绍一种设计模式——工厂模式。工厂模式是用来封装对象的创建,减少应用程序和具体类之间的依赖,促进松耦合。根据工厂模式的应用特性,一共分为三种子模式:简单工厂模式,工厂方法式和抽象工厂模式。本篇文章主要介绍工厂方法模式。文章内容参考:设计模式详解—–工厂模式(二)一. 工厂方法模式简介1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(V

2017-07-26 17:26:31 263

原创 Java设计模式之简单工厂模式

本篇文章介绍一种设计模式——工厂模式。工厂模式是用来封装对象的创建,减少应用程序和具体类之间的依赖,促进松耦合。根据工厂模式的应用特性,一共分为三种子模式:简单工厂模式,工厂方法模式和抽象工厂模式。本篇文章主要介绍简单工厂模式。本篇文章内容参考:设计模式详解——工厂模式(一)一. 简单工厂模式简介1. 定义简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Stati

2017-07-24 15:40:15 247

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

本篇文章介绍一种设计模式——单例模式,属于设计模式中的创建型模式,参考文章:设计模式详解——单例模式一. 单例模式的概念定义 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。特点 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。使用单例的好处 某些类创建比较频繁,对于一

2017-07-22 16:30:10 350

转载 你真的了解volatile吗?

volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容。一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存

2017-07-21 17:01:18 361

原创 Java设计模式之迭代器模式

本篇文章主要讲述设计模式中的迭代器模式,是行为模式之一,参考文章:23种设计模式(13):迭代器模式 一. 迭代器模式的定义迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也让责任各得其所。二. 迭代器模式结构 迭代器模式涉及到以下几个角色:抽象迭代器(Iterator)角色:此抽象角色定义出遍

2017-07-21 16:52:43 387

转载 SparkStreaming在启动执行步鄹和DStream的理解

目录:SparkStreaming启动执行步鄹:DStream和Rdd的理解Linux中发送数据SparkStreaming代码如下结果展示:————————————————————————————————————————–SparkStreaming启动执行步鄹:1、加载SparkConf和StreamingContext 2、建立DStream接收器val lines = ssc.socket

2017-07-21 14:52:48 630

原创 YARN的架构

YARN还是传统的主从(master/slave)架构,如下图所示 YARN服务由ResourceManager和NodeManager两类进程组成,Container是YARN的资源表示模型,在任何类型的计算框架的作业都可以运行在Container中,ApplicationMaster是YARN的二级资源调度器,它也运行在Container中。ResourceManager YARN的资源

2017-07-18 17:30:22 798

原创 NameNode和SecondaryNameNode关系解析

HDFS集群在启动后会有三个守护进程:NameNode,SecondaryNameNode和DataNode。我们都知道DataNode是用来存放数据的位置,那么NameNode和SecondaryNameNode的关系又是怎么样的呢?许多初学者根据名字可能会以为当NameNode出现故障时,SecondaryNameNode会自动成为新的NameNode,也就是NameNode的“热备”。通过下面

2017-07-18 10:48:34 3041

原创 MapReduce的过程

在MapReduce的过程中,一个作业被分成map和reduce计算两个阶段,他们分别由一个或者多个map任务和reduce任务组成,如下图所示,一个MapReduce作业从数据的流向可以被切分为Map任务和Reduce任务。Reduce任务默认在Map任务数量完成5%后才开始启动。 input 如果使用HDFS上的文件作为输入,mr计算框架会首先用InputFormat类的子类FileIn

2017-07-17 17:26:41 780

原创 虚拟机类加载机制

一. 类加载的时机 类的生命周期 如图,加载,验证,准备,初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始,这里笔者写的是按部就班的“开始”,而不是“进行”或者“完成”,强调这点是因为这些阶段通常都是互相交叉地混合式进行的,通常在一个阶段执行的过程中调用,激活另外一个状态。 JAVA虚拟机中没有强制约束什么时候开始类加载的第一个阶段:加载。但对于初始化阶段严

2017-07-16 15:52:36 301

原创 上传docker镜像到docker hub

Docker hub地址为[https://www.docker.com/] 先创建自己的镜像仓库: 注册成功后点击sign in登录进去 点击create repository 填写好name,点击create即创建成功镜像仓库 开始上传: 查看需要上传的镜像$ docker images登录到docker hub$ docker login现在修改你的镜像文件标签,标签如果和

2017-07-15 11:07:41 2635

原创 docker跨主机容器访问(网桥实现)

本篇文章主要讲述利用网桥方式实现docker跨主机容器访问,参考文章:Docker网络基础---Docker跨主机容器访问通信 (http://blog.csdn.net/canot/article/details/52895897) 在同一宿主机下的Docker的容器之间是默认互相联通的。在容器内通过ifconfig可以查看到ip地址。在不同的容器中来执行ping是可以ping通的。但我们通过观

2017-07-15 10:20:20 4924

原创 mesos集群安装

mesos安装攻略:(安装环境ubuntu14.04,安装过程中保持尽量联网状态)在官网下载mesos源码(我用的mesos-1.2.0)利用./configure(检查安装环境,如编译环境和所需依赖包是否安装,生成makefile文件),make(执行makefile文件,确定在什么位置安装mesos),makeinstall(安装)因为mesos需要许多依赖包,所以在进行con

2017-07-11 14:21:39 839

原创 hadoop集群搭建

因为spark中需要用到hadoop中的hdfs文件系统,所以在装好spark后需要再次基础上安装hadoop配置ip,jdk,修改hostname等,因为之前已配置好,这里不需要配置。(详情可见上一篇spark集群搭建:http://blog.csdn.net/mr_sunrise/article/details/74942660)配置hadoop文件:解压hadoo

2017-07-11 14:16:40 419

原创 Spark集群搭建

搭建spark环境记录:系统:ubuntu14.0464位JDK:jdk1.8.0_12164位scala:scala2.12.1spark:spark2.1.0hadoop:2.7(本来时考虑到电脑内存过小,装三个虚拟机会比较卡,所以先在该电脑商装了双系统,即增加了一个ubuntu系统,在配置好一个样本机之后发现要想建立集群必须在其他实体机上做相同

2017-07-11 11:22:04 630

原创 华为2017校招题:自动售货系统

描述:考生需要模拟实现一个简单的自动售货系统,实现投币、购买商品、退币、输出库存商品及存钱盒信息的功能.1. 系统中存在以下商品与钱币:三种商品:每种商品包含商品名称、单价、数量三种属性,分别为:名称为A1的商品单价为2元数量为5件;名称为A2的商品单价为3元数量为10件;名称为A3的商品单价为4元数量为14件存钱盒信息存在以下三种面额1、2、5元的钱币,每种钱币包括面额、张数属性,分

2017-02-08 15:27:30 1380

原创 华为2017校招机试题第一题同网CS

描述:小明同学最近新购置了电脑,想和其他同学玩CS,但是建了局域网游戏之后,别人加不进来,自己也进不了别人的主机,非常苦恼。于是来请教同宿舍的“科技怪人”小犀,小犀说了句“你的IP和我们不在同一个子网”就闪了,小明百度了一下,搜到如下关于“子网掩码”的信息:子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算

2017-02-08 00:40:29 1440

原创 hibernate无法自动建表问题

自己写了个createDB函数,想自动生成数据表,代码如下:public static void createDB(){  Configuration cfg=new Configuration().configure();  SchemaExport se=new SchemaExport(cfg);  se.create(true, true); }调用时没报任何错误,

2016-11-13 12:45:28 361

原创 java实现图片压缩

最近做的项目中用到图片加密技术,需要用ImageIO.read()读取图片获取其RGB分量,但是其可以读取的图片大小有限制,正常手机拍的图片其读取不出来,所以我们就使用到了图片压缩技术,主要有两种压缩方法:1,可以按原图片的大小按比例压缩;2,按需要的宽和高压缩成固定大小的图片,两种方式实现的方法相同,我采用了第二种 ,核心代码如下:public static void imageScale(

2016-11-01 17:01:05 2044

原创 java中的进制转换问题

最近做的一个项目中需要用到进制的转换,当时没多想就直接用了Integer.toBinaryString();当时的目的是得到一组字符串,其中都是十进制的数字,我是先将其转换成字符数组,发现toBinaryString也可以接收字符参数,然后我测试了一下,其接收的字符参数会按照asscii码的形式转换成int类型,再进行二进制转换,如果接受的就是int型的十进制数就直接进行二进制转换。且toBina

2016-11-01 16:43:54 359

原创 腾讯2016校招笔试

有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。 初始集合是空的,有两种操作,要么给集合添加一个长度为 L 的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形。输入描述:每组测试用例仅包含一组数据,每组数

2016-09-25 13:54:59 622

原创 微软2016校招笔试题

描述A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Given a string consisting of only lower case letters, output all its lucky non-empty substrings

2016-09-25 13:44:53 1619

原创 tomcat配置及如何结合myeclipse使用

首先声明:大家最好用tomcat6.0版本的tomcat,比较稳定,注意最好在apache官网下载zip版本,不需安装,最好将解压的文件夹放在C盘,不然可以会对后续操作有影响。在解压好文件之后,需要配置环境变量:1.变量名:CATALINA_HOME,变量值:C:\apache-tomcat-6.0.45(tomcat文件位置);2.变量名:JAVA_HOME,变量值:C:\Program F

2016-08-28 15:17:04 1567

原创 数组,指针,地址

通过几次调试,程序终于成功,从中发现:1,如果你声明一个指针,必须在给他赋予一个地址,指针不同于变量,机器不会自动给他赋予地址,必须由操作者赋予。2,假设你声明了一个数组str[20],使用时str即表示数组第一位的地址,和&str[0]的含义相同,而且地址只能赋予指针,无法赋予一个变量。void copy_n( char *dst, char src[], int n ){ 

2016-01-04 13:43:38 259

原创 查找100以内的质数C;

int prime(int i){ int j;  for(j=2;j {if(i%j==0) return 0; } return 1;}int main(){ int i; for(i=2;i  if(i==2)   printf("%d  ",i);  else{   if(prime(i))    

2016-01-04 13:29:55 803

空空如也

空空如也

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

TA关注的人

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