- 博客(70)
- 资源 (5)
- 收藏
- 关注
转载 如何解决秒杀的性能问题和超卖的讨论
最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。 ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。
2016-10-23 21:45:55
399
原创 junit问题记录
在配置完成junit后运行出现java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter错误,解决方案为在buildpath中add libary添加junit的Hamcrest jar,步骤为Right click your project in Package Explorer > click Propert
2016-10-06 09:48:48
604
原创 文章标题
设计模式学习之装饰者模式概述23种设计模式之一,英文名Decorator Pattern,又叫装饰者模式。装饰者模式是在不改变原类文件和继承关系的情况下,动态地扩展一个对象功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点装饰对象和真实对象有共同的接口,这样客户端对象就能按照和真实对象相同的方式和装饰对象交互;装饰对象包含一个真实对象的引用,通过构造函数的传参来确定要装饰的对象;
2016-01-04 23:41:58
641
原创 如何优雅的用20分钟花20块钱搭一个属于自己的网站
在信息时代的大背景下,拥有一个属于自己的个人网站早已经成为一个潮流,也因此涌现出各种各样类型的网站、博客,而其中有心的博主、站长甚至获取了自己人生第一桶金。而之前的建站对大部分人非IT人士来说还是有些技术壁垒。而现在随着技术分享的氛围越来越友好,各种集成化的工具也越来越便捷。普通的网民搭建一个属于自己的网站已经非常的容易。 如果你也对互联网有一些新的想法,想搭上互联网这艘炙
2014-07-20 23:48:02
2074
转载 转载九贱的『我理解的逻辑地址、线性地址、物理地址和虚拟地址』
过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机
2013-12-11 10:06:07
840
转载 C中的位域与大小端问题
C中的位域与大小端问题(整理自网上资料)字节内也是有大小端问题,与字节中的大小端类似:1)little endian中的位应该这样排列: 01234567 即排在前面的是低位。因此,先分配least significant bits 2)而在Big endian中,位应该这样排列: 76543210 即排在前面的是高位。因此,先分配most signific
2013-10-21 11:26:19
1684
转载 ADC动态仿真中输入信号频率与采样频率的关系
本帖最后由 duke2050 于 2012-7-1 11:56 编辑在做ADC的动态特性仿真时,输入频率与采样频率的关系应如何确定?看到一些资料上面说fin=fs*M/N,其中,fin为输入信号频率,fs为采样频率,M为奇数或者质数,N=2^n。取M=5:1024个点在5个周期内采完,每个信号周期采到204.8个点。300KHz的采样频率对300K/204.8=1.46
2013-10-08 14:30:07
9702
转载 嵌入式软件工程师经典笔试题
> 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因
2013-09-22 14:17:44
42893
7
转载 C printf() 详解——printf('%08x',number); 程序员面试宝典中的一个错误 char * b=(char *)&a
本文转自:http://www.cppblog.com/wuzimian/archive/2012/05/23/175925.aspx1 #include 2 using namespace std; 3 int main() 4 { 5 unsigned int a = 0xFFFFFFF7; 6 unsigned char i = (unsign
2013-09-19 23:36:13
8234
转载 char *c和char c[]区别
问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc#include using nam
2013-09-16 10:38:24
964
转载 数组名和指针
1. #include 2. int main(int argc, char* argv[])3. {4. char str[10];5. char *pStr = str;6. cout 7. cout 8. return 0;9. } 1、数组名不是指针 我们先来推翻"数组名就是指针"的说法,用反证法。 证明 数组名不是指针
2013-09-03 09:22:15
611
原创 数组指针,指针数组,动态二维数组,指针
数组中每个元素具有相同的数据类型,数组元素的类型就是数组的基类型.如果一个数组中的每个元素均为指针类型,即由指针变量构成的数组,这些数组称为指针数组,他是指针的集合.指针数组的形式:类型 *数组名[常量表达式]例如: int *pa[5];表示有5个指针变量组成的指针数组,数组中的每个数组元素都是指针。注意: int *pa[5] 与 int (*pb)[5]的 区别i
2013-08-30 16:12:30
1323
转载 vim命令
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,
2013-08-08 15:10:44
478
转载 关于OnCreate和OnDraw
初学MFC 刚开始,我在view类中的OnCreate()中写了一段向窗口中插入一个光标的代码,一切正常,然后又在OnDraw()中写了一段想窗口中插入一段字符的代码,也一切正常,但当我把这两个东西颠倒过来,也就是在OnCreate()中写插入一段字符的时候,运行是根本看不到效果,而在OnDraw()中写插入光标的时候,当我用鼠标改变窗口的大小的时候,程序就爆掉了,请问这是为什么?
2013-08-08 11:35:46
1810
转载 sizeof用法,指针变量和数组变量
.指针变量的sizeof学过数据结构的你应该知道指针是一个很重要的概念,它记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8。char* pc = "abc";int* pi;string* ps
2013-07-14 23:33:42
934
转载 功放相关概念
放大器中关于带宽和增益带宽等的主要指标:开环带宽:开环带宽定义为,将一个恒幅正弦小信号输入到运放的输入端,从运放的输出端测得开环电压增益从运放的直流增益下降3db(或是相当于运放的直流增益的0.707)所对应的信号频率。这用于很小信号处理。单位增益带宽GB:单位增益带宽定义为,运放的闭环增益为1倍条件下,将一个恒幅正弦小信号输入到运放的输入端,从运放的输出端测得闭环电压增益下降3db(
2013-05-21 08:51:38
1270
转载 字符串匹配KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上
2013-05-03 08:49:20
544
原创 常用数字信号变换总结
数字信号处理中的变换,这里我们所要说的变换(transform)虽然是数学意义上的变换,但跟函数变换是不同的,函数变换是符合一一映射准则的,对于离散数字信号处理(DSP),有许多的变换:傅立叶变换、拉普拉斯变换、Z变换、希尔伯特变换、离散余弦变换等,这些都扩展了函数变换的定义,允许输入和输出有多种的值,简单地说变换就是把一堆的数据变成另一堆的数据的方法。 傅里叶变换:是一种特殊的积
2013-04-15 10:40:22
2563
转载 浮点数转换成二进制数
|字号 订阅 因为要参加软考了(当然也只有考试有这种魅力),我得了概浮点数转化为二进制表示这个最难的知识点(个人认为最难)。俺结合大量的从网上收集而来的资料现整理如下,希望对此知识点感兴趣的pfan有所帮助。基础知识:十进制转十六进制;十六进制转二进制;IEEE制定的浮点数表示规则;了解:目前C/C++编译器标准
2013-04-11 14:04:14
914
转载 fft 变换后的意义
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。
2013-04-09 21:17:46
2619
1
转载 pcb布线规则
IC去偶电容的布局要尽量靠近IC的电源管脚,并使之与电源和地之间形成的回路最短。 对于芯片VCC的LAYOUT,原则上先进大电容再进小电容,大C->小C->CPU,效果要好一些。因为小电容的谐振频率要比大电容高,靠近芯片能够使较高频率分量的回流路径较小,按上述顺序即可使回流路径大小与其频率成分高低成反比,这样在满足去耦功能的同时,也会降低电磁辐射。 在高速数字电路
2013-03-27 11:09:31
1121
转载 铺铜的相关资料
所谓覆铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜。 敷铜的意义:1)减小地线阻抗,提高抗干扰能力;2)降低压降,提高电源效率;3)与地线相连,还可以减小环路面积。4)也出于让PCB 焊接时尽可能不变形的目的,大部分PCB 生产厂家也会要求PCB 设计者在PCB 的空旷区域填充铜皮或者网格状的地线。 不
2013-03-27 10:40:53
1538
原创 pcb画板常见问题
最近在画板子,现将常遇到的问题做一记录。规则设置:过孔推荐小标准12mil 线宽:10mil 线间距:最小6mil 推荐10mil遇到unkonwpin之类的错误,删除网络标号和classses布线预览消失或移动元器件时元器件消失,在prefference里打开directx支持,不行就卸载更新下驱动打开。经验:还是横平竖直
2013-03-25 17:07:53
1177
转载 详解PCB设计中地线的干扰与抑制
在PCB设计中,尤其是在高频电路中,经常会遇到由于地线干扰而引起的一些不规律、不正常的现象。本文对地线产生干扰的原因进行分析,详细介绍了地线产生干扰的三种类型,并根据实际应用中的经验提出了解决措施。这些抗干扰方法在实际应用中取得了良好的效果,使一些系统在现场成功运行。 在单片机系统中,PCB(印制电路板)是用来支撑电路元件,并提供电路元件 在PCB设计中,尤其是在高频电路
2013-02-27 23:06:09
5236
转载 office VBA 学习
http://www.officefans.net/cdb/viewthread.php tid=25823&fpage=1&highlight=%B7%B5%BB%D8%2B%D0%D0%BA%C5以下是近段时间从不同地方收集到的一些学习资料,希望对新手有借鉴作用,同时感谢各位对我的支持和帮助,先发60小点,代码可能不完全正确,请指正.全部显示1,Application.Comman
2013-01-21 14:21:26
6474
转载 C++的五种内存存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在
2013-01-11 16:41:41
573
转载 C++中关于new和delete的使用
最近一直在啃 C++ Primer 中文版第4版,发现 C++中new和delete应用遍布全书,现对其使用作简单总结。在C++中,可以使用new和delete动态创建和释放数组或者单个对象,现在对它们的使用一一道来。1.创建动态数组 数组类型的变量有三个重要的限制:数组长度固定不变,在编译时必须知道它的长度,数组只在定义它的块语句中存在。对于动态分配的数组,虽然长度是固
2012-12-10 15:21:00
449
原创 C#不存在私有继承和保护继承,只有公有继承,这点和C++相比还是简单了很多
C#不存在私有继承和保护继承,只有公有继承,这点和C++相比还是简单了很多
2012-12-03 16:20:32
1951
转载 linux下makefile的用法
目的: 基本掌握了 make 的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include
2012-11-13 20:40:46
655
转载 new创建对象和直接声明创建对象
有时候书看多了,遇到了以前没注意到的小细节就会犯迷糊,查了些资料大致弄明白了点关于 new对象和直接引用对象的区别。众所周知,在C++里面可以new对象,也可以直接声明对象。编译器把内存分为三个部分:1.静态存储区域:主要保存全局变量和静态变量。 生存期:整个程序。2.堆:存储动态生成的变量。生存期:自己来决定。3.栈:存储调用函数相关的变量和地址等。生存期
2012-11-09 11:08:45
5709
转载 浅谈C++容器( 三)
有了对数据结构的基本认识,那么对高级语言所提出的容器的概念就很容易理解。下面我们就来了解一下C++ 标准模板库(STL) 提所供的10 种通用容器。什么是容器首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了
2012-11-05 10:45:59
453
转载 visual 2010 c++新特性
微软即将在2010年4月12日发布VS2010的正式版,对于c++语言做了修改,使之更加符合c++标准。下面对于微软对于c++语言的修改做一下分析!Lambda表达式很多编程编程语言都支持匿名函数(anonymous function)。所谓匿名函数,就是这个函数只有函数体,而没有函数名。Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了简明的函数式的
2012-11-05 10:35:08
376
转载 c++模板
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.
2012-11-05 10:33:57
319
原创 a=a+++b;c=a+++b;
int a=10,b=9,c=0;分别a=a+++b; a=a+b;a++c=a+++b;c=a+b; a++输出:a=20;b=19;
2012-11-04 14:58:30
1249
转载 C++中重载与重写函数区别及虚函数
C++中的虚函数(virtual function)1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual void foo() { cout };class B: public A{public:
2012-11-01 16:06:21
1027
转载 虚函数、纯虚函数、重载函数的作用与区别
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};
2012-11-01 14:59:12
4281
原创 *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
全局变量还是在一个.c文件中定义好,然后另一个要用的话就extern就行了.先这么解决,以后再具体研究。
2012-10-09 15:00:12
4545
原创 extern用法
这次主要是探讨外部文件的引用(1) 在多个文件中声明外部变量作用域:如果整个工程由多个文件组成,在一个文件中想引用另外一个文件中已经定义的外部变量时,则只需在引用变量的文件中用extern关键字加以声明即可。可见,其作用域从一个文件扩展到多个文件了。
2012-10-09 10:21:12
696
转载 宏定义的参数为什么会有副作用
《C语言参考手册(原书第5版)》第3章C预处理器,C预处理器是一种简单的宏处理器。从概念上说,它在编译器读取源程序之前对C程序的源文本进行处理。在C的有些实现中,预处理器实际上是一个独立的程序。它读取最初的源文件,并写入到一个新的“经过预处理”的源文件,后者可以作为C编译器的输入。本节为大家介绍宏参数的副作用。AD: 51CTO云计算架构师峰会 抢票进行中!
2012-10-07 23:19:06
4463
VC6.0 MFC下截取窗口特定部分并保存为bmp图片的类
2011-11-07
VC6.0 MFC下截取窗口特定部分并保存为bmp图片的类
2011-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人