- 博客(56)
- 资源 (10)
- 收藏
- 关注

原创 likely和unlikely
首先明确: likely与unlikely互换或不用都不会影响程序的正确性。但可能会影响程序的效率。在阅读linux内核代码时经常出现likely()和unlikely()两个宏函数,位于/include/linux/compiler.h中 #define likely(x) __builtin_expect(!!(x), 1) #define unlik
2017-09-19 18:19:55
606

原创 内存池 (Memory Pool)
内存池 在linux内核开发中会接触到内存池,内核有不少地方内存分配不允许失败。作为一个在这些情况下确保分配的方式,内核开发者创建了一个已知为内存池(或者是 "mempool" )的抽象。 一个内存池真实地只是一类后备缓存,它尽力一直保持一个空闲内存列表给紧急时使用。传统内存管理函数的缺点 利用传统的内存管理函数new/delete或malloc/free在
2017-09-19 17:54:49
3472

原创 java运行Tomcat提示:The APR based Apache Tomcat Native library which allows optimal performance in produc
在Tomcat上运行javaweb程序时,启动Tomcat时log信息中提示如下内容:九月 18, 2017 4:34:51 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent信息: The APR based Apache Tomcat Native library which allows optimal pe
2017-09-18 16:36:43
4263

原创 java注解
一、什么是注解 Java注解用于为Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。 Java1.5引入了注解,当前许多java框架中大量使用注解,如Hibernate、Jersey、Spring。注解作为程序的元数据嵌入到程序当中。注解可以被一些解析工具或者是编译工具进行解析。我们也可以声明注解在编译过程或
2017-09-10 20:23:36
331

原创 C语言之断言
我们在使用C语言编写工程代码时,我们总会对某种假设条件进行检查,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。它可以快速发现并定位软件问题,同时对系统错误进行自
2017-09-06 21:48:27
558

原创 C语言笔记之数组
在看comware代码的时候,发现一种之前在学校没用过的C语言数组用法,起码我是本科的时候没见过这么写的,此处mark一下,做个记录。代码举例:#include typedef enum enTest{ TEST_1, TEST_2, TEST_3, TEST_4, TEST_5,}TEST_E;int TEST_stub(int a, in
2017-09-06 21:11:25
287

原创 单例模式
本文介绍23种设计模式之单例模式。 单例(Singleton)模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。这种模式涉及一个类,它负责创建一个对象,同时确保只创建一个对象。这个类提供了一种方法来访问它的唯一对象,可以直接访问,而不需要实例化类的对象。要点 单例模式的要点有三个:
2017-09-05 22:02:32
275

原创 C语言 if条件判断中包含语句块
在C语言if判断语句中可以这样使用if ( ({ 语句1;语句2;... 语句n;}) )注意语句块需要用 () 括号括起来,否则编译报错判断结果取决于最后一条语句,无论前面的语句是true或false。如图:执行结果为:
2017-09-04 22:58:00
4618

原创 C语言中的弱符号与强符号,强引用与弱引用
强符号和弱符号 在编程中碰到一种情况叫符号重复定义。多个目标文件中含有相同名字的全局变量的定义,那么这些目标文件链接的时候就会出现符号重复定义的错误。比如在目标文件 A 和目标文件 B 都定义了一个全局整形变量global,并且都初始化,那么当 A 和 B 链接时会报错: multiple definition of 'global' 对于C/C+
2017-09-04 22:26:51
2961

转载 C头文件组织与包含原则
说明 本文假定读者已具备基本的C编译知识。 如非特殊说明,文中“源文件”指*.c文件,“头文件”指*.h文件,“引用”指包含头文件。 一、头文件作用 C语言里,每个源文件是一个模块,头文件为使用该模块的用户提供接口。接口指一个功能模块暴露给其他模块用以访问具体功能的方法。使用源文件实现模块的功能,使用头文件暴露单元的接口。用户只需包含
2017-09-04 20:33:01
3120
2

原创 C头文件编写基本规则
1. 注释,版权,作者,重大修订记录等信息2. 防重入开关,也就是常见的#ifndef _XXX_XXX_H //必须确保header guard宏名永不重名#define _XXX_XXX_H //#endif3. C++ 编译器自适应开关,也就是常见的//.h文件头部#ifdef __cpluspluse
2017-09-04 20:01:56
907

转载 struct和typedef struct分析
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是
2017-08-25 16:35:41
209

