自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Trageday的专栏

留下自己的记忆;技术,历史,属于那些被记住的。

  • 博客(41)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何健壮后端服务

对每一个程序员而言,故障都是悬在头上的达摩克利斯之剑,都唯恐避之不及,如何避免故障是每一个程序员都在苦苦追寻希望解决的问题。对于这一问题,大家都可以从需求分析、架构设计 、代码编写、测试、code review、上线、线上服务运维等各个视角给出自己的答案。本人结合自己两年有限的互联网后端工作经验,从某几个视角谈谈自己对这一问题的理解,不足之处,望大家多多指出。  我们大部分服务都是如下的结构,既要...

2018-07-02 14:31:02 309

原创 细说多线程

JAVA线程java线程实现方式实现runnable接口(无结果返回)实现callable接口 (可以通过Future获取返回执行结果)直接继承Thread类(为一个实现runnable接口类的实例) Java 创建线程代价关于时间,创建线程使用是直接向系统申请资源的,这里调用系统函数进行分配资源的话耗时不好说。对操作系统来说,创建一个线

2018-01-04 20:41:27 350

原创 多线程(start-point & end-point)

CyclicBarrier CountDownLatch

2017-10-23 16:30:46 730

原创 JVM内存管理

JVM内存管理内存结构JVM是按照运行时数据的存储结构来划分内存结构的,JVM在运行java程序时,将它们划分成几种不同格式的数据,分别存储在不同的区域,这些数据统一称为运行时数据。运行时数据包括Java程序本身的数据信息和JVM运行Java需要的额外数据信息。在java虚拟机规范中,将java运行时数据划分为五种,分别为程序计数器java虚拟机栈本地方法栈堆方法区程序计数器 程序计数

2016-03-14 21:20:04 626

原创 初始分库--分表

Auther—Motata分库/分表从表由于一直对mysql数据库不是很了解,而这些是必备的基础知识,所以就花了时间从理论上对分库/分表做了些研究希望到使用时不至于太匆忙。可能以下有些地方表述不当,个人理解有些误区或者有错误,请大家指正,大家讨论,共同成长。大家正常研究问题的路径是,:what(什么)-?why(为什么)-?how(怎么做),接下来,本文将就这三个问题展开讨论和研究:what: 什

2016-02-26 20:36:09 727

原创 字符串分割到二维字符数组中:

/* *字符串分割,把一个长的字符串(可能有空格),分割到一个二维字符数组中。 *并且输出 * *时间复杂度O(N) *注意在操作二维字符串数组时:使用“数组指针”操作能方便 int(*p)[LEN]; * */#include#include#include#include#define NDEBUG#include#define STR_SI

2014-09-06 14:37:46 1649

原创 寻找数组N中最大(最小的)M个数(亲自调试可运行)

当N很小十可以使用方法2,当N很大时可以使用方法1,从硬盘逐次读入解决;/*方法 1  适合大量数据 *寻找长为N的数组的前M大的元素并输出。 *用堆的性质,使用数组N建立一个M大的最大堆,然后输出堆内容即可 *时间复杂度分析:  建堆时间O(M) *遍历数字,并在堆中比较时间O((N-M)logM) *总时间复杂度O(M)+ O((N-M)logM) *

2014-09-06 09:59:30 1892

原创 二维数组环形打印,亲自调试

/*先把数据按照打印格式打印到二维数组中,然后输出二维数组即可 *时间复杂度 O(N*M) *空间复杂度O(N*M)*/#include#include#includeint input(void);void contral(int **arry,int col,int row);void set_value(int**a,int col,int ro

2014-09-04 08:18:29 2774

原创 删除数组中重复元素 (使用stl::set)

删除数组中重复元素 (使用stl::set)

2014-09-03 16:05:12 2983

原创 寻找长为N的数组的前M大的元素并输出

寻找长为N的数组的前M大的元素并输出:使用堆

