- 博客(16)
- 收藏
- 关注
原创 《Maven实战》——第四章和第五章
第四章:背景案例作者为了在实战中向我们演示Maven的使用,自己构建了一个简单的用户注册账号的项目为背景,第四章主要是介绍这个项目的一个设计和架构,本章可以简单的看看,了解项目对之后章节的阅读有帮助。第五章Maven坐标是定位某一需要导入依赖的唯一标示。坐标通过groupId,artifactId,version,packagingj进行定义:groupId:当前Maven项目...
2018-10-21 10:43:09
232
原创 《Maven实战》——第三章Maven使用入门
首先一个Maven项目中的一个核心文件肯定是那个pom.xml文件。在这个pom.xml文件中是声明xml标准的标签+当前项目的project标签在project标签中会有modelVersion标签指定pom的版本,groupId一般是项目名,artifactId是这个项目中的一个唯一标识,这两个组合其实就是常说的坐标。version标签表示发布的当前项目的版本。每个maven项目中...
2018-10-14 18:58:55
173
原创 Maven实战——第一章Maven简介和第二章Maven的安装和配置
这一章中我感觉比较重要的几句话基本上就是:(1)我们每天都要进行大量的代码重新构建的重复劳动。(2)一款好用的构建工具可以很大的提升我们的开发效率。(3)根据历史时间依次主要有Make,Ant,Maven这三种构建工具。(4)Make就是Linux中的Makefile文件,有限制平台和脚本语法不友好。(5)Ant虽然是通过xml来进行一个配置,但是多个项目需要重复的配置量多。...
2018-10-14 11:06:57
209
原创 《Windows核心编程》第二部分(内核模式下的线程同步)
(6)内核模式下的线程同步用户模式主要优点为速度快,内核模式相对于用户模式的区别是可以对多个值进行操作,也可以对不同进程下的线程进行同步操作,但是速度会比较慢(模式的切换,高速缓存命中率下降)。几乎所有的内核对象都可以进行线程同步。内核对象内部有两种状态,一种是未触发状态(比如,进程内核对象刚创建的时候)和触发状态(比如,对应进程终止的时候),每个内核对象内部有一个bool值来监控这两种状态。//...
2018-06-16 15:28:06
226
原创 《Windows核心编程》第二部分(用户模式下的线程同步)
(5)用户模式下的线程同步线程必须访问系统资源,如果一个线程独占了对一个资源的访问,那么其他线程就需要做同步处理。必须限制线程对已经被占有的共享资源的访问。比如一个线程在对一个内存进行占有时其他线程就要做同步处理,限制其他线程占有此内存。线程之间的通信可以让多个线程约定访问一个线程,同时不破坏资源的完整性;一个线程可以通知其他线程某项任务已完成。线程同步的windows下的几种方法:(1)原子访问...
2018-06-12 14:16:38
163
原创 《Windows核心编程》第二部分(线程调度,优先级和亲缘性)
(4)线程调度,优先级和亲缘性如上所诉,在每个线程内核对象中都有一个CONTEXT结构,其中保存了线程上一次运行寄存器的情况,在线程调度中,windows大约每隔20ms就会从线程内核对象中选出一个可调度的线程,将其CONTEXT还原到CPU寄存器中,如此循环。我们对操作系统内部的线程调度可以做出的影响很小,无法保证一个线程在某个时间段一直运行。一般可调度的进程比较少,大多线程都在等待某个其他事件...
2018-06-12 14:15:38
412
原创 《Windows核心编程》第二部分(线程)
(3)线程多线程的优点:可以让用户同时体验应用程序的多种服务。多线程的缺陷:在多线程访问一共享资源的时候会发生冲突。和进程一样,线程也由两部分组成。(1)内核对象:一种数据结构,管理和存储线程的有关信息。(2)线程堆栈:维护线程运行过程中需要的内存空间。同一个进程中的线程共享进程的地址空间,共享进程句柄表,共享其他线程的线程堆栈。主线程的入口点函数是_tmain或_tWinmain。如果在进程中创...
2018-06-11 16:15:58
182
原创 《Windows核心编程》第二部分(进程)
第二部分(1)进程windows 2000可以使用多核,windows 98只能使用单核。在第一部分中大体的分析了windows操作系统中的内核对象,本节中的进程则属于内核对象的一种。进程的内核对象则是我们经常说的PCB进程控制块。进程:一个正在运行的一段程序的实例。进程是不活泼的。只是线程的容器。一个进程包括内核对象进程控制块和所执行的代码块和数据。每个进程包含一个环境块形式为:是以键值对的形式...
2018-06-11 16:14:56
209
原创 《windows核心编程》第一部分
第一部分(1)windows错误处理windows大多函数返回值的类型windows函数运行错误时会返回一个错误代码,此错误代码线程独立,每一个错误代码关联一个详细的错误信息。DWORD GetLastError()//返回最近的一次错误代码,要在错误发生后立即调用防止被改写DWORD FormatMassage()//通过错误代码获取错误的具体信息VOID SetLastError()//...
2018-06-11 16:13:49
179
原创 《C陷阱与缺陷》第六章,第七章
《C陷阱与缺陷》第六章--预处理器6.1、不能忽视宏定义中的空格#define f (x) ((x)-1) //f(x)代表(x)((x)-1)6.2、宏并不是函数(1)宏中的每个变量必须加上括号,不然会出现传入表达式时难以预料的结果(2) 宏中的每个传入的值都会进行多次运算,传入参数会改变某个变量时,会改变多次(3)使用宏可能会使得语句非常庞大,在进行语句替换的过程中,语句有可能变得异常复...
2018-06-11 16:06:57
159
原创 《C陷阱与缺陷》第五章
《C陷阱与缺陷》第五章--库函数5.1,返回整数的getchar函数在C语言的库函数中,将getchar函数的返回值定义为int(防止char溢出,例如char表示不了EOF)。5.2、更新顺序文件根据C语言库函数中的fread(),fwrite().fseek()函数的用法,在fread和fwrite函数交替调用时,每次都要使用fseek()来改变文件指针的性质。根据周文导师的说法:多数情况下,...
2018-06-11 16:05:30
184
原创 《C陷阱与缺陷》第四章
《C陷阱与缺陷》第四章--连接4.1、什么是连接器连接器是将多个通过编译器编译后的C源程序,连接成一个载入模块4.2、声明和定义变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。变量声明:用于向程序表明变量的类型和名字,声明不分配空间。extern int i //声明int i //定义一个变量可以声明多次,只能定义一次。在程序的一个地方使用extern ...
2018-06-11 16:04:57
397
原创 《C陷阱与缺陷》第三章
《C陷阱与缺陷》第三章3.1,指针与数组数组的一些基本操作都可以通过指针的操作来实现。实际上C语言为了方便,数组就是利用指针来实现的。int main{ int num[5][5]; int *p; int i; p=num[4]; i=num[4][3]; //等价于*(num[4]+3),等价于*(*(num+4)+3) return 0;}数组和指针最大的区别就是:数组访问时...
2018-06-11 16:04:19
173
原创 《C陷阱与缺陷》第二章
《C陷阱与缺陷》第二章2.1 ,理解函数声明提出问题:如何调用0指针指向的函数分析((void()())0)();首先分析float g(),(h)();在上例中g是一个函数返回值为float指针h为一个函数指针,此函数返回值为float即定义一个返回值指向float的函数指针为float (h)();表示这种类型只需要将变量名去掉,即float ()();则返回值为void的函数指针的类型为 v...
2018-06-11 16:02:48
258
原创 《C陷阱与缺陷》第一章
《C陷阱与缺陷》第一章本章导读部分:利用p->s="->";这个语句展示了相同符号在上下午环境不同的情况下解释是可以不同的。并通过if(x>big) big=x;这个例子加深了对词法分析的理解。本章正文:1.1,=与==。使用if(a=b)所进行的判断是将b的值赋给a并判断a是不是为0;使用if(a==b)是表示a和b是否相等;本书一个比较具有代表性的例子while(c=' '|...
2018-06-11 16:00:58
263
原创 慕课网linux服务管理学习笔记
在centos6环境下linux的运行级别runlevel:显示当前运行级别和上一次运行级别。init 运行级别:设置运行级别设置开机默认运行级别:(1)vim /etc/inittab(2)找到id:3:initdefault此设置为设置默认运行级别服务的分类PRM为通过默认安装方式安装的服务,独立的服务是独立占有空间,响应快,但是占用内存多,独立运行在内存中,基于xinetd的服务是由xine...
2018-06-11 15:52:38
182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人