4月「掘金·日新计划」第31天
1、java和c区别
-
java比c多了一些概念性东西
-
封装,继承,多态
-
封装:属性方法+修饰符,封装为类
- 类就是,c语言中的结构体
- 构造方法,就是初始化函数
-
继承:继承类的属性方法,在这基础上添加新的
- c语言中结构体嵌套结构体
- 方法重写(参数方法名一样实现功能不一样),方法重载(方法名称一样,参数列表不一样)
- 抽象方法,抽象类(只有方法名没有方法体)
- 接口(接口强调行为,抽象方法亲缘关系)
- 内部类(类定义在另一个类内部),匿名内部类(没有名称的内部类)
-
多态:指同一个操作,可以有不同的解释,产生不同的执行结果
- 对象的上下转型,
-
-
异常,泛型
-
异常:java中对异常做了封装
- Try-catch-finally,throw、throws,自定义异常
-
泛型:即参数化类型,将类型由原来的具体的类型参数化(参数是可以传递类型进去)
-
2、编译
编译过程
- 编译分为:预处理(#开头的替换),编译(生成汇编),汇编(二进制文件),链接器(可执行目标程序)
预处理
-
宏定义、文件包含、条件编译
-
条件编译
- #ifndef #define #endif
- #if defined() #endif
#与##区别
- :把宏参数变成一个字符串; ## :把两个宏参数连接到一起
3、C语言关键字
static 关键字的作用
- 储存在静态存储区(数据段或bss)
- 信息隐藏,不同的文件中定义同名变量和同名函数
const 关键字的作用
-
对变量加以限定不能被修改,常量必须在定义的时候同时被初始化
-
const 和指针一起使用
- const int *p1; 指针指向的数据不能修改
- int const *p2;
- int *const p3; 指针只读不能修改,指向的数据可以修改
volatile 关键字作用
- 直接访问内存,跳过寄存器
- 牺牲效率,提高正确性
extern 关键字的作用
- 外部变量声明
sizeof 关键字的作用
- sizeof 在 编译阶段处理,作用为取得一个对象(数据类型或数据对象)的 长度(即占用内存的大小,以 1 字节为单位)