自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木小草 专栏

http://www.muxiaocao.cn/me

  • 博客(36)
  • 资源 (9)
  • 收藏
  • 关注

原创 搭建自己域名的hexo框架next风格的博客

准备阶段:1. 安装git客户端2. 安装node3. 准备好属于自己的域名,最好有自己的服务器4. 申请github账号安装和配置Hexo打开Git-bash或者cmd,输入npm install -g hexo-cli本地建站选择一个文件夹下,使用如下命令: hexo init npm install 如果hexo安装成功,则会在该目录下生成如下的目录结构 本地测试hexo

2016-08-31 16:03:57 1293

原创 漫谈Java中的互斥同步

漫谈Java中的互斥同步 互斥同步(Mutual Exclusion & Synchronization)是最常见的一种并发正确性保证手段,同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻只被一条(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critical Section)、互斥量(Mutex)和信号量(Sempahore)都是主要的互斥实现方式。因

2016-08-24 21:04:37 3130

原创 分布式系统架构——使用Redis做MyBatis的二级缓存

使用Redis做MyBatis的二级缓存  通常为了减轻数据库的压力,我们会引入缓存。在Dao查询数据库之前,先去缓存中找是否有要找的数据,如果有则用缓存中的数据即可,就不用查询数据库了。如果没有才去数据库中查找。这样就能分担一下数据库的压力。另外,为了让缓存中的数据与数据库同步,我们应该在该数据发生变化的地方加入更新缓存的逻辑代码。这样无形之中增加了工作量,同时也是一种对原有代码的入侵。这对于

2016-07-29 16:23:15 15080 3

原创 系统架构设计——设计模式之模板模式

假如生活欺骗了你,请不要抱怨。他一定是在考验你,你要经得住考验。毕竟牛逼的人生不可能总是风平浪静。——写给自己。一、模板模式定义 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。——《设计模式:可复用面向对象设计软件的基础》二、应用场景 对于代码有洁癖的人,绝不会容许一段代码被许多个方法重复使用。那我们我们怎么才能在

2016-07-24 16:38:26 1802

原创 分布式系统架构——Mysql数据库实现主从同步

mysql实现两台机器的主从同步准备工作 将Master服务器上的备份数据库拷贝到Slave服务器上 注意: 使用Navicat拷贝的时候,需要在Slave上先创建数据库,然后再把数据和格式拷贝到此数据库上。Master配置修改/etc/my.cnf:server-id=1 #需要备份的数据库名,如果需要备份多个数据库,重复设置这个选项即可。 binlog-do-db=r

2016-07-06 18:12:50 2604

原创 Ubuntu15.10下Solr 6.0的搭建与IKAnalyzer中文分词结合使用

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 因此,搭建solr之前,首先需要安装jdk1.8和Web 应用服务器。这里我们使用tomcat 8.0。一、Solr单机版安装步骤准备工作:目前最新

2016-06-06 12:32:42 1894

原创 分布式系统架构——Redis缓存的安装和使用

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。一、Redis的单机版1.1 安装步骤安装gcc编译环境 sudo apt-get install gcc 把redis上传到服务器 可以使用SecureCRT上传 解压缩

2016-06-04 22:53:58 3387 1

原创 分布式系统架构——dubbo与SSM整合问题

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。其中阿里的dubbo就是一款分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案。一、Dubbo简介1.1 背景与需求 随着互联网的发展,上网的人越来越多。加之移动互联的普及,更加快了互联网的脚步。随之而来的,便是对网站应用的强大挑

2016-06-02 22:08:35 14446 4

原创 Linux下FastDFS图片服务器的搭建

在真正的大型Web后台系统中,上传图片的操作可以算是耗时操作,而且其中最大的问题就是,在一个分布式系统中,图片上传不可能上传到当前服务器,这样如果下次访问的是其他服务器,在其他服务器上是没有上传的图片的。解决这些问题,可以采用分布式文件系统FastDFS来搭建Web后端的图片服务器。一、FastDFS简介1.1 什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统。Fa

