malloc,指针,throw的总结

来源:互联网 发布:淘宝买家信息收集器 编辑:程序博客网 时间:2024/06/07 01:40
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
  1. public class Throws_Throw {  
  2.     public static void main(String[] args) {  
  3.         // method();//调用此方法没必要try-catch因为抛得是运行时期的异常  
  4.           
  5.         try {  
  6.             method2();//调用此方法必须要try-catch因为抛得的编译器  
  7.         } catch (Exception e) {  
  8.             e.printStackTrace();  
  9.         }  
  10.     }  
  11.   
  12.     public static void method() {  
  13.         int a = 10;  
  14.         int b = 0;  
  15.         if (b == 0) {  
  16.             throw new ArithmeticException();  
  17.         } else {  
  18.             System.out.println(a / b);  
  19.         }  
  20.     }  
  21.   
  22.     public static void method2() throws Exception {  
  23.         int a = 10;  
  24.         int b = 0;  
  25.         if (b == 0) {  
  26.             throw new Exception();  
  27.         } else {  
  28.             System.out.println(a / b);  
  29.         }  
  30.     }  
  31. }  

0 0
原创粉丝点击