自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Working...

唯有追求卓越,成功便会不期而至!

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

原创 Spring、Spring MVC、Spring Boot、Spring Cloud的区别

2020-02-07 18:44:28 232 1

转载 公众号平台服务号、订阅号、企业号区别

以下介绍来自微信公众平台介绍1、订阅号:主要偏于为用户传达资讯(类似报纸杂志),认证前后都是每天只可以群发一条消息;2、服务号:主要偏于服务交互(类似银行,114,提供服务查询),认证前后都是每个月可群发4条消息;3、企业号:主要用于公司内部通讯使用,需要先有成员的通讯信息验证才可以关注成功企业号;企业号只有企业通信录成员才能关注,同时一个微信企业号可配置多个类似服务号的应用,发送信息

2016-10-14 11:05:20 3748

原创 了解Android WebView

最近公司的项目在做H5测试,自己只是写业务逻辑的android小白,听着大家在说什么webview、webkit....,云里雾里。所以就抽出下班后的一点时间开学习和了解一下相关的概念和知识点,然后总结一下记录下来。1、为什么android app 可以显示web页面?作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 We

2016-10-13 19:51:31 704

原创 web.xml配置文件

网上已经有很多同学对web.xml进行了详细的解读,我这边主要是讲自己在网上浏览的文章进行汇总和梳理,便于理解和学习~一般的web工程都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。Web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必要的,一个web工程可以没有web.xml文件。Web.xm

2016-08-16 18:14:03 574

原创 Java 的JAR包、EAR包、WAR包介绍

WAR包WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。War是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块。通常用于网站,打成包部署到容器中,以tomcat来说,将war文件包放置它的\webapps\目录

2016-08-16 14:08:09 4023

原创 HTTP协议简单介绍

Http协议是超文本传输协议的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。Http协议是一个基于TCP/IP通信协议来传输数据(HTML文件、图片文件、查询结果等)浏览器作为HTTP客户端通过URL向HTTP服务端即WEB浏览器发送所有请求。HTTP协议通信流程: HTTP请求方法HTTP1.0定义了三种请求方法:GET、POST和HEAD方法HTTP1.1

2016-08-12 15:05:59 1797

原创 浅谈cookie和session

对于我这个java web 的初学者来说,session和cookie是一个令人头痛的问题,感觉这两者的区别,从概念上说起来很简单,他们仅仅是Http协议中的配置项,在servlet中也只是对应的一个类而已。但是当我们做一个比较大的系统时,会时常用到cookie和session。所以这是我们不得不考虑cookie和session的一些限制和瓶颈。下面我从引用一个例子开始,简单的介绍一下cookie

2015-08-26 17:28:13 749

转载 efl格式分析

最近研究了一下elf文件格式,发现好多资料写的都比较繁琐,可能会严重打击学习者的热情,我把自己研究的结果和大家分享,希望我的描述能够简洁一些。一、基础知识elf是一种文件格式,用于存储Linux程序.它内部都有一些什么信息呢?大概包括编制好的计算机指令,数据,计算机在需要的时候把这个文件读取到内存中,cpu就可以从内存中一条一条的读取指令来执行了。所以说想明白elf格式,我们应该了

2014-12-12 10:57:35 2214

原创 在阿里巴巴的那些日子

不知道现在为什么可以静下心来回忆在阿里巴巴实习的那段日子?在刚回来的时候自己也有想过去将这段时间记录下来,但是每当提起笔来就不知道从何写起,不知道是因为自己没有勇气面对自己的不足?还是因为不想触及心中仍然对西溪园区的不舍?亦或是因为那段时间成长的太多,没有办法用足够的文字来记录?当时间一点点的流逝,我也越来越看清楚自己的心,所以在这个闲暇的傍晚来记录这一段自己的成长历程。        201

2014-12-05 21:33:09 3480 2

原创 《问佛》——仓央嘉措

我问佛:为何不给所有女子美丽的容颜?佛曰:那只是昙花一现,用来蒙蔽世俗的眼,没有什么美可以抵挡一颗纯净仁爱的心,我把它赐予没一个女子,可有人让她蒙上了灰。我问佛:世间为何有那么都遗憾?佛曰:这是一个婆娑世界,婆娑即遗憾,没有遗憾,给你再多的幸福也不会体会快乐。我问佛:如何让心不再感到孤单?佛曰:没一颗心生来就是孤单而残缺的,多数带着这种残缺度过一生,只因

2014-07-29 20:09:55 1751 1

原创 Libxml2的学习—生成、解析xml文件