2016-05-23 23:08:17 9925 2

原创 Ubuntu下Nginx简单使用

Nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。一、Ubuntu安装Nginx详细步骤 sudo apt-get upda

2016-05-23 10:56:22 8227

原创 系统架构设计——设计模式之代理模式(二)CGLIB动态代理实现

像上一篇所说的代理模式其实是静态代理,在实际开发中其实应用不大,因为他需要事先知道被代理对象是谁,而且被代理对象和代理对象实现了公共的接口。实际情况往往并不能满足这些条件,我们往往在写代理模式的时候并不知道到时候被代理的对象是谁。解决办法就是——动态代理。以下我们将使用CGLIB实现动态代理。一、动态代理概述 程序在运行期而不是编译器,生成被代理对象的代理对象,并且被代理对象并不需要和代理对象

2016-05-16 18:38:16 12719

原创 系统架构设计——设计模式之代理模式(一)

在纷繁复杂的程序设计世界里,我们总是需要尽可能的考虑到各种情况。而有这么一种机制,我们可以将我们指责中的一部分隔离开来,让一个所谓的代理来帮我们解决一部分和主体业务关系不大的业务,从而让我们能更专心的设计我们的主体业务。这就是代理模式的初衷,也是很多流行框架的应用。——个人理解。一、代理模式(Proxy)的定义 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能

2016-05-15 20:38:07 1911 1

原创 系统架构设计——设计模式之装饰者模式

许多模式是长期经验的实证,可通过提供扩展的方法来保护代码免于被修改。接下来我将介绍一下一个完全遵循开放-关闭原则的设计模式——装饰者模式。它可以给爱用继承的人一个全新的设计眼界。——Head First 设计模式装饰者模式的定义 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。应用场景 与之前的策略模式不同,装饰者模式是用来解决多方案的组合问题的。试想一下五

2016-05-05 11:48:20 650

原创 系统架构设计——设计模式之策略模式

面向对象的变成,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。——大话设计模式策略模式的定义 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。应用场景在我们软件开发过程中,经常会遇到需求变动,具体的算法变动也是常有的事。就拿商场打折促销的方式来说,久经常的变动。五一打8折,十一打7折,

2016-05-03 10:00:22 1582

原创 系统架构设计——学习篇之类的设计(UML)

概述 “编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确久完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和服用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程。所谓学无止境,其实这(类的设计)才是理解面向对象的开始。” ——大话设计模式 对于初学者来说,我们不仅仅是要学会面向对象的封装

2016-05-01 16:08:17 13121 4

原创 hadoop中mapreduce程序的几种提交运行模式

