自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Http协议简介

Http协议简介HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。HTTP目前协议的版本是1.1.HTTP是一种无状态的协议。无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。1. 

2017-06-05 21:48:13 421

原创 Struts2开发基础

Struts2开发基础struts2采用拦截器的机制来处理用户的请求,使得业务逻辑控制器能够与ServletAPI完全脱离开。 1. Hello World!配置web.xml <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:

2017-06-05 21:47:42 240

原创 C编程基础

1. Hello World!依照惯例首先Hello World镇楼:1 #include2 3 int main(void) {4 printf("Hello World!\n");5 return 0;6 } C源文件组成:   (1) 预处理指令(不是c语句)   (2) 函数和外部变量声明(c语句)

2017-06-05 21:47:05 285

原创 C指针与内存

C指针与内存  指针是C / C++ 中重要的构造类型,指针赋予了C / C++程序直接访问和修改内存的能力。C / C++的许多重要应用,如编译、OS、嵌入式开发都依赖于这种能力。  冯诺依曼体系的计算机内存存储指令和数据,我们可以将其抽象为指令区和数据区(当然实际情况要复杂得多)。数据区中包含栈(stack)和堆(heap)区,栈区的数据由编译器管理而堆区数据则由程序员管理。

2017-06-05 21:46:34 216

原创 C字符串

C字符串  C中的字符串是以空字符('\0')结尾的一个char数组,基本的实现字符串的方法有:字符串常量,字符串数组,char数组,char指针。字符串使用广泛,如与用户交互等处理自然语言的情况。C为其提供的许多函数主要包含在string.h(各种处理函数)和stdio.h(面向字符串的输入输出函数)。一、字符串的实现1.字符串常量  字符串常量(又称字符串文字),是指位

2017-06-05 21:46:04 377

原创 预处理指令

预处理指令C源码在进行编译前会先经过预处理,预处理指令均以#开头,结尾没有分号(;)不是C语句。预处理器采用“语言符号”的分析方式,将空格作为区分标志之间的符号,一行作为一条指令,“\”可以将预处理指令延伸到下一行。一、宏定义1.不带参数的宏定义  (1)不带参数的宏定义就是用一个标识符(宏名)来代表一个字符串。它的一般形式为   #define Macro Str

2017-06-05 21:37:35 357

原创 C输入输出与文件

一、终端I/O1.单字符I/O:getchar(),putchar()(1)单字符输入(get character):      【 int getchar();】返回值为输入的字符(ASCII)。可以接受任何字符,包括非打印字符。当一次键入多个字符时按下回车键后getchar开始逐个读取所有字符(包括回车符)。在某些编译环境下,因为scanf()函数不读取回车符且将其留在

2017-06-05 21:34:47 605

原创 布隆过滤器(Bloom Filter)的原理和实现

什么情况下需要布隆过滤器?先来看几个比较常见的例子字处理软件中,需要检查一个英语单词是否拼写正确在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上在网络爬虫里,一个网址是否被访问过yahoo, gmail等邮箱垃圾邮件过滤功能这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中?常规思路数组链表树、平衡二叉树、TrieMap (红黑树)哈希表虽

2017-06-05 21:33:30 428

原创 理解函数式编程

相信大家平时或多或少听过不少关于“函数式编程” (FP)相关的词语,有些Geek经常吹捧函数式的优点或者特性比如:纯函数无副作用、不变的数据、高阶函数、流计算模式、尾递归、柯里化等等,再加上目前的函数式理论越来越多的应用于工程中,OCaml,clojure, scala等FP语言日渐火爆。本编文章,笔者准备带领大家深入理解函数式编程的相关理论概念。定义首先引用维基百科对函数式编程的解释

2017-06-05 21:32:16 303

原创 常见缓存算法和LRU的c++实现