2014-09-03 16:02:05 1024

原创 使用 & ^ << 等 位符实现加法运算

学习过C语言的同学都知道,再写代码的时候,位操作运算总比算数运算操作快, 本文就是用C语言提供的位运算实现两个数的加法。本文使用的代码都经过调试正常并且能够运行,调试环境centos     gcc  一下是实现代码,以及测试结果:#include#includeint main(int argc, char **argv){ int add_a,add_b;

2014-06-27 14:44:15 876

原创 数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用

数组溢界地址的正确使用: 即 int a[6] 中的 a[-1] 和 a[6] 正确使用

2014-06-24 10:04:25 1584 1

转载 stl容器区别: vector list deque set map及底层实现

在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典 ,把一个值映射成另一个值,如果想创建字典的话使用它好了底层采用的是树型结构,多数使用平衡二叉树实现 ,查找某一值是常数时间,遍历

2014-06-23 16:22:26 836

转载 glibc 内存池管理 ptmalloc(转)

ptmallocphenix* 2006-06-07目录    1  前言    2  x86平台Linux程序的内存分布    3  Allocator    4  chuck的组织        4.1  chuck        4.2  chunk中的空间复用    5  空闲 chunk 容器        5.1  Bins       

2014-06-06 08:43:17 1812

原创 读stdlib.h 库qsort源码 ,对上篇文章(回调函数)排序进行修改:

