- 博客(229)
- 收藏
- 关注
转载 Mac&iOS Socket
一.Socket简介在UNIX系统中,万物皆文件(Everything is a file)。所有的IO操作都可以看作对文件的IO操作,都遵循着这样的操作模式:打开 -> 读/写 -> 关闭,打开操作(如open函数)获取“文件”使用权,返回文件描述符,后继的操作都通过这个文件描述符来进行。很多系统调用都依赖于文件描述符,它是一个无符号整数,每一个用户进程都对应着一个文件描述符表,通过文件
2016-11-01 20:03:42 607
转载 C++ STL中的vector的内存分配与释放
1.vector的内存增长vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vector进行内存分配时,其实际分配的容量要比
2016-10-10 17:28:53 696
转载 红黑树并没有我们想象的那么难(上)
红黑树并没有我们想象的那么难(上)红黑树并没有我们想象的那么难 上、下两篇已经完成, 希望能帮助到大家.红黑树并没有我们想象的那么难(上): http://daoluan.net/blog/rbtree-is-not-difficult/红黑树并没有我们想象的那么难(下): http://daoluan.net/blog/rbtree-is-not-di
2016-09-07 10:05:31 1597
转载 Linux进程间通信——使用消息队列
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞
2016-09-04 20:02:27 429
转载 Linux进程间通信——使用信号量
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行
2016-09-02 12:01:45 399
转载 Linux进程间通信——使用信号
一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产
2016-09-01 12:18:36 266
转载 几种进程间的通信方式
1、几种进程间的通信方式# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访
2016-08-31 12:23:48 302
转载 Linux进程间通信——使用共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc
2016-08-31 12:22:11 315
转载 进程间通信系列(一)管道读写实例
一、管道读写注意点1.只有在管道读端存在时,向管道写入才有意义;否则,会收到内核中的出错信号:SIFPIPE2.向管道写入数据时不保证写入的原子性,管道缓冲区一有空闲区域,写进程就试图向其写入内容。若读进程不读取管道中的内容,则写进程会一直阻塞。3.父子进程在运行时,它们的先后顺序得不到保证。因此在这里,为保证父进程关闭读描述符,可向子进程加入sleep(2)。二、
2016-08-30 20:24:15 742
转载 进程间通信
1.进程间通信系列(一)管道读写实例 网址:http://blog.csdn.net/yeyuangen/article/details/67364112.
2016-08-30 16:24:05 249
转载 java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问ob
2016-08-29 21:10:33 357
转载 多线程编程学习总结
线程的概念和原理为什么使用多线程?为了更高效的完成任务和利用CPU资源,现在的操作系统设计为多任务操作系统,而多进程和多线程是实现多任务的方式。什么是进程和线程?进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。进程是OS分配资源的最小单位。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程总是属于某个进
2016-08-25 21:44:35 425
转载 WinInet
一 WinINet是干什么的?二如果完成一个基本的WinINet操作流程三如何异步完成,异步操作的好处。四 unicode以及mutilbyte五代码样例一 WinINet是微软开发的一个库,可以完成http ftp客户端的工作。让程序员从复杂的协议中节省大量体力。二我会用了http, ftp类似。用WinINet完成一个http下载需要以下步骤 。 下面这个是同步
2016-08-23 16:53:36 875
转载 InterruptedException的解读
最近写了些多线程的程序,用Thread.sleep()的时候有时会碰到InterruptedException。查了一些资料,下面是我自己的一些理解。阻塞方法一些多线程相关的方法是阻塞方法,比如Thread.sleep(), Thread.wait(), Thread.join()。这些方法的执行通常需要比较长的时间来完成,当代码执行到阻塞方法时,一般要等待该方法返回后
2016-08-23 11:59:45 526
转载 java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法12345678910111213
2016-08-23 11:59:00 237
转载 java多线程编程技术 +代码实例
1. java和他的API都可以使用并发。可以指定程序包含不同的执行线程,每个线程都具有自己的方法调用堆栈和程序计数器,使得线程在与其他线程并发地执行能够共享程序范围内的资源,比如共享内存,这种能力被称为多线程编程(multithreading),在核心的C和C++语言中并不具备这种能力,尽管他们影响了JAVA的设计。2. 线程的生命周期新线程的生命周期从“
2016-08-23 11:58:21 302
原创 Java多线程编程开发目录
1.多线程编程实例 publicclass RunnableTest { publicstaticvoid main(String[] args) { Runnable runnable=new MyThread(); new Thread(runnable).start(); new Th
2016-08-23 11:55:52 225
转载 【经典算法】——KMP,深入讲解next数组的求解
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留
2016-08-19 21:53:47 334
转载 E-R图
E-R图忘记是第几次重构了,这次改概要设计文档的时候,接受了袁福彪师兄的指导.牵扯到一个数据建模E-R图,找资料,学习了一下. 一、E-R图,实体-联系模型(简称E-R模型),它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。 这里不再赘述什么是E-R图了,自己百度百科去吧. 二、主要举两个例子:1、图书借阅管理系统
2016-08-18 11:52:33 1562
转载 [Struts2官方指南的个人学习和翻译] Struts2自带例子MailReader的学习
漫谈 Struts 2 MailReader 应用开发过程 该文章通过讲述一个简单但功能齐全的应用开发过程来指导Struts2的初学者. 文章中包含了使用到的代码段, 但你最好在自己搭建一个服务器来运行MailReader应用. 该教程默认读者有一定的Java,JavaBeans,JSP,web应用开发的基础知识. 想了解底层的实现技术,请浏览 Key Technol
2016-08-12 12:25:20 971
转载 Struts2拦截器介绍及说明
Struts2拦截器简单介绍 10级学员 林常禹课堂笔记理解struts2中的拦截器拦截器在访问struts2中某个action之后或者之前,会自动调用的类,就是struts2中的拦截器,他具有的最大特点就是实现了AOP(面向切
2016-08-12 12:24:27 382
转载 关于web.xml里的filter的url-pattern配置问题
写了一个过滤器用来做用户的权限验证。需要验证的页面都在admin文间夹下,结构如下图里面除了index.jsp不进行验证外(主要是验证index.jsp会造成死循环),其它的页面都进行验证。right com.chenlei.filter.RightFilter right /admin/admin_left.jsp我在里配
2016-08-11 14:49:26 766
转载 struts开发_网页地址集合
1. 在eclipse中进行Struts2项目的配置 http://www.cnblogs.com/freeweb/p/5079316.html2.使用eclipse创建Struts2项目http://blog.csdn.net/unix21/article/details/189030213.struts2开发简单实例 http://gongjiayu
2016-08-10 21:24:38 324
转载 【java开发系列】—— struts2简单入门示例
上篇推荐:JDK安装前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。 struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。 过去,我们用jsp和servlet搭配,实现展现时,大体的
2016-08-10 21:22:07 309 1
转载 struts2开发简单实例
struts2开发简单实例 1.引入struts2相应的jar包,可以到网上下载,大把大把的。 2.配置struts.xml 要放在src目录下 如下: Java代码 "1.0" encoding="UTF-8" ?> "-//Apache Software Foundation//DTD Struts Configuratio
2016-08-10 21:21:18 413
转载 使用eclipse创建Struts2项目
eclipse版本: Kepler Service Release 1 http://www.eclipse.org/downloads/struts版本:2.3.16 http://struts.apache.org/1.新建web项目打开Eclipse,新建一个web项目"Struts2"项目名字
2016-08-10 21:20:47 2316
转载 在eclipse中进行Struts2项目的配置
Struts2是一个比较出色的基于MVC设计模式的框架,是由Struts1和WebWork发展而来的,性能也比较稳定,现在是Apache软件基金会的一个项目,下面就来配置Struts2进行初始化的开发 Struts2对环境要求不高,JDK版本1.5以上,ServletAPI在2.5以上,Tomcat版本在6.0以上即可,当然更推荐使用最新版本 首先去Apache官网下载Struts2的
2016-08-10 21:19:42 1165
转载 通过实例学习Struts2 - 从struts-blank开始 (1)
最近发现一些网站在Copy&Paste我的文章, 请尊重我的劳动成果,在转载的时候注明出处,谢谢。前言一直用Struts1 , 现在新的项目要转向Struts2了, 先研究学习一下,做点技术储备。我一直认为计算机软件行业是一个实践性非常强的行业,书读了多少都不管用, 一定要卷起袖子,亲自动手,才能学到一门技术的精髓,才能谈得上精通。否则浮在表面,只懂概念,夸
2016-08-10 15:13:26 917 1
转载 【java开发系列】—— struts2简单入门示例
上篇推荐:JDK安装前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。 struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。 过去,我们用jsp和servlet搭配,实现展现时,大体的
2016-08-09 22:01:59 236
转载 struts2开发简单实例
struts2开发简单实例 1.引入struts2相应的jar包,可以到网上下载,大把大把的。 2.配置struts.xml 要放在src目录下 如下: Java代码 "1.0" encoding="UTF-8" ?> "-//Apache Software Foundation//DTD Struts Configuratio
2016-08-09 22:01:06 535
转载 WEB-INF目录与META-INF目录的作用
/WEB-INF/web.xmlWeb应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。 /WEB-INF/lib/存放web应用需要的各种JAR文件,放置仅在这个应用中要
2016-08-09 20:21:38 299
转载 Servlet容器的概念
容器就是你的程序运行时需要的环境 1,Tomcat是Servlet的运行环境,即一个Servlet容器。 2,Servlet容器的作用是负责处理客户请求,当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。 3,Servlet容器的工作过程是:当客户请求某个资源时,Servlet容器使用ServletRe
2016-08-09 20:21:16 295
转载 ActionMapper 是干什么用的?
public abstract interface org.apache.struts2.dispatcher.mapper.ActionMapper {}public abstract org.apache.struts2.dispatcher.mapper.ActionMapping getMapping(javax.servlet.http.HttpServletRequest arg0,
2016-08-09 20:20:49 5123
转载 struts2的处理请求的全过程是什么
一个请求在Struts2框架中的处理步骤: a) 客户端初始化一个指向Servlet容器的请求; b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMesh Plugin),主要清理当前线程的ActionContext和Dispatcher; c) 请求经过插件过
2016-08-09 20:20:21 473
转载 Struts2完成一次请求的过程
Struts2请求过程:1.当Servlet容器接收到一个请求后,将请求交给你在web.xml文件中配置的过滤器FilterDispatcher,调用它的doFilter()方法。2.FilterDispatcher询问ActionMapper,以便确定这个请求是否有对应的action调用。3.ActionMapper放回一个描述了actin调用的ActionMapping对象。4
2016-08-09 20:19:56 320
转载 WEB-INF目录与META-INF目录的作用
/WEB-INF/web.xmlWeb应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。 /WEB-INF/lib/存放web应用需要的各种JAR文件,放置仅在这个应用中要
2016-08-09 20:19:26 264
转载 web.xml文件的作用
每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。 web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。当你的we
2016-08-09 20:18:54 199
转载 Java三大主流框架概述
Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的?我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数
2016-08-09 16:32:15 320
转载 快速排序算法在平均情况下的时间复杂度为 求详解
时间复杂度为O(nlogn) n为元素个数1. 快速排序的三个步骤:1.1. 找到序列中用于划分序列的元素1.2. 用元素划分序列1.3. 对划分后的两个序列重复1,2两个步骤指导序列无法再划分所以对于n个元素其排序时间为 T(n) = 2*T(n/2) + n (表示将长度为n的序列划分为两个子序列,每个子序列需要T(n/2)
2016-08-08 16:57:01 6187
转载 Java程序编译和运行的过程
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted"
2016-08-05 20:02:37 390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人