FIRE_TRAY
码龄14年
求更新 关注
提问 私信
  • 博客:234,010
    234,010
    总访问量
  • 71
    原创
  • 12
    粉丝
  • 0
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
加入CSDN时间: 2012-06-19

个人简介:生命在于折腾

博客简介:

FIRE_TRAY的Android之路

博客描述:
I love Android
查看详细资料
个人成就
  • 获得38次点赞
  • 内容获得5次评论
  • 获得63次收藏
  • 代码片获得143次分享
  • 博客总排名1,711,238名
创作历程
  • 91篇
    2016年
  • 38篇
    2015年
成就勋章
TA的专栏
  • Java
    85篇
  • 设计模式
    1篇
  • android
    16篇
  • git
    5篇
  • vim
    1篇
  • 操作系统
    2篇
  • C-C++
    20篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

芯创视界・嵌入式视频创作征集大赛

嵌入式工程的价值,藏在每一次硬件调试、代码迭代与项目落地之中。 让我们因热爱相聚,用镜头与一众开发者互通心得、彼此启发,记录下探索的每一步,分享思路与经验。 让更多人看见嵌入式开发的魅力,也让每一次创作成为推动技术传播与社区成长的力量。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0d445ffce72b42f997aaf1b030a652aa.png#pic_center)

196人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Java GC 日志格式理解小结