今天无意间看见stdlib.h库 文件中的qsort() 函数的源码,颇有感触,并且觉得自己在上篇博客写的代码虽然还可以,但在看了源码后,觉得自己还是有些思想上的问题。故 写这篇文章给自己纠正。上篇中的sort()函数原型: void sort(const void *,const int number,unsigned width,int(*compare)(void

2014-06-03 17:05:49 1785

原创 使用函数指针,完成一个sort()函数,能对任何类型的数组元素进行排序: 回调函数 以及 memcpy ()原型实现

进来复习了一下C语言指针,一直没有写过太多关于函数指针的代码,而且对回调函数的理解一直都是在理论上,基本上没有太写过关于它的代码,进来得空,写了一个小程序加深下自己对回调函数和函数指针的理解。问题描述: 编写一个sort()函数,使它能够对任何类型的数组元素进行排序。下面是我写的代码:/* 使用函数指针的回调函数技巧,设计一个能排序int 和char 数组的sort()函

2014-05-30 14:27:38 5661

转载 虚函数 inline函数

一、首先回顾下什么是虚函数及其作用,以便更好理解什么函数不能声明或定义为虚函数:1. 定义:虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的一般形式:  virtual 函数返回值类型 虚函数名(形参表)  { 函数体 }2. 作用:虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合

2014-05-20 15:40:45 1313

转载 C++ static、const和static const 以及它们的初始化

const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。      static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。      在C++中,sta

2014-04-07 09:37:26 882 1

原创 读 《跟随大数据去旅行》 ......

听罗胖有一期逻辑思维节目讲到大数据。感觉自己对大数据这个概念理解错误,所以决定去借本书了解下大数据的信息。发现一本《跟随大数据去旅行》感觉不错, 正在阅读.......

2014-04-02 09:18:42 766

原创 itoa 库函数的实现

昨天写了一个atoi的库函数实现,感觉不错。今天接着写了一个itoa的库函数实现,鼓励自己加把劲,每天都有收获。希望您提出宝贵意见,大家一起成长。

2014-03-26 09:51:51 1669

原创 实现 atoi库函数

一直在看到说很多人面试被问到atoi的库函数的实现;今天自己也写一个大家一起看看有啥问题,欢迎您提出宝贵的意见,大家相互成长。

2014-03-25 20:09:10 1196

原创 等概率随机抽样问题 || 蓄水池抽样算法

等概率随机抽样问题 || 蓄水池抽样算法

2014-03-21 14:44:09 2397

原创 深究指针与引用的差别

由指针定义知,是指向内存中某个存储体对象的变量。它可以指向简单变量, 数组,结构体等,甚至函数 (函数指针)。个人在此有一个疑问,既然指针是指向存储体的变量,而函数没有存储性质,那函数指针如何实现的?我是从这感觉函数没有存储性质:class A{ int i; int fun(int );};大家都知道这个类内存中sizeof(A)= 4; 即它的内存完全是分配给(int)变量的。所以它的成员函数(int fun(int))没有存储性质。所以就不明白函数指针的实现?

2014-03-19 19:41:51 903

原创 出现次数最多的数

题目是这样的:下面是我自己给出的代码#include#includeusing namespace std;int main(void){ int I_num; int I_tem; map M_find; cout<<"input the number:"; cin>>I_num; for(int i=0;i<I_num;i++) {

2014-03-19 14:46:04 987

原创 CentOS 6.5 修改yum源

在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。1, cd /etc/yum.repos.d2. mv CentOS-Base.repo CentOS-Base.repo.backup3. wget http://mirrors.163.com/.help/CentOS6-B

2014-03-08 15:07:43 6971

原创 百度 腾讯 等名企多线程面试题目

第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态。状态之间的转换如下图所示: 第二题:线程与进程的区别?

2014-03-06 20:06:59 1623

原创 C++中:类数据成员的内存布局

首先我们从一个有趣的问题引入:  class A  { };当我们运行 :cout为啥会是这样呢?其实在《深度探索C++对象模型》一本书中,有详细的解读,我在这只想说说自己的理解:首先class A 是一个类型,是用来实例化对象的,所以它就必须有具体的空间,使系统能按照它的格式分配内存。如果  A   a; 当然sizeof(a)的结果也是1。这个是因为它是以一个对象存在的,我们必

2014-03-06 18:20:16 894

转载 C语言 struct大小、首地址与内存对齐

被问到如下问题:给定一个结构体中某个变量地址,可否得到结构体变量的地址?答案是可以,但是对不同的场合有不同的结果;这与微处理器平台、编译器的处理不可分割。首先,对于处理器,大尾端、小尾端的因素必须考虑;其次:一、 ANSI C标准中并没有规定,相邻声明的变量在内存中一定要相邻。为了程序的高效性,内存对齐问题由编译器自行灵活处理,这样导致相邻的变量之间

2014-03-06 16:49:56 2421

转载 分析 C++中的强制类型转化

C++中有4种强制转换:const_cast,static_cast, dynamic_cast, reinterpret_cast,以下将分别介绍: 1. const_cast:形式const_cast(expression),用来修改类型的const或volatile属性,除了const或volatile修饰以外,type与expression类型一样;它主要用

2014-03-06 16:07:54 655

转载 堆和栈的区别

来源:http://blog.csdn.net/hairetz/article/details/4141043一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —  

2014-03-03 14:58:12 611

原创 求两个数的平均数

前些天看见一个求两个数的平均数的题目,由于以前一直做嵌入式小系统,对这种奇技淫巧还是比较喜欢的,尤其是当在一些硬件受限的系统上写代码时,会有意想不到的效果。是这样 :  int temp_a , temp_b , mid ; mid = (temp_a & temp_b) + (( temp_a ^ temp_b )>>1);这个表达式 的正确性

2014-03-03 14:49:24 1356

转载 typedef 和 #define 的区别

一直想动手写关于typedef   和# define的区别,偶然的机会发现这篇博文,觉得写得很好。把自己想要表达的都说的很清楚所以就转载了。感谢dfcao 来自博客园的兄弟。typedef 和#define 都常用来定义一个标识符及关键字的别名,但他们之间有关键的区别。typedef 是语言编译过程的一部分;#define是宏定义语句,它本身并不在编译过程中进

2014-03-03 14:18:16 802

原创 C90为C语言增加了void : void 表示什么?

关键字  void是在C90新增加的。它的用法涉及几个方面:在函数原型中,函数原型为编译器提供依据检查函数的参数是否合乎要求。但由于大量的k&R c 中,是这样声明函数的: double  fun ();C90中,为了能够确切的检测函数参数,明确指出应该使用  double fun(void);但又考虑到对以前版本的兼容,所以在,C90的版本中,遇到double fun ();会自动避

2014-02-28 15:36:58 1257

原创 C语言学习笔记(4)类型转化,复合类型

c语言里的简单类型只有两类,整数型 和浮点型:整数型:  char         1                  short        2                  int             4                  long         4浮点型  :float         4                  double 

2014-02-27 13:17:42 1287

转载 C语言学习笔记(3)assert的使用

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#inclu

2014-02-26 14:16:53 742

原创 C语言学习笔记(2) 浅析static变量

像大家知道的一样,static是静态变量,别static修饰的变量都会被编译器放到(.data)数据段。当时有两种情况大家需要分清楚:1:static修饰一个全局变量。    全局变量本来就是放在(.data)数据段,它存在的意义就在于可以被多个函数访问,而这些函数村早与不同的C代码中。但正是因为这个,他给我们会带来一些麻烦。由于C语言只有一个全局空间,于是很容易发生命名冲突。试想一个项目

2014-02-26 14:11:19 735

转载 学习编程的,基础题目。

1.C语言中,修饰符volatile的含义是什么?举例说明其使用场合。  答.volatile提醒编译起它后面所定义的变量随时都有可能发生改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变化由别的程序更新了的话,将会出现不一致现象。  一般

2014-02-25 19:30:28 724

原创 C语言学习笔记(1)

extern的用法:(声明变量 / 函数) extern可以用来修饰变量,也可以用来修饰函数(不过放到函数前面基本没有意义) 例如:   int   t;              // 定义一个变量,并在内存分配四字节(32位系统)   extern  int   t;  //声明一个变量,但是没有分配内存C语言中对于变量的声明与定于的一般规则:    1:头文件中,对于

2014-02-25 15:10:10 930

原创 一个让我爱上数学的证明题

记得是2008年,那年上大一,机缘巧合的选修了一门数值分析的选修课。老师在第一节课时给我们这个证明题:特别喜欢。也正是由此开始了一段我的数学建模学习和比赛。再次感谢这位老师,他也成为我比赛时的指导老师;谢谢您。题目: 四条腿长短相同的椅子,一定可以在起伏不平的地面上放稳!          题目大家可能觉得很老套,接触过数学建模的同学可能都见过,而且估计很快也能写出证明过程。但是证明过程不

2014-02-25 13:43:36 1561 5

转载 一致性哈希(最喜欢的算法之一)

个人觉得是一篇很好的博文,所以擅自存入自己博文中,还请见谅。tencent2012笔试题附加题    问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已 有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了, 那么n

2014-02-25 13:08:00 1062

BCH(31,16,3)编码,纠正三个错误

使用verilogHDL 语言实现BCH(31,16,3)的编解码,能隋姐纠正三个级三个以下错误。并且带有仿真激励_tb文件,可以直接运行,并在modsim10.1下仿真成功。

2013-06-27

IES14.0-14.5 注册码 liseces 序列号

IES14.0-14.5 注册码 liseces 序列号

2013-06-27

IES12.1-12.4 注册码 liseces 序列号

IES12.1-12.4 注册码 liseces 序列号

2013-06-27

ISE 10.1注册码

IES10.1 注册码 liseces 序列号

2013-06-27

任意的奇数分频FPGA verilog

只用改一个参数,即可实现任意占空比为50%的奇数分频。很方便的

2013-05-16

FPGA的 SHA_1算法实现

利用Verilog 语言实现 李刚超素数随机数 , 线性散列 , SHA_1算法 。最后生成1024BIT的随机01序列

2013-05-16

空空如也

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

TA关注的人

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