原创 消消乐(C语言版)
消消乐,游戏规则很简单,点击的位置颜色相连的区域抵消。实现思路:从点击位置开始深搜(递归),记录搜索的坐标并抵消。贴上关键代码:map数组保存每个点的颜色,state保存是否搜索过//判断当前点是否满足条件,并且未搜索过 int isValid(int x, int y){ if (x = row || y = col || state[x][y])
2017-06-26 21:57:51
10605
1

转载 C++ pair(对组)用法
类模板:template struct pair参数:T1是第一个值的数据类型,T2是第二个值的数据类型。功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。具体用法:1.定义(构造):1 pair p1; //使用默认构造函数2 pair p2(1, 2
2015-12-05 16:36:20
624

原创 DFS(POJ2386)精简版
题意:统计水洼的数量,‘W’表示有水的地方,当八个方向任何一个方向有水就表示同一个水洼。思路:DFS,贴一个深搜作为模板。#include#include#define mx 110int t_map[mx][mx];int n,m;void dfs(int x,int y){ int xx,yy; t_map[x][y]=0; for(int dx
2015-12-05 15:18:23
477

原创 Java简单爬虫示例
步骤简介打开链接:URL类初始化给定网页链接,并调用openConnection()返回一个HttpURLConnection类的父类URLConnection实例。获取链接文本内容:URLConnection实例调用getInputStream()获取输入流,并返回输入流(InputStream)对象,初始化给InputStreamReader,将字节流转换为字符流,并指定字符集编码
2015-12-01 19:46:29
639

原创 Java模拟并发操作进行服务器压力测试
使用线程池,实现多个用户并发访问的操作import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL;
2015-11-25 21:30:42
6071
2

原创 Android与服务器通信简单示例
1.服务端(php)<?php $ret = array('result'=>'Hello Wolrd');echo json_encode($ret);?>2.客户端(android)public class MainActivity extends Activity { private Button btn; private Handler handler; pri
2015-11-21 01:25:21
398

转载 Java中的Timer和TimerTask的用法
Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类型线程中的run()方法。我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作。schedule方法有三个参数,其中第一个参数就是TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务;第二个参数有两种
2015-11-21 01:12:40
735

原创 Packet for query is too large (41477246 > 167772). 数据库写入数据过大
错误提示:Packet for query is too large (41477246 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable.解决办法:修改MySQL的一个系统参数:max_allowed_packet;MySQL安装
2015-11-20 17:54:18
455

原创 java 给main(String args[]) 函数传参数
public class Test { public static void main(String[] args) { System.out.println("hello "+args[0]); System.out.println("welcome "+args[1]); }}运行结果:C:\Users\ZK\Desktop>javac Test.javaC:
2015-11-14 16:04:58
507

原创 java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
java数据库连接(JDBC-ODBC方式)环境:win7 64位和NetBeans IDE 7.1.2 jdk1.7.0_17(64位)写好程序后运行报错:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配。注意:win7 64位配置数据源,控制面板-》管理工
2015-06-18 16:42:52
4886

原创 Windows应用程序运行机制(笔记)
Windows应用程序:以windows作为平台运行的应用程序。API函数API函数:windows提供了大量可以在应用程序中调用的,用C语言编写的函数。Windows API 函数的功能如下:1.窗口管理函数:实现窗口的创建、移动和修改等功能。2.图形设备函数:实现图形的绘制及操作功能,这类型函数的集合又叫做图形设备接口。3.系统服务函数:实现与操作系统有
2015-03-31 21:22:34
1802

原创 Error:不能将"char*"类型的值分配到"LPSTR"类型的实体 或者 "char*"类型的实参与"LPCWSTR"类型的形参不兼容
选择“XXX项目”-》“属性”-》“配置属性”-》“常规”选项中,把“使用 Unicode 字符集”改为“使用多字节字符集”,然后确定。如下图(VS2012):
2015-03-30 22:15:01
2780
2

原创 POJ 1013 1029 判断假币
题意:给你编号为1到n个钱币,其中有一个是假的,k次称量结果,判断并输出假币的编号,不能判断输出0。分析:1.等号‘=’两边全为真币。2.假币不可能既偏重又偏轻。3.几次不等的称量假币就出现几次。AC代码:#include#include#define max 1003int mark[max];struct node{ int s;
2015-02-27 12:31:57
745

原创 ZOJ 3829 (2014 牡丹江现场赛 K 题)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829题意:
2014-10-16 18:45:58
516

原创 HDU 4998 Rotate 平面旋转
RotateTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 573 Accepted Submission(s): 275Special JudgeProblem DescriptionNoting i
2014-10-15 14:25:44
600

原创 ZOJ 3827 Information Entropy
Information EntropyTime Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Information Theory is one of the most popular courses in Marjar University. In this course, there
2014-10-12 17:08:24
528

原创 HDU 4741 Save Labman No.004 2013 ACM/ICPC Asia Regional Hangzhou Online
Save Labman No.004Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1575 Accepted Submission(s): 520Problem DescriptionDue to t
2014-10-07 22:27:34
659

原创 HDU 4790 Just Random (2013ACM/ICPC成都赛区现场赛J题)
题意:给出两个区间[a,b]和[c,d],分别从这两个区间等概率的抽两个整数x,y,求(x+y)%p=m的概率。
2014-10-06 14:20:15
646

原创 HDU 4793 计算几何 2013长沙区现场赛题C题
思路:分三种情况讨论。1,碰撞;2,在其中;3,不飞进去; 注意碰撞的时候路径不是简单的半径乘以2。 思路:分三种情况讨论。1,碰撞;2,在其中;3,不飞进去; 注意碰撞的时候路径不是简单的半径乘以2。 #include#includeint main(){ double Rm,R,r,x,y,vx,vy; double aa,a,a1,a2;
2014-10-04 18:47:25
925

原创 HDU 1495 非常可乐
#includeint gcd(int a,int b){ if(a%b==0) return b; return gcd(b,a%b);}int main(){ int s,m,n,g; while(~scanf("%d%d%d",&s,&m,&n)&&s&&m&&n) { s=s/
2014-08-04 21:30:23
562
原创 C代码笔记(一)
mark:这里做个标记,记录一下工作中看别人代码的时候,遇到的一种编写方式,反正我以前没这么写过,这里记录一下吧,下面以逻辑最简单的方式表达;#include #include typedef struct TEST{ int a; int b;}TEST_S;#define MEMBER(s,a) s.avoid func(TEST_S s){ //此
2017-10-19 20:36:04
321
转载 元数据(Metadata)
什么是元数据 任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。元数据管理
2017-08-30 21:31:12
443
原创 __cplusplus和extern "C"使用
Code:#ifdef __cplusplusextern "C" { #endif ... #ifdef __cplusplus} #endif 解释:1.c++中定义了__cplusplus,C语言中没有该定义。即:识别是c代码还是c++代码。如下段代码:#include int main(int argc,char *argv[])
2017-08-19 16:00:21
583
转载 并发编程的基本概念
技术背景Concurrency and ParallelismConcurrency:并发是指任务之间可以并发执行,但是这并不能确保任务都在执行,它们之间很可能是交替执行的。 可并发说明两个任务之间不需要共享状态,或者没有因果依赖关系Parallelism:并行产生于多核计算机中,指两个任务在两(或以上)个CPU中同时执行。并发是同一时间应对多件事情的能力;并行是同一时间动手做
2017-07-20 20:41:59
205
转载 C语言的奇技淫巧
C语言的tricks不多,但大多比较晦涩,就跟数学一样需要循序渐进的理解,同时也需要对编译器、C语言标准都有一定的理解。而C语言的雷区较多,也即有很多我们经常碰到的未定义行为(undefined behavior)。在看tricks前,我们先看个雷:C1a
2017-07-15 00:00:09
2251
1
转载 java 中 return 语句总结
return 在Java中作用 根据《Java编程思想:第四版》4.5节中介绍:return语句作为一个无条件的分支,无需判断条件即可发生。return语句主要有两个用途:一方面用来表示一个方法返回的值(假定没有void返回值),另一方面是指它导致该方法退出,并返回那个值。根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标
2017-07-09 18:12:21
577
转载 C表白程序
Mark一个C语言的表白程序~~#include#include#include#define stoptimeshort 100#define stoptimelong 200int main(){ ////////////////// char ch[10]; int f[9][36]={ 0,1,1,1,1,1,0,0,0,0,0,0,1,
2017-07-09 16:50:25
1650
HTTP权威指南.pdf
2018-01-19
CvvImage类
2015-11-21
国际程序设计大赛的作品欣赏
2014-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人