Java GC 日志理解小结下面以一个典型的GC日志做分析:33.125: [GC[DefNew:3324K->152K(3712K), 0.0025925 secs]3324K->152K( 11904K), 0.0031680 secs]100.667: [FullGC[Tenured: 0 K->210K(10240K) , 0.0149142secs]4603K->210K( 19456K
原创
博文更新于 2016.05.13 ·
1914 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C 命名指针的更好习惯

C 命名指针的更好习惯笔者平常这样创建指针变量:int* a;笔者当时认为这样写可以更加简洁明了,一看就明白a是一个指向int的指针变量,也就是一个int*类型的变量。但在近日阅读《Pointers on C》一书中,书中认为这样写更好:int *a;书中举了一个例子来说明两者之间的差别,读者请看:int* a,b,c;乍一看,容易产生这样的错觉,会误以为abc都是指向int的指针。实则不然,这里三
原创
博文更新于 2016.04.26 ·
1488 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

const 修饰指针的问题

const 修饰指针的问题判断法则沿着*号划一条线:如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量验证#include <stdio.h>#include <stdlib.h>int main(){ int a = 1; int b = 2; /*const
原创
博文更新于 2016.04.07 ·
652 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

C 函数值传递和指针传递的效率问题C中有两种传递,值传递和指针(地址)传递。值传递需要把数据的一份拷贝传递入函数形参表,并存储在栈中,函数返回后弹出栈,拷贝被删除。而指针传递则不然。如果形参表是指针,那么函数在执行时会直接去指针指向的地址中获取此数据并操作,而不用直接拷贝。看下这个例子:const int ARRAY_SIZE = 20;typedef struct{ long long
原创
博文更新于 2016.05.14 ·
2232 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

JVM的几种垃圾收集器

JVM的几种垃圾收集器Serial收集器基本原理:新生代收集器,采用标记复制算法它是一个单线程收集器,只会使用一个CPU和一条收集线程完成GC。缺陷:在于它“Stop-The-World”的收集方式。进行垃圾收集时必须暂停其他线程的所有工作优点:简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做GC反而效率更高。适用场景
原创
博文更新于 2016.05.13 ·
951 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C strpbrk 查找任意几个字符

C strpbrk 查找任意几个字符头文件string.h函数原型char *strpbrk(char const *str, char const *group);返回的是字符集合group中任意字符在str中第一次出现的位置(最左面的)。同样,函数返回的是指向此位置字符的指针。注意事项注意匹配的是group中任意一个字符,而且区分大小写。看下代码就明了了:int main(){ cha
原创
博文更新于 2016.05.13 ·
802 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C strchr strrchr查找一个字符

C strchr strrchr查找一个字符头文件string.h函数原型char *strchr(char const *str, int ch);char *strrchr(char const *str, int ch);注意事项返回值的类型注意返回的不是一个整数index,而是一个指向字符的指针。看代码:int main(){ char *string = "abcde";
原创
博文更新于 2016.05.13 ·
1252 阅读 ·
0 点赞 ·
0 评论 ·
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(const char *s1, const char *s2, size_t len);后面len可指
原创
博文更新于 2016.05.13 ·
1236 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C strcmp 字符串比较

C strcmp 字符串比较头文件string.h函数原型int strcmp(const char *s1, const char *s2);返回的是一个int。注意事项注意比较的结果是依照字典序确定的:如果 s1 < s2 ,也就是s1的字典序排在s2的前面,返回 -1如果 s1 = s2,也就是两者字典序相同,也就是为同字符串, 返回 0 如果 s1 > s2,也就是s1的字典序排在s
原创
博文更新于 2016.05.13 ·
1500 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C strcat

C strcat头文件string.h函数原型char *strcat(char *dst, const char *src);返回的是第一个参数dst的拷贝。用于拼接字符串。注意事项dst的空间约束dst必须有足够的空间保留之前已经有和要拷贝进来的字符串。正确的使用案例:#include<stdlib.h>#include<string.h>#include<stdio.h>char s
原创
博文更新于 2016.05.13 ·
933 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C strlen

C strlen 返回值注意事项基础知识头文件string.h函数原型size_t strlen(char const *string);这个size_t是在头文件stddef.h中定义的,是一个unsigned long类型。注意事项注意它的返回值,是一个无符号整数类型(可能为unsigned int 或者 unsigned long)。下面的代码就会因此产生问题:/** * 两个无符号整型相减
原创
博文更新于 2016.05.12 ·
798 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C strcpy

C strcpy头文件string.h函数原型char *strcpy(char *dst, const char *src);返回的是第一个参数dst的拷贝。注意事项dst的约束由于 dst 参数将进行修改,所以它必须是一个字符串数组或者一个指向动态分配内存的数组指针,不能是字符串常量,而且必须保证有足够的空间。代码举例:这样是可以的char *src = "***";char strin
原创
博文更新于 2016.05.12 ·
640 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C 数组基础知识分析

C 数组基础知识分析数组名含义一言以蔽之,数组名就是一个指向比其所在维度低一维的东西的指针。让我们再深入的分析一下一维数组比一维再低一维的就是元素。因此,一维数组名就是一个指向所存元素类型的指针。且其值为首元素地址。如果有 int a[10],那么这个a就是一个指向整型的指针,且指向首元素a[0],且其值等于&a[0]。多维数组比多维再低一维的还是数组。因此,多维数组就是一个指向低一维度的数组的指针
原创
博文更新于 2016.05.12 ·
717 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

HotSpot GC 具体实现关键点概要

HotSpot GC 具体实现关键点概要GC roots 枚举过程枚举过程的困难点:范围大: GC roots主要在全局性的引用(常量与静态变量)和执行上下文(如栈帧中的本地变量表)。现在程序仅仅就方法区而言就很大,程序整体体积更是不用说。如果要注意检查这些引用,如查看所有栈帧中的本地变量表,那么时间上肯定是无法接受的。必须在快照中进行:在枚举过程中,不能出现程序运行。因为这会导致GC root
原创
博文更新于 2016.05.05 ·
1808 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java 垃圾清理基础理论

Java 垃圾清理基础理论标记-清除算法基本原理先标记需要回收的对象,然后回收被标记的对象。标记过程标记过程(对象的死亡至少要经历两次标记):首先,如果发现对象从GC root出发不可达,那么就会被第一次标记并进行筛选。筛选条件是此对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被执行过了,则会被判定为“没有必要执行”。在确定对
原创
博文更新于 2016.05.05 ·
705 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C 可变参数的使用

C 可变参数的使用C中的可变参数需要使用 stdarg.h 头文件。此头文件中声明了一个类型va_list和三个函数——va_start、va_arg 和 va_end。让我们先看一个求均值函数的实现,看看C中可变参数是如何使用的。样例代码#include <stdio.h>#include <stdlib.h>#include <stdarg.h>float average(int count
原创
博文更新于 2016.05.04 ·
786 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C ADT 的实现

C ADT 的实现C也可实现ADT。主要是利用static关键字。static可将被修饰者的作用域限定到文件中,此文件以外则不可对它进行访问。笔者这里实现了一个简单的链表,可以参考下:NameList.c#include<stdlib.h>#include<stdio.h>static const int MAX_PEOPLE_NUM = 100;static char* data[MAX_PE
原创
博文更新于 2016.05.04 ·
1035 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM 方法区回收小结

JVM 方法区回收小结方法区也会发生垃圾回收,只是效率和性价比较低。回收主要分为两部分内容:废弃常量和无用的类。废弃常量的回收这与堆中对象的回收类似。以常量池的字符串为例,如果没有任何对象引用了此字符串,那么它就有可能被系统清理出常量池。废弃类的回收此类回收条件较为苛刻,需要满足如下的3点:该类所有实例已被回收,即Java堆中不存在该类的任何实例加载该类的ClassLoader已经被回收该类对
原创
博文更新于 2016.05.02 ·
1231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于指针的小杂碎

关于指针的小杂碎关于指针的一些小点,这里简单整理下间接取值(指针解引用)的含义根据指针找内容的过程被称为:间接取值 或 指针的解引用NULL与0的关系NULL在外部表现为0。为指针赋值NULL,等价于为指针赋予0。用代码验证下:int *p = NULL; printf("%d",p); // 0printf("%d", NULL == 0) // 1但是,就内部实现而言,NULL值可能并非0
原创
博文更新于 2016.05.02 ·
608 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

运算符详情表优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员
原创
博文更新于 2016.05.01 ·
788 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多