关闭

欢迎使用CSDN-markdown编辑器

出来混,要学习java,本人原先具有C++的功力,所以学习java并不觉得难,但是还有一些特性难以时刻记住,所以在此做一些笔记,方便以后快速查询。注解(元数据) 第一次接触注解的概念,先了解一下注解的使用地方生成文档,这个是最常见的功能,常用的注解有@param @return @see 跟踪代码的依赖性,实现替代配置文件功能 在编译时进行格式检查。如@override 放在方法前,如果你这个方...
阅读(46) 评论(0)

Linux 虚拟内存机制

华为面试官问了我一个问题就是关于Linux虚拟内存机制,虽然我多少是回答上来,感觉好久没看操作系统的我是时候将其拿起来重温一遍 。 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构。 Linux内存管理采用的是页式管理,使用的是多级页表,动态地址转换机构与主存、辅存共同实现虚拟内存 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间...
阅读(1169) 评论(0)

触发器

触发器的作用是在执行insert、delete和update命令之前或之后自动调用sql命令或存储过程,最多一个表可以建立6个触发器,因为触发器的类型主要分为: 1.Before 2.After before 和 after代表触发器发生的时间是在每行操作的之前还是之后。其中after触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上。而...
阅读(214) 评论(0)

Go安装

Go的三种安装方式 Go源码安装:这是一种标准的软件安装方式 Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。 最后,...
阅读(4876) 评论(0)

Go语言的特性

关于特性丢失 为了简化设计,不支持函数重载和操作符重载 为了避免c/C++开发中的一些bug和混乱,不支持隐式转换 Go语言通过另一种途径实现面向对象设计放弃了类和类型的继承 尽管在接口的使用方面可以实现类似变体类型的功能,但本身不支持变体类型 不支持动态加载代码 不支持动态链接库 不支持泛型 通过recover和panic来替代异常机制 不支持断言 不支持静态变量 Go编译器的知识 目前有2...
阅读(339) 评论(0)

golang编译器的准备

????????????????????????????????????,???????????????http??,??????http??,????????????,????????????,?????,????????????????,????????????????????????????????,?????,????? Vegeta??? Vegeta ????Go?????????...
阅读(230) 评论(0)

第一讲 go 语言简介

没有停止学习脚步的程序员,这篇博客这要介绍为什么要学习go语言,go语言是一种新的语言,一种并发的,带垃圾回收的、快速编译的语言 不仅就有上述特点,更重要的是,在我面试几家公司之后,面试官反复提到如果会go语言的话会更好。(这样学习的动力马上就有)Go有什么优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定的要求,部署就是扔一个文件上去就完成。 Go为软件构造提供了一种模型,它使依赖分...
阅读(95) 评论(0)

Linux 下几款程序内存泄漏检查工具

