2018年5月3日

摘要: 这里我们将总结字符串相关的知识,除了总结String的API用法,同时我们还会总结一些相关的知识点,包括字符串常量池、StringBuffer、StringBuilder,以及equals和==的用法。 一、String的用法 String类在java.lang包中,java使用String类创建一 阅读全文
posted @ 2018-05-03 16:07 都是一家人 阅读(17428) 评论(1) 推荐(2) 编辑
 

2018年4月21日

摘要: C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换 阅读全文
posted @ 2018-04-21 10:18 都是一家人 阅读(5550) 评论(0) 推荐(1) 编辑
 

2018年4月19日

摘要: 简介 我们程序运行的时候都是放在内存里的、根据静态、成员函数、代码段、对象、等等、放在不同的内存分块里、大概分为5块 1 栈 2 堆 3 BSS段-全局区-(静态区) 4 代码段 5 数据段 栈 存放局部变量、临时变量、声明、返回值、指向堆对象的地址(指针)、总之存放一些小的东西、当不需要时候、栈会 阅读全文
posted @ 2018-04-19 17:49 都是一家人 阅读(4162) 评论(1) 推荐(0) 编辑
 

2018年4月17日

摘要: PIC指的是位置无关代码,用于生成位置无关的共享库,所谓位置无关,指的是共享库的代码断是只读的,存放在代码段,多个进程可同时公用这份代码段而不需要拷贝副本。库中的变量(全局变量和静态变量)通过GOT表访问,而库中的函数,通过PLT->GOT->函数位置进行访问。Linux下编译共享库时,必须加上-f 阅读全文
posted @ 2018-04-17 18:17 都是一家人 阅读(845) 评论(0) 推荐(0) 编辑
 

2018年4月13日

摘要: 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c 阅读全文
posted @ 2018-04-13 10:59 都是一家人 阅读(3864) 评论(0) 推荐(0) 编辑
 

2018年4月12日

摘要: 在标准C和C++中,长度为0的数组是被禁止使用的。不过在GNU C中,存在一个非常奇怪的用法,那就是长度为0的数组,比如Array[0];很多人可能觉得不可思议,长度为0的数组是没有什么意义的,不过在这儿,它表示的完全是另外的一层意思,这个特性是不可移植的,所以,如果你致力于编写可移植,或者是稍稍需 阅读全文
posted @ 2018-04-12 14:57 都是一家人 阅读(278) 评论(0) 推荐(0) 编辑
 

2018年4月11日

摘要: 操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,包括DEP、ASLR等。在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了DEP(Linux下对应NX)、ASLR(Linux下对应PIE)等机制,例如存在DEP(NX)的话就不能直接执行栈上的数据,存在ASLR的话各个系 阅读全文
posted @ 2018-04-11 20:44 都是一家人 阅读(13788) 评论(3) 推荐(5) 编辑
 
摘要: 一、生成configure过程中各文件之间的关系图 二、详细介绍 autoscan: 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 aclocal:根据已经安装的宏,用户定义宏和acinclude.m 阅读全文
posted @ 2018-04-11 20:21 都是一家人 阅读(1283) 评论(0) 推荐(0) 编辑
 

2018年3月30日

摘要: git add 和 git stage 有什么区别: 工作区(Working Directory)、暂存区(Stage)和历史记录区(History)以及转换关系不能少; git stage 是 git add 的同义指令; git reset、git revert 和 git checkout 有 阅读全文
posted @ 2018-03-30 11:47 都是一家人 阅读(425) 评论(0) 推荐(0) 编辑
 

2018年2月6日

摘要: go基础学习,面向对象-方法在Go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法 使用= 和:=的区别: // = 使用必须使用先var声明例如: var a a=100 //或 var b = 100 //或 var c int = 100 // := 是声明并赋值,并且系统自动推断类型,不需要var关键字 d := 100 make和new的区别。链... 阅读全文
posted @ 2018-02-06 09:49 都是一家人 阅读(209) 评论(0) 推荐(0) 编辑