由于最近的做的一个小项目中涉及到数据的传输, 因为xml非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。为了保证数据传输的效率和正确性我们选择了使用xml格式来进行文件的传输,所以其中存在xml文件的生成与解析,下来后就看了一些关与libxml2的知识,再次总结一下。(有不足之处,还请多多指教)Libxml2是个C语言的XML程式库,能简单方便的提供对XML文

2014-06-01 17:58:34 3230

原创 [STL学习] C++编程实现 (vector)

向量是一维数组在抽象数据类型框架中的推广,也可以说向量是用类来表示的一维数组。在以数组为基础的向量的数据模型上,还要定义一组关于向量的运算,才能使这一数据模型成为一个抽象数据类型。下面给出一组典型的向量运算。(1)size():向量的长度(2)Empty():测试向量是否为空()Capacity():向量的容量Resize(n):重置向量的容量=:赋值运算Front()

2014-05-19 20:19:39 801

原创 [详解]TCP三次握手,四次分手

TCP是TCP/IP体系中非常复杂的一个协议。下面首先介绍TCP最主要的特点:TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完成后,必须释放已经建立的TCP连接。每一条TCP连接只有两个端点,每个TCP连接只能是点对点的。TCP提供可靠交付的服务。也就是说,通过TCP连接传输数据,无差错、不丢失、不重复、并且按照序列到达。TC

2014-04-19 20:15:09 2333

原创 小懒成长的第一步(寻找实习之路)

经过一个说长不长说短不短的清明节假期,自己的心情也终于从低落中走出来了,不管在这个假期的三天前的自己是什么样的,但是三天后的我会依旧充满希望,大步迈向我的理想。回忆从这个学期开始以来,也快有两个月了,自己一直在忙些什么?又收获了些什么?是不是该有一个时间来总结一下自己,尤其是这段时间乱乱的、烦烦的自己?对,是应该对这段时间来个收尾了。从今年开学以来,自己都在忙着为找实习做准备,开始准备简历

2014-04-07 20:36:46 1283 4

转载 服务端处理常用的5种基础策略