写这篇博客的原因呢是因为自己在编写基于Nginx磁盘缓存管理程序,目前已经进入测试阶段,关于这个程序的测试分为几个主要步骤:1.内存管理是否正确(因为这个程序本身开辟很多内存空间进行缓存管理,同时这个程序程序本身就是基于C/C++开发的,内存管理机制一直是程序员头痛的东西) 2.程序的健硕性如何(服务器任何程序的基本要求就是要满足高并发的要求,也就是说,如果达不到这个基本要求,程序并并不能成为服务器...
阅读(5419) 评论(0)

静态库和动态库

有一篇博客专门介绍程序编译过程,在程序编译步骤中有一个很重要的步骤就是链接,这篇博客主要比较静态库和动态库的差别。 在了解两者的区别,我们先学习一下基础知识 库是什么库就是写好的,现有的,成熟的可以 复用的代码,现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都是从零开始,本质上库 就是一种可执行代码的二进制形式,可以被操作系统载入内存 执行,库有两种:静态库(.a,.lib)和...
阅读(231) 评论(0)

C 程序编译过程

通常我们使用gcc来生成可执行程序,命令为: gcc hello.c,默认生成可执行文件a.out,其中经过下面几个步骤:预处理(processing) 编译(compilation) 汇编 (Assembly) 链接(Linking) 接下来将介绍每个步骤相应都做了那些工作 预处理(preprocessing) 将所有的#define删除,并且展开所有的宏定义 处理所有的条件编译指令,比如#...
阅读(291) 评论(0)

C++ 中的sprintf和snprintf 函数的区别

在编程过程中经常有字符串转数字和数字转字符串,相应的函数大家最经常见到可能是atoi和itoa。但是itoa不是标准库里面的函数,所以接下来介绍下面两个函数sprintf和snprintf函数,并将它们比较一番。最近写的博客目前就是一些自己在实现基于 Nginx磁盘缓存的一些知识总结 sprintf()函数用法int sprintf(char *string,char *format,arg_lis...
阅读(1780) 评论(0)

Nginx 模块自主开发十: 设计一个基于NGINX 的缓存服务

计算机不仅需要对计算机理论有一定的要求,同时要学以致用,这篇博客将结合公司给我的一个问题,我自主设计一个初步的方案 ,如何 有什么bug或是想法,可以提出来,我一直秉承一个思想:good idea worth spreading.只有将自己的学习计划放在互联网上,才会进步得更快。 问题 将磁盘文件分块加载到内存,一般来说磁盘文件远大于内存空间,所以将磁盘文件分块,部分读入内存,系统预分配内存空间...
阅读(261) 评论(3)

Nginx 模块自主开发八: 总结 Nginx框架的流程

前面两篇博客:Nginx 模块自主开发六:源码剖析配置文件解析过程和 Nginx 模块自主开发七:源码剖析整个Nginx框架从源码层面上解析Nginx框架,这样导致太过于 细节,所以本篇博客将带领你系统上过一遍Nginx框架 Nginx主框架的流程当启动Nginx程序时候,Nginx从入口函数Main()开始执行,检查命令行参数和环境变量,初始化ngx_modules数组,然后进入初始化函数ngx_...
阅读(455) 评论(0)

C++ 类型转换运算符

C语言存在两种类型转换(隐式转换,显式转换) 隐式转换,是针对不同类型之间的赋值和运算,函数调用传递参数 这些的转换都是由编译器自动完成char ch; int i=ch; 显式转换 由程序员在变量前面添加型转换 char *pc=(char *)pb void *ps=(void*)pa C++ 中的类型转换* 通过上述的两种方式,C语言大部分的类型转换都可以顺利进行,C++继承...
阅读(560) 评论(0)

Nginx 模块自主开发七:源码剖析整个Nginx框架

在博客提到的Nginx 模块自主开发四: 模块数据结构一个很重要的数据结构ngx_module_s,所有的模块都是用这个结构体来表示。ngx_module_t结构体 模块又分为ngx_core_module_t和ngx_xxx_module_t,而在ngx_module_t中会包含这两个结构,只不过不同类的模块包含不同的结构,一般会 用ctx表示,ngx_module_t又用type这个域用来表...
阅读(9237) 评论(11)

Nginx 模块自主开发六:源码剖析配置文件解析过程

Nginx源码实现有一个很好的优点就是模块化,有点像面向对象语言的设计模式,实现“高内聚,松耦合”,这篇博客主要讲解模块的共有流程 集中在ngx_cycle.c、 ngx_process.c、 ngx_process_cycle.c 和 ngx_event.c代码中。 共有流程开始于解析 nginx 配置,这个过程集中在 ngx_init_cycle 函数中。 ngx_init_cy...
阅读(6458) 评论(0)

从流程解析Nginx对 Native aio支持

强烈建议这篇博客和从源码解析Nginx对 Native aio支持一起阅读异步I/O 异步IO就是把IO提交给系统,让系统替你做,做完了再用某种方式通知你(通过信号,或者其他异步方式通知,这时候,操作系统已经帮你完成IO操作,具体来说就是你那个作为传入参数的的buffer的指针所指向的空间已经读到了数据或者你的buffer的数据已经写出去了) 非阻塞I/O 非阻塞IO就是你要通过某种方式不定...
阅读(1315) 评论(0)

从源码解析Nginx对 Native aio支持

使用异步I/O大大提高应用程序的性能 linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的。下面将针对 同步和异步模型,以及阻塞和非阻塞的模型进行介绍。而native aio的优点就是能够同时提交多个io请求给内核,然后直接由内核的io调度算法去处理这些请求(direct...
阅读(6056) 评论(0)

C++中的重载,重写, 重定义 差别

一、重载(overload)指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。 (1)相同的范围(在同一个作用域中) ; (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 (5)返回值可以不同;二、重写(也称为覆盖 override)是指派生类重新定义基类的虚函数,特征是: (1)不在同一个作用域(分别位于派生类与基类) ; (...
阅读(879) 评论(0)

hadoop之Hbase简介

HBASE的发展从bigtable讲起bigtable 是一个分布式存储系统 利用mapreduce分布式并行计算模型处理海量数据 使用分布式文系统GFS作为底层数据存储 采用Chubby提供协同服务管理 扩展到PB级别的数据和上千台机器,具有广泛应用性, 可扩展性,高性能和高应用的特点 很多项目都存储在BigTable中,包括搜索、财经、地图、社交网络Orkut、视频共享网站YouTube。 HB...
阅读(411) 评论(0)
62条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:100191次
    • 积分:1639
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:0篇
    • 译文:0篇
    • 评论:16条
    最新评论