- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 深入理解计算机系统(笔记):链接
理解链接有很多好处:有助于构造大型程序有助于避免一些危险编程错误有助于理解其他重要的系统概念让你能够利用共享库1. 编译器驱动程序编译命令,假设有main.c和swap.c两个源文件$ gcc -O2 -g -o p main.c swap.c实际上编译过程可以分解为以下步骤1. 运行C预处理器(cpp),将main.c翻译成一个中间文件 $cpp [optio
2015-07-24 18:35:32
2286
原创 部分g++(gcc)选项
编译一个使用了开源库的hello world例子,有一些编译选项不理解,记录下来以便学习1. 编译选项g++ -std=c++11 -Wextra -Wall -pedantic -pthread -fPIC -O2 -g -I/usr/local/include/caf -o hello_world.o -c hello_world.cpp-std:指定语言标准,只有编译C或C+
2015-07-07 13:55:40
2790
转载 Makefile经典教程(掌握这些足够)
from: http://blog.youkuaiyun.com/ruglcc/article/details/7814546/makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HT
2015-07-06 09:50:13
624
原创 通过configure文件学习shell
学习语言最好的途径就是阅读源码,这篇文章通过研究configure文件学习shell编译开源项目时,一般步骤为1. ./configure2. make3. make installmake就是把项目编译成目标文件。而make install是将编译生成的二进制或者库文件拷贝到系统对应目录下,同时也会拷贝头文件到系统对应目录,以便用户进行二次开发。但是configu
2015-07-03 20:22:45
3675
1
转载 VIM配置C++开发环境
from:http://blog.youkuaiyun.com/klarclm/article/details/79325581. 安装Vim和基本插件$sudo apt-get install vim vim-scripts2. Vim配置文件Vim系统配置文件在/usr/share/vim和/etc/vim下,我们不改系统配置,只改自己user home下的配置就行了。进入
2015-07-03 09:35:14
3709
原创 深入理解计算机系统(笔记):程序的机器级表示
分析高级语言编译后生成的汇编语言。1. 程序编码运行如下命令得到C语言的汇编代码:unix> gcc -O1 -S code.cgcc -c选项编译源文件生产目标文件code.o:unix> gcc -O1 -c code.c可以使用反汇编器(disassembler)来查看目标文件内容:readelf/objdumpunix> objdump
2015-06-04 22:10:18
1093
原创 深入理解计算机系统(笔记):信息的表示和处理
1. 信息存储 程序将存储器视为一个字节数组,叫做虚拟存储器(virtual memory),数组中每个字节都有一个数字来标识,这个数字就是地址(address),所有可能的地址的集合叫做虚拟地址空间(virtual address space)。虚拟地址空间是给程序提供的概念性映像,实际的实现是将RAM、硬盘、特殊硬件和OS软件结合起来。 编译器和运行时系统通过各种机制来分配
2015-06-01 17:44:48
1244
原创 深入理解计算机系统(笔记):计算机系统漫游
经典书籍:深入理解计算机系统 的读书笔记1. 了解编译器如何工作对编程帮助巨大:1.1 优化程序性能比如相似语句那种效率高,比如switch和if-then-else语句,while和for循环,循环求和的结果放到本地变量比放到引用传递来的参数速度快,等1.2 理解链接时错误链接器无法解析引用,静态变量和全局变量区别,不同源文件定义同名全局变量会发生什么,等
2015-06-01 16:59:58
822
翻译 ELF Format: 程序加载和动态链接
Refer to: http://www.skyfree.org/linux/references/ELF_Format.pdf前一篇文讲了ELF format相关的东西,这篇翻下ELF文件的程序加载和动态链接知识1. 介绍可执行文件和共享目标文件实际就是静态的程序,要执行程序,系统需要创建这些文件对应的动态程序,就是进程映像(Process Image)。进程映像
2015-05-26 09:50:11
3669
翻译 ELF format
Refer to http://www.skyfree.org/linux/references/ELF_Format.pdfELF是Executable and Linking Format的缩写, 本来是UNIX系统实验室ABI(Application Binary Interface)的一部分. TIS(Tool Interface Standards) 委员会选择ELF标准作为
2015-05-24 14:42:38
2247
原创 extern "C"
C++代码里有时候会出现这样的code:extern "C" { void foo();}看到“C”可以联想到跟C++和C语言兼容性有关,也确实如此。C中因为没有重载之类的特性,不可能存在同名函数,编译出来的symbol名字可以直接用函数名。但是C++中因为重载之类存在同名的函数,函数名不能作为函数symbol的唯一ID,因此C++中编译出来的symbol name包
2015-03-09 15:58:11
424
原创 C++Primer学习概要:引用和指针
引用和指针都是复合类型,是基于其他类型而定义的类型。1. 引用(reference)引用是对象的别名,定义时就必须指定其引用的对象,并且不能改变引用对象。也就是说一旦创建了一个引用变量,它将一直指向同一对象。引用不是对象,因此引用本身不能再被引用,不存在引用的引用(这点和指针不同,指针是一个对象,因此存在指针的引用和指针的指针)。int i = 1024;int &iRe
2015-03-08 16:20:10
495
原创 C++ Primer学习概要:变量和基本类型
1. 基本内置类型C++基本内置类型包含算术类型(arithmetic type)和空类型(void)算术类型,包括整型和浮点型整型有:bool,char,wchar_t,char16_t, char32_t, short, int, long, long long浮点型:float, double, long double,一般使用double作为变量类型,因为float只有7个
2015-02-08 17:19:34
564
原创 C++Primer学习概要:数组
数组与指针和引用一样是C++中的一种复合类型,数组一旦定义后大小确定不变,不能往数组中添加元素。由于数组大小固定,对于某些应用来说性能上优于vector。1. 定义与初始化数组声明形如a[d],d是维度,必须是大于0的常数或常量表达式(或者constexpr函数)。维度是数组对象的一部分,定义时必须指定。数组如果不显示初始化,将使用默认初始化,数组可能含有未定义的值,因此定义数
2015-01-26 20:52:28
686
转载 c++ pointer vs. reference
from:http://blog.youkuaiyun.com/FireCoder/article/details/5429199Reference1. If you are familiar with Java/C#, treat reference as Java/C# reference. unlike in java/C#, which always do refere
2015-01-06 22:14:28
2276
转载 pointer to pointer vs. reference to pointer
from: http://www.codeproject.com/Articles/4894/Pointer-to-Pointer-and-Reference-to-PointerIntroductionThis article explains the reason behind using pointer-to-pointer and reference-to-
2015-01-06 22:09:31
988
原创 Windows下配置tomcat7 https
1. 生成RSA key文件$%Java Home%\bin\keytool.exe -genkey -alias tomcat -keyalg RSA输入密码(比如123456)和相应信息,完成后可以在你的user folder(C:\Users\[user name]\)下找到新生成的.keystore文件2. 把.keystore文件copy到tomcat的conf目录下
2015-01-06 11:55:37
1236
原创 C++引用
1. 引用Refer to C++ Primer 4th Edition引用是对象的别名,实际应用中,主要做函数的形式参数。引用是一种复合类型,通过变量名前加“&”定义,引用定义时必须指向一个已初始化的对象int iVal = 1024;int &refVal = iVal;int &refVal2; //Error as a reference must be initi
2014-12-30 13:17:59
442
转载 FreeMarker
From 百度百科:点击打开链接FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等
2014-12-17 17:08:51
388
原创 Code Complete 推荐书目
1. 入门级Conceptual Blockbusting: A Guide to Better IdeasProgramming PearlsFacts and Fallacies of Software EngineeringSoftware Project Survival Guide2. 熟练级Software Configuration Managemen
2014-12-07 16:36:02
588
原创 Java泛型(Generics)
参考:http://docs.oracle.com/javase/tutorial/java/generics/index.html为什么要使用泛型
2014-10-28 10:53:56
3440
翻译 JCommander(命令行参数解析工具)
Because life is too short to parse command line parameters. From JCommander official site: http://jcommander.org/
2014-10-24 17:09:22
13949
原创 解决chromedriver无法click element的问题:Element is not clickable at point (326, 792.5)
使用chromedriver测试,有时候因为页面没加载完成或者Element
2014-10-16 10:53:30
10001
原创 简单的TestNG.xml在Eclipse中跑TestNG suite
配置并建好一个TestNG的Project后,就可以写自己的testdaim
2014-10-15 11:42:15
5158
原创 Selenium Java环境搭建
1. 下载Selenium Java Bindings包:http://selenium-release.storage.googleapis.com/2.43/selenium-java-2.43.1.zip
2014-10-13 14:02:42
1693
原创 Java Access Modifier(访问控制):public, protected, private, friendly(no modifier)
4种访问修饰符:friendly, public, private, protected1. friendly不指定a
2014-09-27 13:50:39
4133
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人