自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Glemontree's blog

Android爱好者,向大神们看齐

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

原创 [网络编程] IO多路复用

阻塞IO和非阻塞IO常见的IO操作有read和write,通常IO操作都是阻塞I/O,即当前调用read时如果没有数据收到,那么线程或者进行就会被挂起,直到收到数据。对于非阻塞I/O,通过fcntl(POSIX)或ioctl(UNIX)设为非阻塞模式,这时当你调用read时,如果有数据收到,就返回数据,如果没有数据收到,就立刻返回。I/O多路复用多路复用是指使用一个线程来检查多个文件描述符(Sock

2017-09-12 11:06:19 518

转载 [算法] 海量数据处理

海量数据处理.

2017-09-08 18:34:18 392

转载 [设计模式] 适配器模式

C++中的适配器模式一、为什么需要适配器模式当你想使用一格现存的类,但是它的方法和你的要求不相同时,此时就需要使用适配器模式。二、适配器的作用是什么适配器就是将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。三、适配器模式的分类适配器模式可以分为两类,一种是类模式适配器,另一种是对象模式适配器。类模式适配器// 目标接口类,客户需要的接口

2017-09-08 18:33:36 331

转载 [设计模式] 单例模式

懒汉模式即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性。原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety。使用double-check来保证thread safety。但是如果处理大量数据时,该锁才成为严重的性能瓶颈。静态成员实例的懒汉模式: 1 class Singleton 2 { 3 pr

2017-09-08 18:32:53 276

原创 [多线程] 互斥量和临界区的区别

互斥量和临界区的区别通常有4种进程或线程同步互斥的控制方法,它们是:临界区互斥量信号量事件其中临界区通过对多线程的串行化来访问公共资源或一段代码,速度快;互斥量为协调共同对一个共享资源的访问而设计的;信号量为控制一个具有有限数量用户资源而设计;事件则用来线程有一些事件已经发生,从而启动后继任务的开始。今天我们主要对临界区和互斥量的异同点进行介绍,因为这两个实在太像了。临界区临界区用来保证在

2017-09-08 18:32:18 1548

原创 [多线程] 互斥对象和锁

互斥对象和锁锁互斥对象的主要操作有两个,即加锁(lock)和解锁(unlock)。当一个线程对互斥对象进行lock操作并成功获得这个互斥对象的所有权,在此线程对此对象unlock前,其他线程对这个互斥对象的lock操作都会被阻塞。多个互斥对象加锁有些倾向需要对多个互斥对象进行加锁,考虑下面的代码:std::mutex mt1, mt2;{ std::lock_guard<std::mute

2017-09-08 18:31:27 441

原创 [多线程] x=y的原子性

x=y的原子性一、原子性介绍所谓的原子性是指该操作不能再继续划分为更小的操作,在多线程中原子操作是一个很重要的概念,决定了该操作是否需要同步机制来进行保护。二、x=y操作的原子性在X86中,x=y包含两个操作:读取y至寄存器,然后将该值写入x,其中读取y的值至寄存器中是原子的,将值写入x也是原子的,但是这里需要格外注意的是两个原子操作的组合不一定是原子操作,如果在这两步骤之间有另外一个线程更改了y的

2017-09-08 18:30:53 1224

原创 [编程规范] 函数

对所调用函数的错误返回码需要仔细、全面的处理;明确函数功能,精确地实现函数设计;编写可重入函数时,应注意局部变量的使用,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性;编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段加以保护,若对所使用的全局变量不加以保护,则此函数不具有可重入性,即当多个进程调用此函数时,很有可能使有关全局变量变为不可

2017-09-08 18:30:11 347

原创 [Windows核心编程] 谈谈Windows中的错误处理机制

谈谈Windows中的错误处理机制windows除了使用返回值标识函数执行情况,还引入了错误代码机制。返回值指示函数是否发生了错误,而要想知道究竟发生了什么错误,就得使用错误代码。windows将错误代码存储于独立于线程的,线程局部存储区中,也就是说这个区域时每个线程独有的其他线程无法更改,它存储着一些线程独有的东西。在函数执行后,可通过GetLastError()函数来获得错误代码,并且这个

2017-09-08 18:29:02 240

原创 [Windows核心编程] 如何编写Unicode源代码

如何编写Unicode源代码标准的C运行期字符串函数,如strcpy、strchr和strcat只能对ANSI字符串进行操作,不能正确的处理Unicode字符串,因此,ANSI C拥有一组补充函数,例如:char* strcat(char*, const char*);wchar_t* wcscat(wchar_t*, const wchar_T*);所有的Unicode函数均以wcs开头,wc

2017-09-08 18:28:34 319

转载 [TCP/IP] TCP与UDP不同的包处理方式

TCP与UDP不同的包处理方式声明:本文转载自博客UDP发包的问题举个例子:udp发送两次数据,第一次发送100字节, 第二字发送200字节,接收方一次recvfrom(1000),收到是100,还是200,还是300?UDP是数据报文协议,是以数据包形式,所以每次可以接收100,200,在理想情况下,第一次是无论recvfrom多少都是接收到100,当然可能由于网络原因,第二个包先到的话,有可能

2017-09-08 18:26:59 295

原创 [Struts2] 值栈

ValueStack(值栈)贯穿整个Action的生命周期,每个Action类的对象实例都拥有一个ValueStack对象,相当于一个数据的中转站,在其中保存当前Action对象和其他相关对象Struts框架把ValueStack对象保存在名为”struts.valueStack”的请求属性中在ValueStack对象的内部有两个逻辑部分:context:ContextMap(Map栈实际上是O

2017-09-07 20:33:32 194

原创 [Struts2] 文件上传和下载

表单准备要想使用HTML表单上传一个或多个文件:需把HTML表单的enctype属性设置为multipart/form-data需把HTML表单的method属性设置为post需添加<input type="file">字段Struts对文件上传的支持在Struts应用程序里,FileUpload拦截器和Commons FileUpload组件可以完成文件的上传。步骤:在jsp页面的文件上

2017-09-07 20:33:10 286

原创 [Struts2] 日期类型转换

我们在进行web开发时经常会用到Date类型的数据,比如有一个员工类,其含有一个Date类型的birthday和joinDate,当我们在页面上通过<input>标签输入日期时,由于输入的类型是String类型,而员工类的成员变量是Date类型,那么就会抛出异常java.text.ParseException: Unparseable date: "2014-06-10",此时需要定义了日期类型转换

2017-09-07 20:32:23 208

原创 [Struts2] 配置Struts可以受理的请求的扩展名

在工程目录的Web App Libraries目录下的struts2-core-2.3.15.jar下的org.apache.struts2下的default.properties文件下定义了Struts可以受理的请求的扩展名:struts.action.extension=action,,,表示Struts可以受理扩展名为.action和没有扩展名的请求若想更改Struts可以受理的请求的扩展名

2017-09-07 20:31:57 260

原创 [Struts2] 拦截器和过滤器

本文转载自博客过滤器和拦截器的区别。

2017-09-07 20:31:38 189

原创 [Struts2] 国际化

概述在程序设计领域,把在无需改写源代码即可让开发出来的程序能够支持多种语言和数据格式的技术称为国际化。与国际化对应的是本地化,指让一个具备国际化支持的应用程序支持某个特定的地区。Struts2国际化是建立在Java国际化基础上的:为不同国家/地区提供对应的消息资源文件Struts2框架会根据请求中包含的Locale加载对应的资源文件通过程序代码取得资源文件中指定key对应的消息国际化目标配

2017-09-07 20:31:11 231

原创 [Struts2] URL、URI以及ServletPath之间的区别

一直没弄明白URL、URI以及ServletPath之间的区别,今天看到了一篇博客,所以转载过来记录一下。假设现在有一个名为JavaWeb的项目,其中有一个名为TestServlet的serlvet,其doGet方法为:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Servl

2017-09-07 20:30:17 356

原创 [Struts2] Struts中OGNL

Struts中OGNL一、OGNL概念OGNL(Object Graph Navigation Language),即对象图导航语言,是一种功能强大的表达式语言,可以任意存取对象的属性或者调用对象的方法。OGNL表达式的计算是围绕OGNL上下文进行的,OGNL上下文实际上是一个Map对象,由ognl.Context类来表示,它里面可以存放很多个JavaBean对象,它有一个上下文根对象,上下文中的根

2017-09-07 20:29:56 224

原创 [Struts2] Action类

action与Action类action代表一个Struts2请求Action类能够处理Struts2请求的类就是Action类,Action类具有以下特点:属性的名字必须遵守与JavaBean属性名相同的命名规则,属性的类型可以是任意类型,属性名字(get set方法对应的属性名字)应当与表单发请求时对应的参数名字相对应必须有一个不带参的构造函数(反射)至少有一个供struts在执行这个a

2017-09-07 20:29:01 267

转载 [Struts2] Struts2接受参数的几种类型和接受复杂类型参数

【转载】Struts2接受参数的几种类型和接受复杂类型参数

2017-09-07 20:27:53 220

原创 [Struts2] pageContext.request.contextPath

为了解决不同部署方式的差别,在所有非struts标签的路径前面加${pageContext.request.contextPath},如原路径为”/images/title.gif“,改为”${pageContext.request.contextPath}/images/title.gif“,代码${pageContext.request.contextPath}的作用是取出部署的应用程序名,这样

2017-09-06 13:00:50 448

原创 [Struts2] page、request、session、application的区别

pagepage指当前页面,在一个jsp页面中有效requestrequest值从http请求到服务器处理结束,返回响应的整个过程,在这个过程中使用forward方式跳转多个jsp,在这些页面里都可以使用这个变量session当前会话中有效,从浏览器打开到浏览器关闭这个过程,每个用户都有唯一的一个application它的有效范围是整个应用,作用域里的变量它们的存活时间是最长的,如果不进行手工

2017-09-06 13:00:28 190

原创 [Struts2] OGNL s:iterator标签的使用

简介iterator标签用来遍历一个数组、Collection或一个Map,并把这个可遍历对象的每一个元素一次压入和弹出。例子为了搞清楚OGNL中s:iteraor标签的使用方法,这里举了一个例子:User.javapackage com.glemontree.struts;public class User {private String userName;private String pa

2017-09-06 13:00:05 592

原创 [Struts2] ModelDriven和Preparable拦截器

Struts2运行流程ActionProxy是Action的一个代理类,也就是说Action的调用时通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法ActonInvocation就是Action的调用者,ActonInvocation在Action的执行过程中,负责Interce

2017-09-06 12:59:04 296

原创 [SpringMVC] 今日最坑

折腾了一晚上,在将一个Eclipse项目转移到IDEA中时,发现<c:if>标签始终不起作用,到最后才发现问题出在了web.xml文件中,IDEA默认创建的web.xml文件是这样的:<web-app> <display-name>Archetype Created Web Application</display-name></web-app>这样将SpringMVC的环境搭建好后,<c

2017-09-06 12:58:14 144

原创 [SpringMVC] SpringMVC

RequestMapping注解SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求在控制器的类定义及方法定义处都可标注 类定义处:提供初步的请求映射信息,相对于WEB应用的根目录方法定义处:提供进一步的细分映射信息,相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法标记处的URL相当于WEB应用的根目录DispatchSe

2017-09-06 12:57:55 3221 1

原创 [Spring] 基于注解来配置Bean

Bean的配置方式基于XML文件的方式基于注解的方式(基于注解配置Bean,基于注解来装配Bean的属性)在classpath中扫描组件组件扫描:Spring能够从classpath下自动扫描、侦测和实例化具有特定注解的组件特定组件包括:@component:基本注解,标识了一个受Spring管理的组件@Respositoy:标识持久层组件@Service:标识服务层组件@Contr

2017-09-06 12:57:18 316

转载 [Spring] Spring配置文件头部xmlns配置

刚开始学习Spring或许都对其配置文件头部的各种配置表示困惑,先贴出一个比较常见的头部文件<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.sp

2017-09-06 12:56:09 522

原创 [Spring] Spring JDBCTemplate

JdbcTemplate简介为了使JDBC更加易于使用,Spring在JDBC API定义了一个抽象层,以此建立一个JDBC存取框架作为Spring JDBC框架的核心,JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法,每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务JdbcTemplate的使用加入jar包c3p0-0.9.1.2.jarcom.springsourc

2017-09-06 12:55:16 180

原创 [Spring] Spring AOP编程理解

Spring AOP 编程理解一、AOP的理解最近在学习Spring,理解涉及到Spring的两大核心部分,一个是IOC(控制反转),另一个就是AOP(面向切面编程),今天主要讲一下什么是面向切面编程?在知乎上看到别人的回答,有句话觉得特别的有道理,“这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程”。到底什么是AOP呢?就是把逻辑代码和处理繁琐事务的代码分离开,

2017-09-06 12:53:44 241

原创 [Servlet] Java Web乱码

乱码先看一个简单的例子:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); String data = "中

2017-09-05 10:05:28 198

原创 [Servlet] HttpServletResponse

产生状态响应码当客户端浏览器请求服务器时,该服务器就会将返回消息封装到HttpServletResponse里进行响应,返回消息中的第一行为状态行:HTTP/1.1 200 OK。上面的状态行分为三部分,分别是HTTP版本(HTTP/1.1)、状态响应码(200)以及状态消息(OK),HTTP协议的状态响应码为3位正整数:100-199:表示服务器成功接收请求,但要求客户端继续提交下一次请求才能完

2017-09-05 10:04:11 779

原创 [Servlet] HttpServletRequest

HTTP请求消息和HTTP响应消息一样,也分为三部分,分别是请求行、请求消息头、消息正文。获取请求行消息HTTP请求信息中的第一行为请求行,格式如下:GET /webdemo/servlet/HelloWorld?name=bill&age=52 HTTP/1/1上面的请求行分为三部分,分别是请求方式(GET、POST、HEAD等)、资源路径和HTTP协议版本。HttpServletRequest接

2017-09-05 10:02:58 359

原创 [Qt] VS+Qt生成软件图标

在项目文件夹里创建名为*.rc的文件,如myapp.rc;文件中写入IDI_ICON1 ICON DISCARDABLE “myapp.ico,其中,myapp.ico为图标的文件名;将文件myapp.ico拷贝到项目文件夹内;在解决方案资源管理器中,右键点击项目,添加myapp.rc及myapp.ico;重新生成解决方案。

2017-09-05 10:02:14 195

原创 [Qt] QWebView的使用

Qt中使用QWebView在Qt中要使用QWebView必须经过一些配置,否则会出现error:C1083: 无法打开包括文件:”QWebView”这样的错误,这主要是因为QWebView、QWebFrame、QWebPage、QWebInspector等这些类被单独移到了QtWebKitWidgets模块,不再在QtWebKit模块当中。解决方法如下:在*.pro文件中添加Qt += webki

2017-09-05 10:01:48 3926

原创 [Qt] file:///的作用

本地文件传输协议,File协议主要用于访问本地计算机上的的文件,就如同在Windows资源管理器中打开文件一样。要使用File协议,基本的格式如下:file:///文件路径。

2017-09-05 10:01:18 1512

原创 [Linux] zsh corrupt

Linux中zsh遇到corrupt bug这几天打开ubuntu,出现zsh: corrupt history file /home/gtp/.zsh_history的错误,网上找到了解决方案,这里记录一下,以防以后遇到了又得花时间在网上搜索解决方案。解决方案如下:mv .zsh_history .zsh_history_badstrings .zsh_history_bad > .zsh_hi

2017-09-05 10:00:45 314

原创 [Linux] Linux中eventfd的使用

Linux中eventfd的使用eventfd简介eventfd是用来实现多进程或多线程之间的事件通知的,常见的事件通知机制除了eventfd外,还有条件变量和管道等 方式。条件变量必须和互斥锁相结合使用,使用起来较麻烦,并且条件变量不能像eventfd一样为I/O事件驱动。管道可以和I/O复用很好的融合,但是管道比eventfd多用了一个文件描述符,而且 管道内核还得给其管理的缓冲区,eventf

2017-09-05 10:00:09 474 1

原创 [Linux] Linux网络编程

EPoll的两种工作模式本文主要包含两个方面:Linux中的EAGAIN错误码EPoll的两种工作模式一、EAGAIN从字面上来看,表示再试一次的意思,这个错误经常出现在当应用程序进行一些非阻塞操作(对文件或socket)的时候,例如以O_NONBLOCKING的标志打开文件/socket/FIFO,如果连续做read操作而没有数据可读,此时程序不会阻塞起来等待数据准备就绪返回,read函数会

2017-09-05 09:58:21 284

空空如也

空空如也

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

TA关注的人

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