本地运行模式 在windows的eclipse里买能直接运行main方法,就会将job提交给本地执行其localjobrunner执行 输入输出数据可以放在本度路径下(c:/file/src) 输入输出数据可以也放在hdfs中(hdfs://muxiaocao:9000/file/src) 在linux打eclise里面直接运行main方法,但是不要添加yarn相关的配置,也会提交

2016-04-04 00:50:27 3854 1

原创 Hadoop学习之RPC

前几天在学习Hadoop的时候,学到了他的RPC机制,即RPC(Remote Procedure Call Protocol)——远程过程调用协议。以便日后的学习,在此记录一下学习心得。在我看来,RPC的本质其实和JMS消息队列,WebService一样。都是两个主机,两个线程之间通信问题,不一样的就是通信的内容不同而已。 RPC是通过动态代理,利用socket通信,实现方法体的异地调用。而J

2016-04-03 20:44:51 950

转载 Linux常用命令大全

Linux简介及Ubuntu安装常见指令系统管理命令打包压缩相关命令关机/重启机器Linux管道Linux软件包管理vim使用用户及用户组管理文件权限管理 大牛笔记-www.weixuehao.com来自:http://www.weixuehao.com/archives/25Linux简介及Ubuntu安装Linux,免费开源,多用户多任务系统

2016-04-03 19:30:31 392

转载 Linux服务之SSH

一、ssh(secure shell)安装 view sourceprint?01.[root@localhost logs]# yum install openssh02. 03.………………………………04. 05.Downloading Packages:06.(1/4): openssh-5.3p1-84.1.el6.x86 | 236 kB

2016-04-02 15:28:21 1349 1

原创 超详细的Hadoop伪分布式搭建教程

准备Linux环境 1.0 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok 回到windows –> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -

2016-04-02 00:34:16 836

转载 音视频同步原理

音视频同步原理媒 体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的时间是 线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同时参考当 前参考时钟上的时间来安排播放(如果数据块的开始时间大于当前参考时钟上的时间,则

2016-03-29 22:03:37 590

原创 阿里面试算法题-1-100随机替换两个为零,如何快速找出

阿里面试算法题-二维递增数组的查找 注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。题目: 一个随机放有1-100的数组,随机选择两个数变为0。 设计一个算法,能很快的找到这两个数。 注意:不能开辟另一个数组,不可排序(这是面试官的要求) /** * 核心思想就是: * 0, 3, 5, 8, 6, 4, 1, 9, 7, 0

2016-03-28 22:16:11 1433 1

原创 阿里面试算法题-二维递增数组的查找

阿里面试算法题-二维递增数组的查找 注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。题目: 一个n*m的二维数组,每一行从左到右依次递增,每一列从上到下依次递增。问:给你一个数字,如何能快速的输出他在数组中的位置。 /** * 一个n*m的二维数组,每一行从左到右依次递增,每一列从上到下依次递增。 * 问:给你一个数字,如何能快速的输出他在数组

2016-03-25 22:47:49 837

转载 Android apk反编译详细教程

在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)

2016-03-20 16:40:27 661

转载 这是一个传奇的算法(平方根倒数速算法)

我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢?虽然有可能你平时没有想过这个问题,不过正所谓是“临阵磨枪,不快也光”,你“眉头一皱,计上心来”,这个不是太简单了嘛,用二分的方法,在一个区间中,每次拿中间数的平方来试验,如果大了,就再试左区间的中间

2016-03-20 15:15:08 1230

原创 给定一个字符串,求第一个不重复的字符

如果有暴力解法,时间复杂度必然为O(n2)O(n^2),而要达到O(n2)O(n^2),关键就是,利用所有字符的ASCII码都是在0~255之间,声明一个标记数组存放字符串的信息。方法一:当字符串可以重复访问的时候,标记数组存放的是每个字符出现的次数。代码如下:import java.util.Scanner;/** * 给定一个字符串,求第一个不重复的字符 abbcad -> c * @

2016-03-19 23:24:20 3131

原创 Ubuntu系统中安装RPM格式包的方法

Ubuntu系统中安装RPM格式包的方法Ubuntu的软件包格式为deb,而RPM格式的包则是Red Hat 相关系统所用的软件包。当我们看到一个想用的软件包时,如果他是RPM格式,而你的操作系统是Ubuntu,那岂不是很遗憾?其实,在Ubuntu系统中通过一定的方法也是可以很有效的安装RPM格式包的,本文就针对此加以介绍:首先,我们要安装alien这一软件: $sudo apt-get in

2016-03-19 19:35:36 8117

转载 使用EasyBCD安装Win7和Ubuntu双系统

转载 ▼{本文转自csdn真的想做点事情 (其中进行了部分修改完善)转过来的时候图挂了,在相应部分添加了文字步骤。。。为了直观的话,大家请参考原文。此过程按说应该适用于所有版本ubuntu操作系统的安装(不只限于文中讲的ubuntu10.10)我安装的是ubuntu-12.04.2-i386.iso}一、 准备工作(在WIN7下操作完成)1 从官网http://www.ubuntu.com/ 上下

2016-03-19 19:30:01 1149

原创 Linux中安装Code:Blocks

Linux环境下的CodeBlocks开发工具,全套。在OpenSUSE Linux下测试通过。全部由RPM包构成,其他版本的Linux也可以尝试。安装顺序如下:libexpat0-1.95.8-65.1.i586.rpmwxBase-2.8.12-1.el5.i386.rpmwxGTK-2.8.12-1.el5.i386.rpmlibtinyxml0-2.6.1-9.1.2.i586.rpmcod

2016-03-19 19:23:24 3220

原创 Linux下RPM软件包的安装及卸载

在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。RPM 安装操作命令:rpm -i 需要安

2016-03-19 19:21:40 583

原创 2016年阿里巴巴算法工程师实习招聘电面

除了信号不是很好,电面的整体过程还算顺利。问的问题也是基础性的,毕竟是一面并没有在专业提问上为难我。不过最多的精力是放在了开放性的问题上,真是刨根问底的问你啊。 下面梳理一下整个过程吧。自我介绍 略基础知识问答说一下你了解的排序算法。讲一下快速排序的实现过程。说一下快速排序的缺点。如何改进排序算法呢?然后就是根据你说的改进方法,问一下具体的怎么改进的。介绍一下什么是聚类,有哪

2016-03-18 17:48:54 1044

原创 HTML5延迟加载指定文件(google给的代码)

页面加载时,有时候我们需要先执行我们的异步交互代码,然后在加载某些js文件,这时候就需要延迟加载指定文件的功能下面是js代码function downloadJSAtOnload() { var element = document.createElement("script"); element.src = "指定文件路径"; document.body.appendChi

2016-03-17 10:25:25 1560

原创 Java与Matlab混合编程

Java与Matlab混合编程 注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。环境要求Matlab至少是2015a及以上版本,之前我用的2014b怎么都不行,最后在http://www.matlabsky.com/上看到说是2014班没有破解完全 java我用的1.7,应该没什么要求matlab导jar包写好matlab之后,在控制台打deploytool,选择导出jar

2016-03-16 22:18:35 1732 1

原创 Bootstrap的一个很漂亮的web万能模板

Bootstrap万能模板 注意:转载请说明,来自转自itboy-木小草,尊重原创,尊重技术。分享一个Bootstrap上的万能模板,里面有各式各样的dashboard、form、tables、editor、calendar等,只要你会ctrl + c 、ctrl + v就能设计出漂亮的界面。话不多说,直接上图:Dashboard(仪表盘): 仪表盘可以转的哦 Calendar(日

2016-03-16 19:43:01 28459 2

转载 Android图片编码机制深度解析(Bitmap,Skia,libJpeg)

问题工作中遇到了Android中有关图片压缩保存的问题,发现这个问题还挺深,而且网上资料比较有限,因此自己深入研究了一下,算是把这个问题自顶至下全部搞懂了,在此记录。相关的几个问题如下:1.Android系统是如何编码压缩保存图片的?2.Skia库起到的作用?3.libJpeg库起到的作用?4.能不能自己调用Skia或libJpeg? 

2016-03-16 09:05:06 1167

原创 我的主页

http://www.muxiaocao.cn/mehttp://www.muxiaocao.cn/muqiangwei

2016-03-16 00:28:56 327

房侣薪资计算器

杭州房侣网络科技有限公司 所属的 房侣薪资计算器

2017-02-27

MyBatis3官方文档

官方文档

2016-07-29

ikanalyzer-solr5

支持solr5以上的ikanalyzer包和配置文件

2016-06-05

ik-analyzer-solr5-5.x

支持Solr6.0的IKAnalyzerJAR包

2016-06-05

搭建FastDFS服务器的所需资源

包含FastDFS(v5.02),libfastcommon,fastdfs-nginx-module,fastdfs-clinet-java。

2016-05-23

FileZillaFTP上传工具

FileZilla

2016-05-22

secureCRT_7.0.2破解版

secureCRT_7.0.2

2016-05-22

mybatis逆向工程

mybatis逆向工程

2016-05-22

Bootstrap万能模板

各式各样的表单、table、button

2016-03-16

空空如也

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

TA关注的人

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