FIRE_TRAY的Android之路

I love Android

C 函数值传递和指针传递的效率问题

C 函数值传递和指针传递的效率问题C中有两种传递,值传递和指针(地址)传递。值传递需要把数据的一份拷贝传递入函数形参表,并存储在栈中,函数返回后弹出栈,拷贝被删除。而指针传递则不然。如果形参表是指针,那么函数在执行时会直接去指针指向的地址中获取此数据并操作,而不用直接拷贝。看下这个例子:const...

2016-05-14 17:02:21

阅读数 601

评论数 0

Java GC 日志格式理解小结

Java GC 日志理解小结下面以一个典型的GC日志做分析:33.125: [GC[DefNew:3324K->152K(3712K), 0.0025925 secs]3324K->152K( 11904K), 0.0031680 secs] 100.667: [FullGC[Tenu...

2016-05-13 19:40:05

阅读数 749

评论数 0

JVM的几种垃圾收集器

JVM的几种垃圾收集器Serial收集器基本原理: 新生代收集器,采用标记复制算法 它是一个单线程收集器,只会使用一个CPU和一条收集线程完成GC。 缺陷: 在于它“Stop-The-World”的收集方式。进行垃圾收集时必须暂停其他线程的所有工作 优点: 简单而高效(与其他收集器的单线程比),对...

2016-05-13 17:20:02

阅读数 429

评论数 0

C strpbrk 查找任意几个字符

C strpbrk 查找任意几个字符头文件string.h函数原型char *strpbrk(char const *str, char const *group);返回的是字符集合group中任意字符在str中第一次出现的位置(最左面的)。同样,函数返回的是指向此位置字符的指针。注意事项注意匹配...

2016-05-13 11:15:46

阅读数 458

评论数 0

C strchr strrchr查找一个字符

C strchr strrchr查找一个字符头文件string.h函数原型char *strchr(char const *str, int ch); char *strrchr(char const *str, int ch);注意事项返回值的类型注意返回的不是一个整数index,而是一个指向字...

2016-05-13 11:04:43

阅读数 584

评论数 0

C 可指定长度的字符串函数

C 可指定长度的字符串函数头文件string.h函数原型char *strncpy(char *dst, char const *src, size_t len); char *strncat(char *dst, char const *src, size_t len); int strcmp...

2016-05-13 10:46:55

阅读数 467

评论数 0

C strcmp 字符串比较

C strcmp 字符串比较头文件string.h函数原型int strcmp(const char *s1, const char *s2);返回的是一个int。注意事项注意比较的结果是依照字典序确定的: 如果 s1 < s2 ,也就是s1的字典序排在s2的前面,返回 -1 如果 s1 ...

2016-05-13 09:38:58

阅读数 743

评论数 0

C strcat

C strcat头文件string.h函数原型char *strcat(char *dst, const char *src);返回的是第一个参数dst的拷贝。用于拼接字符串。注意事项dst的空间约束dst必须有足够的空间保留之前已经有和要拷贝进来的字符串。正确的使用案例:#include&...

2016-05-13 09:17:33

阅读数 550

评论数 0

C strcpy

C strcpy头文件string.h函数原型char *strcpy(char *dst, const char *src);返回的是第一个参数dst的拷贝。注意事项dst的约束由于 dst 参数将进行修改,所以它必须是一个字符串数组或者一个指向动态分配内存的数组指针,不能是字符串常量,而...

2016-05-12 16:59:55

阅读数 310

评论数 0

C strlen

C strlen 返回值注意事项基础知识头文件string.h函数原型size_t strlen(char const *string);这个size_t是在头文件stddef.h中定义的,是一个unsigned long类型。注意事项注意它的返回值,是一个无符号整数类型(可能为unsigned ...

2016-05-12 16:01:20

阅读数 390

评论数 0

C 数组基础知识分析

C 数组基础知识分析数组名含义一言以蔽之,数组名就是一个指向比其所在维度低一维的东西的指针。让我们再深入的分析一下一维数组比一维再低一维的就是元素。因此,一维数组名就是一个指向所存元素类型的指针。且其值为首元素地址。如果有 int a[10],那么这个a就是一个指向整型的指针,且指向首元素a[0]...

2016-05-12 11:22:21

阅读数 408

评论数 0

HotSpot GC 具体实现关键点概要

HotSpot GC 具体实现关键点概要GC roots 枚举过程枚举过程的困难点: 范围大: GC roots主要在全局性的引用(常量与静态变量)和执行上下文(如栈帧中的本地变量表)。现在程序仅仅就方法区而言就很大,程序整体体积更是不用说。如果要注意检查这些引用,如查看所有栈帧中的本地变量表,那...

2016-05-05 10:12:24

阅读数 948

评论数 0

Java 垃圾清理基础理论

Java 垃圾清理基础理论标记-清除算法基本原理先标记需要回收的对象,然后回收被标记的对象。标记过程标记过程(对象的死亡至少要经历两次标记): 首先,如果发现对象从GC root出发不可达,那么就会被第一次标记并进行筛选。筛选条件是此对象是否有必要执行finalize()方法。当对象没有覆盖fin...

2016-05-05 09:56:11

阅读数 375

评论数 0

C 可变参数的使用

C 可变参数的使用C中的可变参数需要使用 stdarg.h 头文件。此头文件中声明了一个类型va_list和三个函数——va_start、va_arg 和 va_end。让我们先看一个求均值函数的实现,看看C中可变参数是如何使用的。样例代码#include <stdio.h> #inc...

2016-05-04 17:52:07

阅读数 394

评论数 0

C ADT 的实现

C ADT 的实现C也可实现ADT。主要是利用static关键字。static可将被修饰者的作用域限定到文件中,此文件以外则不可对它进行访问。笔者这里实现了一个简单的链表,可以参考下:NameList.c#include<stdlib.h> #include<stdio.h>...

2016-05-04 16:39:08

阅读数 539

评论数 0

JVM 方法区回收小结

JVM 方法区回收小结方法区也会发生垃圾回收,只是效率和性价比较低。回收主要分为两部分内容:废弃常量和无用的类。废弃常量的回收这与堆中对象的回收类似。以常量池的字符串为例,如果没有任何对象引用了此字符串,那么它就有可能被系统清理出常量池。废弃类的回收此类回收条件较为苛刻,需要满足如下的3点: 该类...

2016-05-02 20:23:48

阅读数 688

评论数 0

关于指针的小杂碎

关于指针的小杂碎关于指针的一些小点,这里简单整理下间接取值(指针解引用)的含义根据指针找内容的过程被称为:间接取值 或 指针的解引用NULL与0的关系NULL在外部表现为0。为指针赋值NULL,等价于为指针赋予0。用代码验证下:int *p = NULL; printf("%d&qu...

2016-05-02 16:15:08

阅读数 306

评论数 0

C 运算符优先级与记忆口诀

运算符详情表 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员

2016-05-01 20:16:21

阅读数 462

评论数 0

C 的布尔值

C 的布尔值基本原理C中并没有像Java中true 和 false 中那种显式的布尔类型,整型担任了此重任。原则就是:0为假,任何非0值为真代码验证#include <stdio.h> #include <stdlib.h>void printLine(char *s){ ...

2016-05-01 15:37:11

阅读数 435

评论数 0

C 逗号运算符

C 逗号运算符语法格式exp1, exp2, exp3, ..., expN;执行效果运算符中每个表达式exp(i)都会被计算,且整个逗号表达式的最终结果为最后一个表达式expN的值。代码举例#include <stdio.h> #include <stdlib.h>int...

2016-05-01 10:14:04

阅读数 632

评论数 0

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