一、一个线程服务多个客户端,使用非阻塞I/O和水平触发的就绪通知把网络句柄设置为非阻塞模型,然后使用select()或poll()来告知哪个句柄已有数据在等待处理。此模型是最传统的,在此模型下,由内核告知你某个文件描述符是否准备好,是否已经完成你的任务自从上次内核告知已准备好以来(“水平触发”这个名字来源计算机硬件设计,与其相对的是“边缘触发”,JonathonLemon在它的关于kque

2014-03-30 15:30:47 1268

原创 僵尸进程&孤儿进程

1、定义僵尸进程:一个进程创建子进程,如果子进程退出,而父进程并没有调用wait或者waitpid获取子进程的状态信息,那么子进程的进程描述符依然保存在系统中。这种进程成为僵尸进程。孤儿进程:一个进程的父进程先于子进程退出,而它的一个或者多个子进程还在运行,那么那些子进程将成为孤儿进程,孤儿进程将被 init进程收养,并由init进程对他们完成状态收集工作。2、僵尸进程&孤儿进程的产生

2014-03-21 21:19:31 811

原创 浅谈I/O复用:select、poll、epoll

I/O复用使锝程序能同时监听多个文件描述符,这对提高程序的性能至关重要。通常网络程序在下列情况下需要使用I/O复用技术:客户端程序要同时处理多个socket客户端程序要同时处理用户输入和网络连接TCP服务器要同时处理监听socket和连接socket(这时I/O复用使用最多的场合)服务器要同时处理TCP请求和UDP请求服务器要同时监听多个端口,或者处理多种服务。需要指出的是

2014-03-18 20:23:41 1006

原创 吃一堑长一智

因为自己的疏忽,在写博客《互联网协议知识》时,因为许多内容都是来自阮一峰大牛的博客,虽然自己也增加了一部分自己的看法和知识。但是在引用大牛的博客时,没有注明出处,所以被严重批评了。自己通过这件事也明白了,是自己在这方面思考的欠缺,没有对技术知识产权的尊重,意识到自己这方面做的不好。所以通过这次的事情,自己在以后的学习或者工作中,都是对自己的一个提醒,不管做什么事都要考虑的全面。再次对自己进行检讨,

2014-03-14 14:21:39 942 2

原创 经常被忽略的知识点

1、在C语言中,关键字static的作用是什么?(1)在函数体内,一个被声明为静态的变量在函数被调用过程中其值为上次使用后保存的值。(2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所有函数访问,但是不能被模块外其它函数访问,它是一个本地全局变量。(3)在模块内,一个被声明为静态的函数只可能被这一个模块内的其它函数调用,也就是说,这个函数被限制在声明它的模块的本地范围内

2014-03-13 15:26:20 856

原创 进程和线程的区别与联系

因为最近在准备着各种笔试和面试,所以就把平时自己比较模糊的概念进行了总结和整理。        进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配的一个独立单位。线程是进程的一个是实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的单元,线程自己基本上不拥有系统资源,只拥有一点在运行时必不可少的资源(如程序计数器、寄存器和栈),但是它可与同属一个进

2014-03-12 10:57:11 817

原创 操作系统的设计指导思想——主奴机制

在学习操作系统的过程中我们会发现一个问题:应用程序是应用程序,操作系统也是程序,操作系统程序凭什么能对应用程序进行组织、管理和协调而不受应用程序损害呢?我们认为凭的是特权机制。要想让操作系统做到能够对应用程序进行组织、管理和协调,同时又不受到损害,最有效的方法就是使操作系统与应用程序之间,应用程序与应用程序之间进行有效的分离,同时要做到操作系统能随意访问应用程序,而应用程序不能访问操作系统,应用程

2014-03-02 14:12:30 2585

原创 选择类排序法——归并排序

归并排序的基本思想是基于合并,将两个或者两个以上的有序表合并成一个新的有序表。归并排序是建立在归并操作上的一种有效的排序操作。该算法是采用分治法的一个典型例子。将已知序列的子序列合并,得到完全有序的序列,即先使每一个子序列有序,再使子序列段间有序,若将两个有序表合并成一个有序表,称为二路归并。时间效率:归并排序的效率是比较高的,设数列长N,将数列分开成小数列一共要logN步,每步都是一

2013-12-06 11:48:12 1007

原创 分配类排序——基数排序

基数排序属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序。时间效率:设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排序的时间复杂度为O(d(n+radix)),其中,一

2013-12-03 21:04:29 1207

转载 C++虚函数表解析(转)

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过

2013-12-01 17:53:41 606

原创 浅谈线程池

1、为什么要使用线程池?        在传统服务器结构中,有一个总的监听线程监听有没有新的用户连接服务器,当每有一个新的用户进入时,服务器就会开启一个新的线程用于处理这个用户的数据包。这个线程只服务于这个用户,当用户与服务器关闭连接以后,服务器就会销毁这个线程。然而频繁的开辟与销毁线程极大的占用了系统的资源。如果有大量的用户请求的情况下,系统为了开辟和销毁线程就会浪费大量的时间和资源。既然有

2013-11-28 14:51:13 978

原创 汇编实现键盘钢琴

基于上一篇文章,汇编实现背景音乐的播放的理论知识,然后改编了一个小小的键盘钢琴的实现。如果对于实现的原理不太明白,就去看上一篇博客。下面是实现的程序:;汇编实现键盘钢琴data segment DIDAS EQU 1 ;延时(时钟嘀嗒次数) frequency dw 441,495,556,589,661,

2013-11-27 19:54:58 4719

转载 使用16位汇编显示bmp位图

寻找了各种办法终于实现了显示256色的位图,但是防止数据段超过64k最终还是没有使用。还是写下来留作纪念吧。   首先我们需要了解清楚bmp文件的结构,下面是关于bmp(位图)结构体的介绍:1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。2. BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小

2013-11-25 16:35:33 2799 1

原创 博客搬到新家了!CSDN

由于种种原因,将原来的博客搬来至CSDN了,新的博客之家,新的开始,加油!http://blog.sina.com.cn/u/2657346022(原博客地址)

2013-11-25 16:25:50 1028

原创 mmap()函数

mmap()函数将一个文件或者其它对象映射尽内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。注:实际上,mmap()系统调用并不是完全为了共享内存而设计

2013-11-25 14:25:00 2848

原创 智力题(拆分)

由于下午学习时感到有点累了,就随便进几个学姐和学长的博客转转,结构发现了一个还挺巧妙的智力题,于是就打算自己记录下来。题目:你有一条金条,你雇佣一个员工干7天的活,这个金条你只能切2刀,但是你每天都要发给员工一份。发7天,问应该怎样切?其实自己开始想了一下,但是没有克制住自己,就把答案看了~~(这种习惯真不好,知道有答案就不好好思考),所以大家可以想一下,看看自己有没有想对,千万不要像

2013-11-25 14:24:58 888

原创 中断和异常

操作系统需要对计算机系统中的各种外设进行管理,这就需要CPU和外设能够相互通信才行。一般外设的速度慢于CPU的速度。如果让操作系统通过CPU“主动关心”外设的事情,集采取通常的轮询机制(polling),则太浪费CPU资源了。所以需要CPU和操作系统一起提供某种机制,让外设在需要操作系统处理外设相关事件的时候,就能主动通知操作系统,即打断操作系统和应用程序执行,让操作系统完成外设的相关处理,然后再

2013-11-25 14:24:55 1049

原创 分段机制

为什么要了解intel80386的保护模式和分段机制?我们知道intel80386只有进入保护模式,才能发挥其强大的功能,提供更好的保护机制和更大的寻址空间,否则仅仅是一个快速的8086。没有一定的保护机制,任何一个用户程序都可以访问所有计算机的资源,对于8086实模式确实是如此,但是当我们已经跨越到了80386来,分段机制就一直存在,为操作系统提供了保护(当然还有分页机制,我们到后面再去谈)并

2013-11-25 14:24:53 1801

原创 Intel:80386运行模式

80386有四种运行模式:实模式、保护模式、SMM模式和虚拟8086模式。以下主要是对实模式和保护模式做一个简单介绍。实模式:80386加电启动后出于实模式运行状态,在这种状态下软件可访问的内存空间不足1MB,并且不能发挥80386以上级别的32位CPU的4GB内存寻址能力。实模式将整个内存看成分段的区域,程序的代码和数据位于不同的区域,系统对操作系统程序和用户程序是相同看待的,不做区分,并

2013-11-25 14:24:51 2385

原创 Grub Multiboot规范

因为自己最近在尝试着写一个简单的小型操作系统(跟着JamesM’skernel学习),所以没有自己写引导程序,而是用的grub作为引导来加载OS,所以在写程序的时候就要求代码符合Multiboot规范,然后就看了一下文档,感觉内容挺多的,就决定自己将规范简化一下(提前声明,这篇博客中只是介绍了我自己编程中用到的一些知识,可能不全面,如果大家还想看更多详细的,下面是网址:http://www.cn

2013-11-25 14:24:49 2962

原创 重新回来

已经好久没有写博客了,但是再三天后我回重新回来,加油小懒!~~~~记住心中的那个蓝图。

2013-11-25 14:24:47 690

转载 网络编程——互联网协议知识(二)

对于上一篇互联网协议入门(一),主要描述的是从网络分层模型的最下端往上进行分析的,所以互联网入门(二)就是主要站在用户的角度来看待一个简单的网络传输过程。用户上网的配置(1)静态IP当我们拿到一台新的电脑时,往往就会急急忙忙的拿出来赶紧上网,但是这是的电脑是不能上网的。因为在此之前,通常必须做进行网络的配置,这里有四个重要的参数,你要把这些参数进行配置后才可以用计算机连上网:*本机

2013-11-25 14:24:45 960

转载 网络编程——互联网协议知识(一)

现在我们每天都在使用电脑上网,但是对于之前的我,从来都没有想过,这些是如何实现的?所以导致现在的自己仍然想一个网络白痴,所以要来是学习了。。。当我们和远在全国各地的朋友通过网络两两通信,我在西安的一块网卡发出信号,在北京的另一块网卡居然可以收到,但是两个实际根本就不知道对方的物理地址,这真是一件非常神奇的事情。     互联网的核心就是一系列的协议,总称为“互联网协议”。TCP/IP协议是

2013-11-25 14:24:43 1103

原创 线程和fork()

在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在多线程程序里fork子进程.能引起什么问题呢?分为两个方面来进行讲述:(1)在子进程中调用fork函数(此处不涉及锁);在主线程中调用fork()在不涉及锁的情况下,在线程中调用fork一般不会出现

2013-11-25 14:24:41 1139

原创 线程的同步

线程最大的特点就是资源的共享性,然而资源共享中的同步问题是多线程编程的难点。linux提供了多种方式处理线程间的同步问题,其中最常见就有互斥锁、条件变量和异步信号。互斥锁(1)互斥锁通过锁机制来实现线程间的同步。在同一时刻通常只允许一个线程执行一个关键部分代码。pthread_mutex_init——初始化一个互斥锁pthread_mutex_destroy——注销一个互斥锁pthrea

2013-11-25 14:24:38 581

原创 线程属性

1.线程属性:使用pthread_attr_t类型表示,我们需要对此结构体进行初始化,初始化后使用,使用后还要进行去除初始化!pthread_attr_init:初始化pthread_attr_destory:去除初始化int pthread_attr_init(pthread_attr_t*attr);int pthread_attr_destroy(pthread_attr_

2013-11-25 14:24:36 699

空空如也

空空如也

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

TA关注的人

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