1.c++中值传递和引用传递的区别
值传递函数栈帧里面的值是copy 实参的值
引用传递函数栈帧的值是引用变量的地址,会通过间接寻址操作实参
什么时候用引用传递,什么时候用值传递
2.node.js和npm
Node.js 和 Express.js 专为 Web 应用设计,对于处理 HTTP 请求和构建 API 非常高效。前端和后端都可以使用 JavaScript,简化了开发流程,减少了团队学习成本
3.费曼学习法
4.MYSQL的存储引擎有哪些
5.C语言与C++语言的区别
- C面向过程主要针对函数过程开发,C++为多范式语言
- C不支持函数重载,不支持继承。C++支持函数重载函数重载指有多个同名函数,但它们的参数列表是不同的。这种情况是允许的
void Print(string s,int i){
std::cout<<"s"<<endl;
std::cin>>i;
}
void Print(int i,char c){
std::cout<<i+4<<"这是{i}+4的结果"<<ednl;
std::cout<<c;
}
class animal
{
public:
string name;
string kind;//种属
protected:
float age;
private:
int id;
}
class cat : public animal
{
void GetAnimal()
{
name="猫"
kind="食肉类猫科"
}
void getage()
{
std::cout<<age<<endl'
}
}
void main()
{
cat c;
std::cout<<c.name<<c.kind;
c.getage();
}
可以尝试图形体积的多态例题
构造是什么
析构是指析构函数是特殊的类成员函数,与构造函数作用相反,用于在对象生命周期结束时执行清理工作。当对象结束其生命周期(如离开作用域或被delete删除)时,系统会自动调用析构函数。
使用析构函数可以避免资源泄漏,实现自动资源管理。在多态基类中,析构函数应声明为虚函数,以确保通过基类指针删除派生类对象时能正确调用派生类的析构函数。
3.C++支持模板,支持静态与动态形式的多态
多态指子类继承基类的虚函数
class act{
pubilc:
virtual void actr() const{
cout<<"动作游戏"<<endl;
}
class arpg{
pubilc:
void actr() const override{
cout<<" 动作角色扮演"<<endl;
}
class hsact{
public:
void actr() const override{
cout<<"高速动作游戏";
}
}
void getact(cosnt act& actptr)
{
actptr.actr();
}
void main(){
getact(arpg);
getact(act);
getact(hsact);
}
4.C++支持用new和delete操作符,还有智能指针来动态管理内存
6.MYSQL的存储引擎有哪些,他们有什么区别
- InnoDB提供高并发性能,适用于高负载的OLTP应用--重点
- MyISAM适合读取多,更新少的场景,如数据仓库--重点
- MEMORY适用于临时数据存储或快速缓存
- NDB支持高可用性和数据分布,适合大规模分布式应用
- ARCHIVE不支持索引,适合日志数据存储
| 事务锁 | 行级锁 | 表级锁 |
|---|---|---|
| 通常在delete,update,insert中自动加锁.确保事务的原子性和隔离性 | 对整行数据加锁开销大,可能发生锁死,需要预防机制分为读写锁 | 锁定粒度最小的锁直接对整张表锁死,开销小分为共享读锁和锁死写锁 |
B+树:
事务:
外键: