自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (9)
  • 收藏
  • 关注

转载 Linux写时拷贝技术(copy-on-write)

COW技术初窥:      在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。      那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢?      在fork之后exec之

2015-07-19 20:35:59 538

转载 linux页表创建与更新

简单来说,讨论linux页表就是讨论linux进程的的页表:linux页表的创建与更新都包含于进程的创建与更新中。当前的linux内核采用的是写时复制方法,在创建一个linux进程时,完全复制父进程的页表,并且将父子进程的页表均置为写保护(即写地址的时候会产生缺页异常等)。那么父子进程谁向地址空间写数据时,产生缺页异常,分配新的页,并将两个页均置为可写,按照这种方式父子进程的地址空间渐渐变得不同。

2015-07-19 20:02:40 1335

原创 Java设计模式之动态代理

在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。InvocationHandler接口是代理实例,调用处理程序实现的接口Proxy.newProxyInstance()创建代理实例首先我们先来看看java的API

2015-07-09 10:18:55 440

原创 C语言中字符数组和字符串指针分析

#include int main(int argc, char *argv[]){  char day[15] = "abcdefghijklmn";  char* strTmp = "opqrstuvwxyz";  printf("&day is %x\n",&day);  printf("&day[0] is %x\n",&day[0]);  printf("da

2015-07-06 16:21:37 386

原创 Linux内核中常见内存分配函数

1.      原理说明Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为:l         页全局目录(Page Global Directory)l         页上级目录(Page Upper Directory)l        

2015-06-14 22:19:47 377

转载 Linux内存管理

Linux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨

2015-06-14 15:29:37 385

原创 Linux系统下可执行文件的运行过程

1、首先,需要了解一下a.out这个目标文件。a.out在linux下是ELF(Executable Linkable Format)文件格式,该目标文件由一个文件头、代码段、数据段(已初始化)、从定位信息区、符号表及符号名字字符串构成,如下左图所示,经过链接后生成执行文件如下右图所示,需要说明的是1).bss段在目标文件和执行文件中并不占用文件的空间,但是它在加载时占用地址空间;2)链接后各个段

2015-06-12 14:35:11 5672 2

原创 java 堆 栈 方法区的简单分析

java 堆 栈 方法区的简单分析 1.基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object) 。方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收。局

2015-06-11 14:05:02 409

原创 page,request,session,application作用范围

application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。所有用户都可以进行获取,直到服务器关闭。Application 的范围最、停留的时间也最久,所以使用时要特别注意,不然可能会造成服务器负载越来越重。只要将数据存入application对象,数据的范围范围 。session:会话作用域,当用户首次访问时,产生一个

2015-06-02 10:13:25 807 1

原创 MySQL乱码问题

MySQL5.5的my.ini在“C:\ProgramData\MySQL\MySQL Server 5.5\my.ini”。把“my.ini”里的default_character_set改成gbk,重启mysql服务。然后连接数据库时:DBURL="jdbc:mysql://localhost:3306/demoservlet?useUnicode=true

2015-05-31 19:18:25 348

原创 javaweb-servlet开发

一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:  1、编写一个Java类,实现servlet接口。  2、把开发好的Java类部署到web服务器中。  按照一种约定俗成的称呼习惯

2015-05-31 12:28:57 471

原创 Java中String str = new String("abc")创建了几个对象

答案是两个,现在我们具体的说一下:String s = new String("abc");首先我们要明白两个概念,引用变量和对象,对象一般通过new在堆中创建,s只是一个引用变量。所有的字符串都是String对象,由于字符串文字的大量使用,java中为了节省时间,在编译阶段,会把字符串放在常量池中,常量池的一个好处就是可以把相同的字符串合并,占用一个空间,我们可以用==判断一下两

2015-05-27 22:38:08 4614

原创 java IO流

Java中的流,可以从不同的角度进行分类。按照数据流的方向不同可以分为:输入流和输出流。按照处理数据单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点流和处理流。 输出流: 输入流:因此输入和输出都是从程序的角度来说的。字节流:一次读入或读出是8位二进制。字符流:一次读入或读出是1

2015-05-27 10:02:23 477

原创 apache配置CGI

windows系统。我使用的是apache2.2。安装网上说明,在http.conf里加入AddHandler cgi-script .cgi .pl        AllowOverride None        Options +ExecCGI        Order allow,deny        Allow fro

2015-05-25 17:26:27 320

原创 android正确导入第三方jar包

