C和C++和java的区别?
①c是面向过程的语言,cpp和java是面向对象的语言。这是他们最本质的区别。
②C和cpp是直接编译运行,java是在虚拟机中运行的。
③指针的方面,c和c++可以直接用指针来访问内存,java没有指针。
C++里的结构体和类的区别:
结构体默认访问权限全是public
类访问权限是public 、private、protected,默认访问权限是private
Stl含义:
标准模板库Standard Template Library是容器和算法的集合
eg:Vector(向量)、stack(栈)、set(集合)、queue(队列)、map(哈希表)
指针和引用的区别?
①指针是存储变量地址的变量。
②引用在函数传参的时候用到。引用本身也是地址,在传递的时候不是值,传的是地址。
面向对象的三大特性
封装:是把成员变量和成员函数封装进一个类并赋予它一些权限。
继承:首先要有一个基类,然后派生类继承基类,派生类能继承基类的成员变量和成员函数。
多态:多态就是同一个接口,使用不同的实例而执行不同操作。简单的说,一个接口,多种实现方式。Eg:函数重载。
编译一个程序内存分为哪两部分?
堆内存和栈内存。
关键字和标识符的区别?
标识符是变量名。比如a、b、c…
关键字是new、delete、int、break…
运算符重载和函数重载的区别?
运算符本身也是函数,运算符包涵单目和双目运算符。
如果运算符重载的话需要参数数量的问题。
重载和重写?
++重写(override覆盖)++:如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写。
++重载++:如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。
重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
全局变量(global variable)和局部变量(local variable)的区别?
- 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
- 内存存储方式不同:全局变量存储在堆区中,局部变量存储在栈区
- 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
- 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
构造函数和析构函数是干什么的?
构造:对象实例化的时候自动运行的函数,进行对象初始化。
析构:撤销对象的时候会自动运行的函数,可以是释放