Javamail实现给多人发送、抄送邮件 关键技术: 1、MimeMessage的setRecipients方法设置邮件的收件人,其中Message.RecipientType.TO常量表示收件人类型是邮件接收者,Message.RecipientType.CC常量表示收件人类型是抄送者,Message.RecipientType.BCC常量表示收件人的类型是密送着。2、在调用MimeMessage
Makefile编译选项 -D:条件选择编译-I :头文件搜索路径-l:连接静态库 AR静态库打包命令的名字,缺省值是ar。ARFLAGS静态库打包命令的选项,缺省值是rv。AS汇编器的名字,缺省值是as。ASFLAGS汇编器的选项,没有定义。CCC编译器的名字,缺省值是cc。CFLAGSC编译器的选项,没有定义。
双向循环链表小结 以下是实现了一个简单的双向循环链表的一些功能:1 #include 2 #include 3 4 #define LEN 8 5 //链表的正向遍历宏函数 6 #define list_for_each_next(pos, head) \ 7 for(pos = (head)->next; pos != (head); pos = pos->n
关与双向指针 关于双向指针的初始化,插入与删除过程: 1 #include 2 #include 3 4 int length = 0; 5 int d; 6 struct node{ 7 struct node * next; 8 struct node * prev; 9 int data; 10 }; 11
指针做形参做局部变量及内存分配 一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。二级指针做形参:二级指针也是传值,但是他指向的地址是个一维指针,所以可以改变二维指针指向的地址空间里的内容也就是要申请空间的一维指针,不能改变二维指针本身的值,
C语言中堆和栈的区别 格式和部分内容稍作修改。在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,
关于typedef的用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容。用途一:定义一种类型的别名,而不只是简单的宏替换。可
学习正则表达式 正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于:检查文本中是否含有指定的特征词找出文中匹配特征词的位置从文本中提取信息,比如:字符串的子串修改文本与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式。在这样的语境下,“文本”也就是一个字符串,可以执行的操作都是类似的。一些编程语言(比如Perl,JavaScript)会检查正则表达
linux中shell变量$#,$@,$0,$1,$2的含义解释 linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出
shell中单引号、双引号、反引号的使用 在编写shell脚本时,会经常地使用到单引号、双引号、反引号这些特殊的符号。它们在shell中有着不同的作用,但容易被误用和引起混乱。简单总结一下三者的使用和区别。 单引号它关闭shell中所有的特殊符号使用和解释,即单引号间的内容全部以普通字符的含义进行文本使用和解释,不管是特殊字符 $ ,还是转义字符之类的。例子: 1~$ a=12;test='
Linux test 脚本 shell 命令详解 -b filename当filename 存在并且是块文件时返回真(返回0)-c filename当filename 存在并且是字符文件时返回真-d pathname当pathname 存在并且是一个目录时返回真-e pathname当由pathname 指定的文件或目录存在时返回真-f filenam
Getopts获取shell脚本命令行参数 g e t o p t s可以编写脚本,使控制多个命令行参数更加容易。g e t o p t s用于形成命令行处理标 准形式。原则上讲,脚本应具有确认带有多个选项的命令文件标准格式的能力。 20.2.1 getopts脚本实例 通过例子可以更好地理解g e t o p t s。以下g e t o p t s脚本接受下列选项或参数。 • a 设置变量A L L为t r u e。
冒泡、选择、插入排序验证 #include 2 3 void maopao() 4 { 5 /***************两种冒泡排序方法*************************************/ 6 int arr[10] = {4,8,3,25,30,7,1,20,10,9}; 7 int n = sizeof(arr)/sizeof(int)
Android安装NDK运行环境无需cygwin 本菜鸟在查阅了很多文章,又是去折腾cygwin之类的,虽然可以编译出so文件,但运行项目却有很多问题。当发现最新的ndk不需要cygwin的时候,跪了(orz)。现在进入正题。使用工具:adt-bundle-windows-x86:eclipse+sdk+adt的集成工具包,也可以用eclipse自己先搭建android-ndk-r9-windows-x86_64:
Android Handler 一、Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要