一、第一种方式1.打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->Configure Build Path2.在Libraries选项卡中,选择右侧的Add External JARs,然后选择要导入的第三方的jar包即可!3.在Order and Export选项卡中,点击右侧的Up按钮,将刚才引入的jar包放到最上方的位置

2015-05-22 14:45:04 1067

转载 JSON解析实例——使用Json-lib

JSON解析实例——使用Json-lib Json-lib下载及使用   本文介绍用一个类库进行JSON解析。   工具下载地址:http://sourceforge.net/projects/json-lib/?source=directory   下载后,有这么三个东东:  将第一个Jar包导入项目即可用其中的API。

2015-05-21 20:47:21 363

原创 服务器和客户端的交互方式(Socket,http协议)和各自特点适用范围

1 数据传输方式1.1  Socket传输的定义和其特点       所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有UDP和TCP两个协议。Socket处于网络协议的传输层。UDP协议:广播式数据传输,不进行数据验证 TCP协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流, Socket 传输的特点:

2015-05-21 20:36:14 3188

转载 Android学习笔记(21)————利用JDBC连接服务器数据库

1、Android平台下与服务器数据库通信的方法        在Android平台下,连接电脑服务器的MySQL、PostgreSQL、Oracle、Sybase、Microsoft SQLServer等数据库管理系统DBMS(database management system),主要有以下两种方法:方法1、直接连接在Android工程中引入

2015-05-21 17:20:39 651

原创 tomcat安装和添加虚拟目录

1、首先是Tomcat的获取和安装。    获取当然得上Apache的官方网站下载,开源免费,而且带宽也足够。下载会很快。      这是两种不同的下载,一个是普通安装版本,一个是解压安装版本。使用起来是一样的,只是在普通安装版本中有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册。  2、Tomcat的运行环境搭建。    (解压版)安

2015-05-18 15:13:01 438

原创 eclipse导入jar包

以Eclipse和MyEclipse(英文版的)为例,如果常用就把它添加到用户库中。(1)把jar文件添加用户库中:打开“Window”-->"Preferences"-->"Java"-->"Build Path"-->"User Libraries",单击"New..."后在弹出的"New User Library"中输入你想要的描述名。这里我输入"MySQL",单击"OK"后,选中"

2015-05-16 15:19:54 499

原创 平衡二叉树

平衡二叉树平衡二叉树简称平衡树,是由Adelson-Velskii和Landis于1962年首先提出的,所以又称为AVL树,平衡二叉树的性质如下:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。平衡因子BF=左子树的深度-右子树的深度,BF只能为-1,0,1。平衡二叉树是对二叉搜索树(又称为二叉排序树)的一种改进。二叉搜索树有一个缺点就是,树的结构是无法预

2015-05-11 21:50:21 435

原创 java常见事件响应方法实例汇总

本文实例汇总了java中常见的事件响应方法,包括容器类监听、监听器类、AbstractAction、反射等。以方便大家参考。具体方法如下: 首先,在Java图形用户界面中,处理事件时所必须的步骤是: 1、创建接受响应的组件(控件) 2、实现相关事件监听接口 3、注册事件源的动作监听器 4、事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应。 一、容器类监听 效果:单击

2015-05-10 20:42:06 1470

转载 软件最大的追求是什么?

当面向对象技术正在将Model对象持久化行为绑定到Model数据自身时,工业界力推的SOA则倡导的是将数据从行为中解耦出来。SOA相关讨论见这里。看似矛盾,实际它们有一个共同点,追求同一个终极目标:松耦合(loose coupling)。  当我们在Java波涛汹涌的潮流中奋击时,我们常常会思考?我为什么要这样做?甚至,我们会想松耦合真的那么酷?可维护性真的是软件唯一?也许我们迷失了方

2015-05-09 13:26:23 588

原创 java变量初始化

1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值。  默认值如下:             Boolean      false             Char           '\u0000'(null)             byte            (byte)0             shor

2015-05-06 13:30:28 370

原创 Android开发之Intent详解

Intent在一个Android 应用中,主要是由四种组件组成(Activities, Services, Broadcast receivers, Content providers),而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯,主要是由Intent协助完成的。如果我们把Activity比作积木的话,那么Intent就

2015-05-02 14:07:35 483 1

原创 Android开发之BroadcastReceiver组件

BroadcastReceiverBroadcastReceiver是用于接收广播通知的组件。广播是一种同时通知多个对象的时间通知机制。类似于日常生活中的广播,允许多个人同时收听,也允许不收听。Android中的广播来源于系统事件,例如按下拍照按键、电量过低、安装应用程序等,还有普通应用程序,例如启动特定线程、文件下载完毕等。BroadcastReceiver是用来对发送出来的广播进行筛选

2015-05-01 22:30:54 406

原创 Android开发之Handler消息传递机制

Handler的定义:如果通过子线程的方法对UI界面进行操作,将抛出异常,Android中引入了Handler消息传递机制主要接受子线程发送的数据,并用此数据配合主线程更新UI。解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) ,主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个 Button ,Android会分发事件到Button上

2015-05-01 14:33:36 502

原创 java回调函数

回调函数定义:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调函数实现的机制是(1)定义一个回调函数; (2)提供函数实现的一方在初始化的时候,将回调

2015-04-30 15:38:03 476

原创 C语言枚举

枚举在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。 定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚举类型。例如: enum weekday{sun,mon,tue,wed,thu,fri

2015-04-30 14:38:15 562

原创 TCP/IP协议栈详解

TCP/IP协议族1.1 简介TCP/IP协议族由5层组成:物理层、数据链路层、网络层、运输层和应用层。前四层与OSI模型的前四层相对应,提供物理标准、网络接口、网际互联、以及运输功能。而应用层与OSI模型中最高的三层相对应。TCP/IP协议族中的各层包含了一些相对独立的协议。在物理层和数据链路层,TCP/IP并没有定义任何协议。在网络层TCP/IP支持网际互联协议(IP),而IP

2015-04-20 19:52:40 3547

原创 ARP协议详解

ARPARP作用ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所

2015-04-20 18:44:10 412

原创 QTCreator添加链接库

在.pro文件中添加如下:注意如果添加为:INCLUDEPATH+=F:\Video\IncludeLIBS+=F:\Video\win32\P2PAPI.dllLIBS+=F:\Video\win32\PPPP_API.dll会报错:出错退出, 代码: -1073741515

2015-04-15 20:51:06 2370 1

原创 二叉树的建立和遍历

#include #include typedef int Element ;typedef struct BitTree{ Element data; struct BitTree *lchild,*rchild;}BitNode,*Bit;//先序遍历创建二叉树void creatorBitTree(Bit *T){ int ch; s

2015-04-06 14:32:18 364

原创 可重入和不可重入函数

可重入和不可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首先它意味着这

2015-04-01 20:03:08 281

原创 排序——堆排序

堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。堆分为

2015-04-01 18:57:01 384

原创 排序——归并排序

归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。如设有数列{6,202,1

2015-03-31 12:40:27 361

原创 排序——快速排序

快速排序快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,相当于此数据已经在该排序的正确位置,然后再按此方法对这两部分数据分别进行快速排序,以此类推让所有的数据都在排序的正确位置,整个排序过程可以递归进行,以

2015-03-31 09:23:02 382

原创 Swing多线程

当运行一个 Swing 程序时,会自动创建三个线程。1.主线程,负责执行main 方法。2. toolkit 线程,负责捕捉系统事件,比如键盘、鼠标移动等,程序员不会有任何代码在这个线程上执行。Toolkit线程的作用是把自己捕获的事件传递给第三个线程,也就是事件派发线程。3. 事件派发线程(EDT,Event Dispatcher Thread),顾名思义是用来派发事件(

2015-03-22 12:41:45 608

转载 Java中的static关键字解析

Java中的static关键字解析Java中的static关键字解析  static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲:  一.static关键字

2015-03-17 20:23:05 303

原创 Eclipse关联源码报错failed to create the part's controls

刚开始,试着用Failed to create the part'sControls.这个关键词去查询解决方法,大概都说是与java环境变量有关,还有是什么版本的问题。。。后来,我查看报的异常,有一句Unmatched braces in the pattern....我就用这句去查询,才找到解决方法:配置自己Eclipse的启动参数  eclipse.ini  在最后面加入这段代码 

2015-03-17 20:04:47 995

hibernate开发jar包

hibernate-annotations jar包 hibernate-distribution-3.3.2.GA slf4j-1.5.8

2015-06-25

stm32 +TF

stm32平台上的TF卡开发源码

2014-09-24

sim300-GPRS

SIM300-GPRS使用手册。

2014-09-02

C++MFC入门教程

C++MFC入门教程。

2014-06-03

QT图像采集

QT图像采集

2014-05-10

视屏监控源码

视屏监控源码。

2014-04-14

小游戏源码

小游戏源码

2014-04-08

驱动与应用程序

驱动和应用程序的调用

2014-04-08

嵌入式操作系统

嵌入式操作系统

2014-03-09

空空如也

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

TA关注的人

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