对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。常见的缓存算法LRU (Least recentl

2017-06-05 21:31:49 355

原创 理解Javascript的状态容器Redux

Redux要解决什么问题?随着 JavaScript 单页应用开发日趋复杂,JavaScript 需要管理比任何时候都要多的 state (状态)。 这些 state 可能包括服务器响应、缓存数据、本地生成尚未持久化到服务器的数据,也包括 UI 状态,如激活的路由,被选中的标签,是否显示加载动效或者分页器等等。管理不断变化的 state 非常困难。如果一个 model 的变化会引起另一

2017-06-05 21:31:07 218

转载 可伸缩架构简短系列

采取什么办法可以让一个Web服务可大规模可扩展?相信你会对这个问题感兴趣。克隆通常来说,公共服务器上的一个可伸缩的web服务总是隐藏在一个Load Balancer(负载均衡器)之后。这个负载均衡器会将负载(来自用户的请求)均匀的分配到一组服务器或者服务器集群。那意味着什么?举个例子:某个用户访问你的服务,他第一次的请求可能会由第二台服务器提供,第二次请求由第9台服务器提供,第3次请求

2017-06-05 21:30:34 199

原创 在Node.js中使用RabbitMQ系列一 Hello world

在前一篇文章中可伸缩架构简短系列中提到过关于异步的问题。当时推荐使用RabbitMQ来做任务队列的实现方案。本篇文章以Node.js为例子,来实际操作如何和RabbitMQ进行交互。介绍RabbitMQ是一个消息代理。它最初的思想特别简单:接受并且转发消息。你可以将它想象为邮局:当你将邮件放到信箱中,你可以非常肯定快件员最终会将邮件交到接受人手中。你可以把RabbitMQ比喻为信箱、邮

2017-06-05 21:29:59 1825

原创 在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景。其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式。取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式。我们需要将一条消息封装成一个任

2017-06-05 21:29:29 4915

原创 Javascript中的async await

async / await是ES7的重要特性之一,也是目前社区里公认的优秀异步解决方案。目前,async / await这个特性已经是stage 3的建议,可以看看TC39的进度,本篇文章将分享async / await是如何工作的,阅读本文前,希望你具备Promise、generator、yield等ES6的相关知识。在详细介绍async / await之前,先回顾下目前在ES6中比

2017-06-05 21:28:57 256

转载 Entity Framework的启动速度优化

刚开始的时候没有太在意,但是随着系统的发布,这种初次请求,或者闲置若干时间后第一次请求的漫长等待使得App的体验很差,很多时候App加载好半天数据都没过来。如果前端没处理好,还会导致App的假死。所以就花了点功夫研究下什么原因导致。刚开始的时候,还以为是WebService的框架出了问题。后面使用App,通过Fiddler看到了,某次请求db.竟然长达6s中,并且每次导致请求超时都出现在d

2017-06-04 19:13:49 273

转载 ASP.NET MVC 利用IRouteHandler, IHttpHandler实现图片防盗链

你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽。下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义RouteHandler来防止其他人盗链你的图片. 在ASP.Net MVC程序中首先涉及的部件是UrlRoutingModule,它是System.Web.Routing的一部分.Url

2017-06-04 19:12:41 290

转载 MVC过滤器详解

APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理。这时候就用到了过滤器。  MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常)。如下表,过滤器类型接口

2017-06-04 19:12:20 313

转载 C#委托的介绍(delegate、Action、Func、predicate)

1.委托的声明  (1). delegate        delegate我们常用到的一种声明    Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。    例:public delegate int MethodtDelegate(int x, int y);表示有两个参数,并返回int型。  (2). Action

2017-06-04 19:12:00 205

转载 C# Lambda表达式

"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表

2017-06-04 19:11:37 208

转载 面向对象的三个基本特征

最近找了一篇面向对象的介绍,看过后,感觉不错,浅显易懂,所以转载给大家看看!!! 面向对象的三个基本特征(讲解)面向对象的三个基本特征是:封装、继承、多态。 封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏

2017-06-04 19:11:16 196

转载 .Net编译原理简单介绍

名称解释:1.CLR:公共语言远行时,是一个可由多种编程语言使用的“远行时”。CLR的核心功能(比如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用。CLR不关心开发人员使用哪种语言进行编程,只要编译器面向CLR就可以了,所有,开发人员应该使用自己最适合和熟悉的语言进行编程。所有的编程语言在面向CLR编译器的编译都生成了一个托管模块。2.IL文件:IL

2017-06-04 19:10:54 454

转载 OO的五大原则:SRP、OCP、LSP、DIP、ISP

现将近期整理的文档提供给大家,这里对LSP做重点的介绍,望对大家有帮助,在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。 OO设计的五大原则之间并不是相互孤立的。彼此间存在着一定关联,一个可以是另一个原则的加强或是基础。违反其中的某一个,可能同时违反了

2017-06-04 19:10:34 292

转载 从请求管道深入剖析HttpModule的实现机制,有图有真相

想要了解底层的原理必须对请求处理过程和页面的生命周期有点了解才方便您入门学习一下内容:关于请求处理过程和页面的生命周期将会在接下来的日子为大家做一个深入的讲解。HttpModule的实现机制如下:1.请求到达ISAPIRuntime 的时候通过ProcessReqeust(下文统称pr ) 方法创建 HttpWrokRequest 对象。2.在执行ISAPIRunt

2017-06-03 11:16:40 300

转载 MVC2.0中的HtmlHelper大全

在写一个编辑数据的页面时,我们通常会写如下代码 1: ' name="title" />由前篇我们所讲的Helper演化,我们思考,对于这种代码我们是不是也可以用一个Helper来自动绑定数据呢这当然是可以的,ASP.NET MVC提供了一个HtmlHelper用于生成有数据绑定的Html标签。 1.ActionLink其中最常用的就是Html.Ac

2017-06-03 10:48:51 555

转载 浅谈MVC中如何自定义HtmlHelper的过程

微软很贴心,就想贴心的小棉袄一样。微软提供的HtmlHelper已经是足够大部分开发人员使用了,但是有一些功能要用微软提供的HtmlHelper可能还不满足要求。接下来就谈谈如何自定义HtmlHelper的过程。不知道其他开发者们,当你们在使用HtmlHelper对象的时候有没有留意过元数据。内部元数据如下图:从上图可以得知,我们接下来要自定义的方法就是对HtmlHelpe

2017-06-03 10:48:14 235

转载 Asp.net MVC2 与 MVC3 路由调试好帮手RouteDebug 与 RouteDebugger

RouteDebug 与 RouteDebugger是什么? 在Asp.Net MVC程序中,路由(Route)是一个非常核心的概念,可以说是MVC程序的入口,因为每一个Http请求都要经过路由计算,然后匹配到相应的Controller和Action。通常我们的路由都会注册在Global.asax.cs文件中的RegisterRoutes方法中,路由会从上往下依次匹配,因此自定义的

2017-06-03 10:47:20 571 1

转载 Asp.Net MVC3 简单入门详解过滤器Filter

前言在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了。在Asp.net Mvc中当你有以下及类似以下需求

2017-06-03 10:46:42 326

转载 LinkedHashMap和HashMap的比较使用

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写Ha

2017-06-03 10:45:33 164

转载 CSS3transition实现的简单动画菜单

transition是css3中新添加的特性,在W3C标准中是这样描述 的:“css的transition允许css的属性值在一定的时间内从 一个状态平滑的过渡到另一个状态。这种状态可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并平滑的以动画效果改变css的属性值。”有了transition一切动画都变得如此简单。在今天的小贴士,我们将向您展示如何让你的菜单添加一个整洁的悬浮效果

2017-06-03 10:45:00 288

转载 响应式web设计之CSS3 Media Queries

开始研究响应式web设计,CSS3 Media Queries是入门。Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表。换句话说,其允许我们在不改变内容的情况下,改变页面的布局以精确适应不同的设备。那么,Media Queries是如何工作的?两种方式,一种是直接在link中判断设备的尺寸,然后引用不同的css文件:

2017-06-03 10:43:49 412

转载 java的动态代理机制详解

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或

2017-06-03 10:34:38 148

转载 使用struts2的token机制和cookie来防止表单重复提交

今天在做一个投票系统时要实现防止表单重复提交!当时就想到了用struts2提供的token机制struts2的token机制防止表单重复提交:首先需要在提交的jsp页面(要使用token机制,必须使用struts2提供的标签库)加上   这段代码,然后在struts.xml里面需要进行如下配置:  class=

2017-06-03 10:29:15 349

转载 struts2生成随机验证码图片

之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来!首先是生成随机验证码图片的action:CreateImageAction:package com.xiaoluo.action;import java.awt.Color;import java.awt.Fo

2017-06-03 10:28:40 201

转载 Spring学习篇:AOP知识整理

AOP知识整理AOP(Aspect-Oriented Programming):面向切面的编程。OOP(Object-Oriented Programming)面向对象的编程。对于OOP我们已经再熟悉不过了,对于AOP,可能我们会觉得是一种新特性,其实AOP是对OOP的一种补充,OOP面向的是纵向编程,继承、封装、多态是其三大特性,而AOP是面向横向的编程。面向切面编程(AOP)通

2017-06-03 10:28:08 301

转载 SSH整合之 网盘上传下载系统(问题积累)

今天一直在做一个SSH整合的网盘上传下载系统,写一下心得!首先,我做的的是将上传的文件保存到数据库里面,但是只要上传大于几M以上的文件,就会报java.lang.OutOfMemoryError: Java heap space 这个异常,后面百度了一下,原来知道数据库里面不能保存过长的二进制文件,所以马上改代码,因为整个项目分层体系很清晰,所以代码修改量很少,呵呵,又

2017-06-03 10:27:47 462

转载 myeclipse下dwr.xml配置文件没有自动提示解决办法

最近在学DWR框架,我们知道DWR框架的主配置文件dwr.xml其作用就是告诉浏览器端,服务器端的哪个类的哪个方法可以暴露给浏览器端。于是在一个web project下面建立了一个dwr.xml文件,但是导入了其DTD,还是没有出现提示,仔细检查了一下DTD,也没有问题,而且myeclipse也没有为dwr.xml提供关联的DTD,那怎么办呢?后面查了一下资料,原来只需将其DTD导入到my

2017-06-03 10:27:13 306

转载 C#程序员初学Python

实习阶段每天都闲着没事,今天看了一天的Python。以前听说过python非常简洁,就像读英文一样简单,而且我貌似以前在google的招聘信息上看到过python。今天一看,相比起C#,C,java还有vb,python确实非常简洁。  于是,花半小时把python的简洁之处总结一下,也算是个学习小结吧。  1,如果正确的书写python语句,每行一句,是不需要分号的;  

2017-06-03 10:24:21 609

转载 如果Google面试让你用python写一个树的遍历程序

前几天忽然对python很感兴趣,学了几天也感觉它非常的简洁实用。打破了我这么长时间对java C# C 和vb的审美疲劳,让我眼前一亮。“就像读英文一样简单”这句话评价python说的很合理。我对python的好感很大部分是因为听说google很多程序用python,而且在google app engine里面和支持python。如果你去google面试或者笔试,很可能就会考到这个题:用

2017-06-03 10:23:44 766

转载 python简单模拟:把树存储在数据表中

在数据库中建立一个表,有Id, fatherId, value 三个字段,就可以存储一个树。如何把该表中的数据以树的形式呈现出来,下面小弟用python简单模拟一下。初学python,请大家多多指点。另外非常感谢http://www.cnblogs.com/lzyzizi/对小弟的指点。运行结果:A-1 B-1 C-1 D-1

2017-06-03 10:23:15 1912

空空如也

空空如也

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

TA关注的人

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