您的位置:首页 > 其它

malloc,指针,throw的总结

2015-05-30 15:31 218 查看
1)关于malloc函数的笔记:

1、当一个程序另外需要一些内存时,它就调用malloc()函数,malloc从内存池中提取一块合适的内存,并向该程序返回一个指向这块内存的指针。这块内存此时并没有以任何方式进行初始化。(是指针指向的内存没有初始化,不是指针没有初始化。)

2、当一块以前分配的内存不再使用时,调用free函数把它归还给内存池以供以后之需。

3、malloc所分配的是一块连续的内存。

4、对每个从malloc返回的指针都进行检查,确保它并非NULL是非常重要的!!!!!

5、malloc与calloc之间的主要区别是后者在返回指向内存的指针之前把内存初始化为0(对于指针是NULL)。

2)关于指针的笔记:

1、所有的基本数据类型最终都被解释成一串二进制码,也就是说,当给定一串二进制码时,它可能被映射成int,也可能被映射成char,float,double等数据类型。

2、声明一个指针后,操作系统并不会为它分配空间。所以在访问指针前必须初始化。

3、如果知道指针被初始化为什么地址,就把它初始化为该地址,否则就把它初始化为NULL。风格良好的程序会在指针解引用之前对它进行检查,这种初始化策略可以减少大量的调试时间。

4、左值表示存储在计算机内存的对象,左值相当于地址值。右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值,右值相当于数据值。

5、&a只能做右值。

6、定义char *string;则表达式 *string++
执行过程:(1)++操作符产生string的一份拷贝(2)然后++操作符增加string的值(3)最后在string拷贝上执行间接访问操作。

这个表达式经常用在循环中 !note:++操作符优先级高于*

7、指针数组以一个NULL指针结束。

**8、**p为一个指针,p+1 (指针与整数加法)的结果与类型无关。若p为int,则p增加一个int即四个字节,若p为char,则p增加一个char即一个字节

3)throw:

如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象。

throws和throw的区别(面试题)

throws

用在方法声明后面,跟的是异常类名

可以跟多个异常类名,用逗号隔开

表示抛出异常,由该方法的调用者来处理

throws表示出现异常的一种可能性,并不一定会发生这些异常

throw

用在方法体内,跟的是异常对象名

只能抛出一个异常对象名

表示抛出异常,由方法体内的语句处理

throw则是抛出了异常,执行throw则一定抛出了某种异常
源代码:

[java] view
plaincopy

public class Throws_Throw {

public static void main(String[] args) {

// method();//调用此方法没必要try-catch因为抛得是运行时期的异常

try {

method2();//调用此方法必须要try-catch因为抛得的编译器

} catch (Exception e) {

e.printStackTrace();

}

}

public static void method() {

int a = 10;

int b = 0;

if (b == 0) {

throw new ArithmeticException();

} else {

System.out.println(a / b);

}

}

public static void method2() throws Exception {

int a = 10;

int b = 0;

if (b == 0) {

throw new Exception();

} else {

System.out.println(a / b);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: