系统环境: JDK1.7 HashMap的基本结构:数组 + 链表。主数组不存储实际的数据,存储的是链表首地址。 成员变量 Entry是HashMap中的一个静态内部类 构造方法 put方法分析 其他方法相对简单 就不整理了。 整理自《http://blog.csdn.net/zw0283/arti ...
分类:
其他好文 时间:
2017-07-13 14:26:09
阅读次数:
170
data, keil调试(对debug用处极大), 关于c语言类型转换 C的一些细节: ()&&()先计算前面若为0,后面不执行 a--先用后减 --a先减再用 char *p=“abc”将指针指向字符串首地址 int *p=(int *)0x123456789 数组初始化,所附数值个数小于数组长度 ...
分类:
其他好文 时间:
2017-07-01 12:44:33
阅读次数:
192
String一、构造方式两种构造方式Stringstr1="abc";
Stringstr2=newString("abc");2.两种比较方式==基本数据类型,比较大小;引用数据类型,比较栈中存储的堆中开辟的地址的首地址是否相同equals仅限于引用数据类型;对于Object类型数据,功能同==比较的是内存空间的地址,其他..
分类:
其他好文 时间:
2017-06-26 10:18:26
阅读次数:
156
总能够网上搜到这样的,关于结构体sizeof的答案,然而,经过这个简单的实验以后,发现gcc5.3编译的结果并非如此。 二、准则 其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则: 1. 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2. 结构体每个成员相对于结构体首地址 ...
分类:
其他好文 时间:
2017-06-22 15:14:42
阅读次数:
165
对于二维数组和二维指针的内存的分配 这里首选说一下一维指针和一维数组的内存分配情况。 一维: 数组:形如int a[5];这里定义了一个一维数组a,并且数组的元素个数是5,这里的a是这五个元素的整体表示,也就是通过a我们能找到这五个元素。注意:a是代表数组第一个元素的首地址。&a是代表数组的地址,虽 ...
分类:
编程语言 时间:
2017-06-20 22:15:55
阅读次数:
214
void* 表示空指针。空指针不能直接使用,比如,指针的加减法操作(由于不知道类型,无法确定偏移的大小)。某些情况下。不知道指针的类型,先用void*来取代,依据须要再强制转换成须要的指针类型使用。 比方malloc函数,它仅仅是申请了一块堆内存,并将首地址返回,可是它根本就不知道调用者会用什么指针 ...
分类:
其他好文 时间:
2017-06-11 22:14:36
阅读次数:
127
1.内存管理原理的介绍 1.1C的内存管理 char *p = (char *)malloc(100*sizeof (char)); 这是C的动态内存分配,我们手动跟系统申请了100个字节的内存;或者说系统在堆里开辟了100个字节的空间,并将这个空间的首地址返回给指针变量p。 strcpy(p,"H ...
分类:
编程语言 时间:
2017-06-09 20:23:08
阅读次数:
140
数组与指针。 传首地址过去,然后通过地址输出数组元素。 1、一维数组 2、二维数组: ...
分类:
编程语言 时间:
2017-06-09 00:44:58
阅读次数:
506
此次博客是转载某位博主的文章,不过现在找不到了,所以先声明一下。 先贴一段代码: 结果: 字符串常量OK 区别分析: 字符数组和字符串常量的区别,本质区别:前者在栈上分配空间,后者存储在静态存储区等。 这里 str_2是指针, 指向”Crazy2″这个字符串常量的内存首地址, 而str_1是在栈里分 ...
分类:
编程语言 时间:
2017-06-05 20:26:25
阅读次数:
128
#include<stdio.h> void main() { int a[3]={1,3,5};//一维数组 int *num[3]={&a[0],&a[1],&a[2]};//指向数组长度为3的一维数组的指针数组 int **p;//指向指针的指针 int i; p=num;//把num的首地址 ...
分类:
编程语言 时间:
2017-06-02 15:41:26
阅读次数:
156