当前位置: 首页 > news >正文

突破编程_C++_面试(类(1))

面试题 1 :解释一下 C++ 中的类是什么,它有哪些基本特性?

C++ 中的类(class)是面向对象程序设计的基本构成单位,它是一种自定义的数据类型,用于封装数据以及操作这些数据的方法。类是创建对象的模板,它定义了对象的属性和行为。对象是根据类创建的实例。
类具有以下基本特性:
封装
封装是将数据(也称为属性或成员变量)和操作这些数据的方法(也称为成员函数或方法)结合在一起的过程。这样,数据就被隐藏或封装在类内部,只能通过类提供的方法进行访问和修改。这有助于保护数据免受外部代码的非法访问和修改,同时也提高了代码的可维护性和可重用性。
继承
继承是从已有的类(称为父类或基类)创建新类(称为子类或派生类)的过程。子类继承了父类的所有属性和方法,同时还可以定义自己的新属性和方法。这样,可以重用已有的代码,提高代码的可重用性和可扩展性。
多态
多态是指允许一个接口(或函数名)有多种实现方式。在 C++ 中,多态通常通过虚函数(virtual functions)实现。子类可以重写父类的虚函数,从而实现多态。这样,在运行时可以根据对象的实际类型调用相应的函数,提高了代码的灵活性和可扩展性。
抽象
抽象是一种隐藏具体实现细节的机制,只展示必要的信息给用户。在 C++ 中,可以通过抽象类(含有至少一个纯虚函数的类)来实现抽象。抽象类不能被实例化,只能被其他类继承。这样,可以定义一种通用的接口或行为,让子类去实现具体的细节。

总的来说,C++ 中的类是一种强大的工具,它使得代码更加模块化、可重用、可维护和可扩展。通过封装、继承、多态和抽象等特性,类可以更好地模拟现实世界中的事物和行为,从而实现更加复杂和灵活的程序设计。

面试题 2 :C++ 中的友元函数和友元类是什么?它们有什么作用?

在 C++ 中,友元(Friend)是一种特殊的机制,它允许某些非成员函数或非类成员访问类的私有(private)和保护(protected)成员。这种机制打破了数据的封装和隐藏,因此应当谨慎使用。
友元函数
友元函数是一种特殊的非成员函数,它可以访问一个类的私有成员和保护成员。要在类内部声明一个友元函数,只需在类定义中使用 friend 关键字,后面跟着函数声明。友元函数不是类的成员,但可以在其定义中访问类的私有成员。如下为样例代码:

#include <iostream>  // 定义一个类,其中包含私有成员变量和友元函数  
class MyClass 
{// 声明一个友元函数  friend void showMyClassPrivate(MyClass& obj);public:MyClass(int value) : privateData(value) {}private:int privateData; // 私有成员变量  
};// 定义友元函数  
void showMyClassPrivate(MyClass& obj) 
{// 由于是友元函数,可以直接访问 MyClass 的私有成员  std::cout << "MyClass privateData: " << obj.privateData << std::endl;
}int main() 
{MyClass myObject(1);// 不能直接访问私有成员  // std::cout << myObject.privateData << std::endl; // 这将导致编译错误  // 可以使用友元函数来访问私有成员  showMyClassPrivate(myObject);return 0;
}

在上面代码中,MyClass 有一个私有成员变量 privateData。正常情况下,外部代码无法直接访问这个私有成员。然而,代码里面声明了一个友元函数 showMyClassPrivate,并在这个函数内部访问了 MyClass 的私有成员 privateData。
当运行这个程序时,showMyClassPrivate 函数能够打印出 MyClass 实例 myObject 的私有成员 privateData 的值,尽管这个成员在正常情况下是不可访问的。
友元类
友元类是一种特殊的类,它可以访问另一个类的私有成员和保护成员。要在类内部声明一个友元类,只需在类定义中使用 friend 关键字,后面跟着类名。友元关系不具有传递性,即如果类 A 是类 B 的友元,类 B 是类 C 的友元,这并不意味着类 A 是类 C 的友元。如下为样例代码:

#include <iostream>  // 第一个类,包含私有成员变量和一个友元类声明  
class MyClass 
{// 声明一个友元类  friend class MyFriendClass;public:MyClass(int value) : privateData(value) {}private:int privateData; // 私有成员变量  
};// 友元类定义  
class MyFriendClass 
{
public:// 该函数可以访问MyClass的私有成员,因为MyFriendClass是MyClass的友元  void showMyClassPrivate(const MyClass& obj) {std::cout << "MyClass privateData: " << obj.privateData << std::endl;}
};int main() 
{MyClass myObject(1);MyFriendClass friendObject;// 不能直接访问私有成员  // std::cout << myObject.privateData << std::endl; // 这将导致编译错误 // MyFriendClass可以访问MyClass的私有成员  friendObject.showMyClassPrivate(myObject);return 0;
}

在这个例子中,MyClass 有一个私有成员变量 privateData。正常情况下,外部代码无法直接访问这个私有成员。然而,代码里面声明了一个友元类 MyFriendClass,并在这个类的成员函数中访问了 MyClass 的私有成员 privateData。
当运行这个程序时,showMyClassPrivate 函数能够打印出 MyClass 实例 myObject 的私有成员 privateData 的值,尽管这个成员在正常情况下是不可访问的。
作用
封装破坏:在某些情况下,可能需要破坏封装性以允许某些函数或类访问私有成员。例如,当操作符重载需要与类的私有成员交互时。
简化代码:在某些情况下,将函数声明为友元可以避免编写冗长的 getter 和 setter 方法。
提高性能:由于友元函数可以直接访问类的私有成员,因此可能会提高一些操作的性能。然而,这通常不是使用友元的主要原因,因为性能通常不是C++编程中的首要考虑因素。
注意事项
使用友元函数和友元类时要小心,因为它们可能会破坏封装性并导致代码难以维护。
在大多数情况下,更好的做法是使用公共接口(如 getter 和 setter 方法)来访问类的私有成员,而不是使用友元。
如果确实需要使用友元,请确保充分理解其潜在的风险和后果,并仔细考虑是否有其他更合适的替代方案。

面试题 3 :解释一下 C++ 中的静态成员变量和静态成员函数是什么,它们与普通成员变量和成员函数有什么区别?

C++ 中的静态成员变量和静态成员函数是类的特殊成员,它们与普通成员变量和成员函数的主要区别在于它们的生命周期和作用域,以及它们的共享性质。
静态成员变量
静态成员变量是类的所有对象共享的变量。这意味着,无论创建多少个类的实例,都只有一个静态成员变量的副本。静态成员变量在内存中只存储一次,而不是为每个对象分别存储。
特点
(1)生命周期: 静态成员变量的生命周期是整个程序的运行期间,而不是局限于某个对象的生命周期。
(2)作用域: 静态成员变量的作用域是在类的内部和外部都可以访问。
(3)共享性: 所有对象共享同一个静态成员变量。
(4)初始化: 静态成员变量必须在类外部进行初始化,通常是在类的实现文件中。
样例

class MyClass 
{  
public:  static int val; // 声明静态成员变量  
};  int MyClass::val = 0; // 定义并初始化静态成员变量

静态成员函数
静态成员函数属于类本身,而不是类的某个特定对象。因此,静态成员函数不能访问类的非静态成员变量和非静态成员函数,因为它们需要类的实例来访问。
特点
(1)作用域: 静态成员函数可以在类的内部和外部访问。
(2)不依赖对象: 静态成员函数不需要类的实例就可以调用。
(3)不能访问非静态成员: 静态成员函数不能直接访问类的非静态成员变量和非静态成员函数。
样例

class MyClass 
{  
public:  static void printVal() {  std::cout << "val: " << val << std::endl;  }  static int val;  
};  int MyClass::val = 0;  int main() {  MyClass::printVal(); // 调用静态成员函数,不需要对象实例  return 0;  
}

与普通成员变量和成员函数的区别
(1)生命周期和作用域: 普通成员变量和成员函数的生命周期和作用域都局限于类的某个对象。当对象被销毁时,其成员变量也会被销毁。而静态成员变量和静态成员函数在整个程序运行期间都存在,并且可以在类的外部访问。
(2)共享性: 普通成员变量是每个对象都拥有的独立副本。而静态成员变量是所有对象共享的,无论创建多少个对象,都只有一个静态成员变量的副本。
(3)访问限制: 静态成员函数不能访问类的非静态成员变量和非静态成员函数,因为它们需要类的实例来访问。而普通成员函数可以访问类的所有成员(包括静态和非静态的)。
(4)调用方式: 普通成员函数需要通过类的对象来调用,而静态成员函数可以直接通过类名来调用,不需要对象实例。

面试题 4 :解释一下 C++ 中的虚函数和纯虚函数是什么,它们有什么区别?

在 C++ 中,虚函数(Virtual Functions)和纯虚函数(Pure Virtual Functions)是面向对象编程中多态性的关键概念。它们都与类的继承和派生类重写基类中的函数有关。
虚函数(Virtual Functions)
虚函数是一种特殊的成员函数,它允许派生类重写基类中的函数。当你在基类中声明一个函数为虚函数时,任何从该基类派生的类都可以重写这个函数。在运行时,根据对象的实际类型(而不是它的声明类型)来调用正确的函数版本。这被称为动态绑定或运行时多态性。
特点
(1)声明方式: 使用 virtual 关键字声明。
(2)实现: 在基类中提供实现(函数体)。
(3)派生类重写: 派生类可以重写虚函数,也可以不重写。
(4)实例调用: 通过基类指针或引用来调用虚函数时,会调用实际对象的版本。
样例

#include <iostream>  class Base 
{
public:virtual void func() {std::cout << "Base::func()" << std::endl;}
};class Derived : public Base 
{
public:void func() override {std::cout << "Derived::func()" << std::endl;}
};int main() {Base* ptr = new Derived();ptr->func(); // 输出 "Derived::func()"  delete ptr;return 0;
}

纯虚函数(Pure Virtual Functions)
纯虚函数是一种特殊的虚函数,它在基类中没有实现(没有函数体)。纯虚函数要求所有派生类都提供实现。包含纯虚函数的类被称为抽象类,不能直接实例化。纯虚函数通常用于定义接口或定义基类中的行为,而让派生类来决定具体的实现。
特点
(1)声明方式: 使用 = 0 在函数声明后指定。
(2)实现: 在基类中没有实现(没有函数体)。
(3)派生类重写: 派生类必须重写纯虚函数。
(4)实例调用: 抽象类不能直接实例化,因此不能直接调用纯虚函数。
样例

#include <iostream>  class AbstractBase 
{
public:virtual void func() = 0; // 纯虚函数  
};class Derived : public AbstractBase 
{
public:void func() override{std::cout << "Derived::bar()" << std::endl;}
};int main() 
{AbstractBase* ptr = new Derived();ptr->func(); // 输出 "Derived::func()"  delete ptr;return 0;
}

区别
(1)实现: 虚函数在基类中有实现,而纯虚函数在基类中没有实现。
(2)派生类要求: 派生类可以选择是否重写虚函数,但必须重写纯虚函数。
(3)实例化: 包含虚函数的类可以实例化,而包含纯虚函数的类(抽象类)不能直接实例化。
(4)用途: 虚函数主要用于实现多态性,而纯虚函数主要用于定义接口和抽象基类。

面试题 5 :什么是 C++ 中的 RAII(资源获取即初始化)技术?它有什么作用?

RAII(Resource Acquisition Is Initialization)是 C++ 中的一种编程技术,也被称为资源获取即初始化。这种技术的核心思想是将资源的生命周期与对象的生命周期绑定在一起,以确保资源在不再需要时能够自动释放。
在 C++ 中,资源的概念非常广泛,可以包括内存、文件句柄、网络连接、互斥锁等等。这些资源在使用完毕后通常需要显式地释放,否则可能会导致内存泄漏、资源耗尽等问题。然而,手动管理资源的释放往往容易出错,尤其是在复杂的程序中,很容易忘记释放资源或者多次释放同一资源。
RAII 技术通过将资源的获取与对象的初始化绑定在一起,自动管理资源的释放。具体来说,当创建一个对象时,该对象的构造函数会负责获取所需的资源;当对象离开其作用域或被销毁时,其析构函数会自动释放这些资源。这样,资源的释放就与对象的生命周期紧密地联系在一起,不再需要程序员手动管理。
RAII 技术的主要作用包括:
(1)简化资源管理:通过自动管理资源的释放,程序员无需关心资源的生命周期,从而降低了出错的可能性。
(1)防止资源泄漏:由于资源的释放与对象的生命周期绑定,当对象被销毁时,其析构函数会自动释放资源,从而避免了资源泄漏的问题。
(1)提高代码的可读性和可维护性:通过将对资源的获取和释放封装在对象的构造函数和析构函数中,代码更加简洁和清晰,也更容易理解和维护。

在 C++ 中,许多标准库和框架都采用了 RAII 技术来管理资源,例如智能指针(如 std::unique_ptr、std::shared_ptr 等)、文件流(如 std::ifstream、std::ofstream 等)、锁(如 std::mutex、std::lock_guard 等)等。这些类和对象都使用了 RAII 技术来自动管理资源的获取和释放。

相关文章:

突破编程_C++_面试(类(1))

面试题 1 &#xff1a;解释一下 C 中的类是什么&#xff0c;它有哪些基本特性&#xff1f; C 中的类&#xff08;class&#xff09;是面向对象程序设计的基本构成单位&#xff0c;它是一种自定义的数据类型&#xff0c;用于封装数据以及操作这些数据的方法。类是创建对象的模板…...

vue项目使用vue2-org-tree

实现方式 安装依赖 npm i vue2-org-tree使用的vue页面引入 <template><div class"container"><div class"oTree" ><vue2-org-tree name"test":data"data":horizontal"horizontal":collapsable"…...

Vue30 自定义指令 函数式 对象式

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>自定义指令</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 需求1&…...

JAVA高并发——单例模式和不变模式

文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多&#xff0c;因此我强烈建议大家了解一些常见的设计方法。就好像练习武术&#xff0c;一招一式都是要经过学习的。如果自己胡乱打&#xff0c;效果不见得好。前人会总结一些武术套路&#xff0c;对…...

RabbitMQ(一):消息队列MQ

目录 1 消息队列MQ1.1 MQ简介1、什么是MQ2、MQ的优势流量削峰应用解耦异常处理数据分发分布式事务 3、消息中间件的弊端4、常用的MQ 1.2 MQ中几个基本概念1.3 MQ的通信模式1.4 消息的发布策略1.5 常用消息中间件协议1、AMQP协议2、MQTT协议3、OpenMessage协议4、kafaka协议 1 消…...

HarmonyOS—使用预览器查看应用/服务效果

DevEco Studio为开发者提供了UI界面预览功能&#xff0c;可以查看应用/服务的UI界面效果&#xff0c;方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览&#xff0c;只需要将开发的源代码进行保存&#xff0c;就可以通过预览器实时查看应用/服务运行效果&#xff0c…...

大项目中,某个cpp文件读取所在包路径的方法

在一个比较大的C项目中&#xff0c;我们有很多包&#xff0c;每个包都有一个自己的src、include、CMakeLists.txt和其它文件&#xff0c;比如以下文件结构&#xff1a; project- pkg1- datas- data.json- src- xxx1.cpp- include- xxx1.h - CMakeLists.txt- pkg2- src- xxx2.…...

gem5学习(25):用于异构SoC的片上网络模型——Garnet2.0

目录 一、Invocation 二、Configuration 三、Topology 四、Routing 五、Flow Control 六、Router Microarchitecture 七、Buffer Management 八、Lifecycle of a Network Traversal 九、Running Garnet2.0 with Synthetic Traffic 官网教程&#xff1a;gem5: Garnet 2…...

康威生命游戏

康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则&#xff1a; 细胞有两种状态&#xff0c;存活或死亡&#xff0c;每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞&#xff1a; 当周围的细胞过少(<2)或…...

vscode与vue环境配置

一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理)&#xff0c;此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号&#xff1a; 配置系统变量 因为在执…...

Linux的ACL权限以及特殊位和隐藏属性

前言&#xff1a; ACL是什么&#xff1f; ACL&#xff08;Access Control List&#xff09;是一种权限控制机制&#xff0c;用于在Linux系统中对文件和目录进行细粒度的访问控制。传统的Linux权限控制机制基于所有者、所属组和其他用户的三个权限类别&#xff08;读、写、执行…...

使用openai-whisper实现语音转文字

使用openai-whisper实现语音转文字 1 安装依赖 1.1 Windows下安装ffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 # ffmpeg官网 https://ffm…...

C++模板为什么不能声明和定义分离

首先我们要直到C程序运行需要进行的四个阶段。 预处理->编译->汇编->链接 编译&#xff1a;对语法语义分析&#xff0c;分析无误生成汇编&#xff0c;头文件不参加编译&#xff0c;多个源文件是分开单独编译的。 链接&#xff1a;将多个obj文件链接合成一个&#x…...

啊丢的刷题记录手册

1.洛谷题P1923 求第k小的数 题目描述 输入 n&#xff08;1≤n<5000000 且 n 为奇数&#xff09;个数字ai​&#xff08;1≤ai​<109&#xff09;&#xff0c;输出这些数字的第 k 小的数。最小的数是第 0 小。 请尽量不要使用 nth_element 来写本题&#xff0c;因为本题…...

用nginx正向代理https网站

目录 1. 缘起2. 部署nginx3. 测试3.1 http测试3.2 https测试4 给centos设置代理访问外网 1. 缘起 最近碰到了一个麻烦事情&#xff0c;就是公司的centos测试服务器放在内网环境&#xff0c;而且不能直接上外网&#xff0c;导致无法通过yum安装软件&#xff0c;非常捉急。   幸…...

面向对象设计模式

一、单例 一个类只能创建唯一一个对象 利用限制构造、static完成 二、工厂模式 优势&#xff1a;规范接口&#xff08;纯虚函数&#xff09;&#xff1b;实现多态&#xff08;虚函数表&#xff09;&#xff1b;继承 1、简单工厂 一个工厂创建所有产品。 返回基类指针可…...

人工智能_CPU微调ChatGLM大模型_使用P-Tuning v2进行大模型微调_007_微调_002---人工智能工作笔记0102

这里我们先试着训练一下,我们用官方提供的训练数据进行训练. 也没有说使用CPU可以进行微调,但是我们先执行一下试试: https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e 可以看到说INT4量化级别最低需要7GB显存可以启动微调,但是 并没有说CPU可以进行微调.我们…...

Android自编译Pixel3内核加入KernelSU

背景 让Pixel3 AOSP Android10 4.9内核用上Kernel SU 环境: Ubuntu 18.04 vm aosp10r2 移植参考官方,和github项目 Commits OnlyTomInSecond/android_kernel_xiaomi_sdm845 (github.com) 这个项目是 LineageOS/android_kernel_xiaomi_sdm845 编译的前提 已经有完整…...

Go 数据库编程精粹:database/sql 实用技巧解析

Go 数据库编程精粹&#xff1a;database/sql 实用技巧解析 简介database/sql 库的基础知识核心概念连接池驱动事务 环境配置 建立数据库连接连接到数据库示例&#xff1a;连接 MySQL 数据库连接池管理 执行查询和处理结果基本查询执行多行查询执行单行查询 结果处理处理多行结果…...

AI-Gateway:一款整合了OpenAI、Anthropic、LLama2等大语言模型的统一API接口

关于AI-Gateway AI-Gateway是一款针对大语言模型的统一API接口&#xff0c;该接口可以用在应用程序和托管的大语言模型&#xff08;LLM&#xff09;之间&#xff0c;该工具可以允许我们通过一个统一的API接口将API请求转发给OpenAI、Anthropic、Mistral、LLama2、Anyscale、Go…...

Android 广播的基本概念

一.广播简介 Broadcast是安卓四大组件之一。安卓为了方便进行系统级别的消息通知&#xff0c;引入了一套广播消息机制。打个比方&#xff0c;记得原来在上课的时候&#xff0c;每个班级的教室里都会装有一个喇叭&#xff0c;这些喇叭都是接入到学校的广播室的&#xff0c;一旦…...

【Docker实操】部署php项目

概述 最终达成的容器部署结构和原理如下图&#xff1a; 一、获取nginx、php官方镜像 docker pull nginx //拉取nginx官方镜像 docker pull php:7.4-fpm //拉取php官方镜像需要获取其他可用的php版本&#xff0c;可以上【docker hub】搜索【php】&#xff0c;所有的【xxx-fp…...

多线程-初阶

1. 认识线程&#xff08; Thread &#xff09; 1.1 概念 1) 线程是什么 一个线程就是一个 " 执行流 ". 每个线程之间都可以按照顺讯执行自己的代码 . 多个线程之间 " 同时 " 执行 着多份代码 . 还是回到我们之前的银行的例子中。之前我们主要描…...

Object和Function是函数,函数都有一个prototype属性

Object 和 Function 都是 JavaScript 自带的函数对象 在 JavaScript 中&#xff0c;万物皆对象&#xff0c;你要一个吗&#xff1f;new Object() 啊&#xff01; 当然&#xff0c;就好比同样为人&#xff0c;也区分普通人和天才。 对象也是有分类的&#xff0c;分为 普通对象…...

stm32利用CubeMX按键控制数码管加减数

首先画电路图&#xff1a; 接下来配置CubeMX&#xff1a; 设置好后生成MDK工程文件&#xff1a; 用keil打开工程&#xff1a; 添加部分代码&#xff1a; /* USER CODE BEGIN Includes */ uint16_t duan[]{0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; uint1…...

前端页面生成条形码,借助layui打印标签

借助JsBarcode生成条形码 官网&#xff1a;https://lindell.me/JsBarcode/ github: https://github.com/lindell/JsBarcode <div class"table-div" style"display: block;width: 300px; height: 241px; margin: auto;"><table border"1&quo…...

第1~8章 综合复习

1. 重置root密码 1. 重启服务器&#xff08;虚拟机&#xff09;2. 快速选择第二项&#xff0c;然后按 e 键3. 在linux这一行的最后加上一个空格&#xff0c;然后输入 rd.break&#xff0c;然后按 ctrl x 来重启服务4. 在提示符所在位置输入 mount -o remount,rw /sysroot5. 在…...

转运机器人,AGV底盘小车:打造高效、精准的汽车电子生产线

为了满足日益增长的市场需求&#xff0c;保持行业领先地位&#xff0c;某汽车行业电子产品企业引入富唯智能AMR智能搬运机器人及其智能物流解决方案&#xff0c;采用自动化运输措施优化生产节拍和搬运效率&#xff0c;企业生产效率得到显著提升。 项目背景&#xff1a; 1、工厂…...

Spring Boot 的参数校验方案

1、前言 在平时的开发工作中,我们通常需要对接口进行参数格式验证。当参数个数较少(个数小于3)时,可以使用if ... else ...手动进行参数验证。当参数个数大于3个时,使用if ... else ...进行参数验证就会让代码显得臃肿,这个时候推荐使用注解来进行参数验证。 2、常用注…...

第N3周:Pytorch文本分类入门

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/rbOOmire8OocQ90QM78DRA) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** import torch import…...

游学做的好的网站/哪里有免费的网站推广

本文转载自&#xff1a;灵雀云公众号3月12日&#xff0c;Linux 基金会旗下CDF&#xff08;持续交付基金会&#xff09;宣告成立3月12日&#xff0c;在加州Half Moon Bay举行的开源领导者峰会&#xff08;Open Leadership Summit 2019 &#xff09;上&#xff0c;CDF&#xff08…...

景观设计公司排名前十强/百度排名优化咨询电话

目录框架与类库一、重用技术二、框架与类库的主要差别框架与类库 一、重用技术 在区别二者之前&#xff0c;首先需要了解软件开发中的重用&#xff08;Reuse&#xff09;技术。 重用技术在软件开发中重要性 IT产业&#xff1a; 减小开发的工作量 缩短软件开发周期&#xff0…...

网站建设及规划方案/百度浏览器网页

亲密---我感觉,可以用和人和事处的时间长短,并用心 难?不去做? 前作业: 1.什么是微服务 将整个项目&#xff0c;按照功能拆分&#xff0c;拆分后能够更容易地部署&#xff0c;扩展&#xff0c;没有技术壁垒 2.微服务用什么优势&#xff0c;go或者py去做&#xff0c;怎么实现 …...

群晖 搭建两个wordpress/seo网络推广外包公司

Spring AOP 提供了 5 种类型的通知&#xff0c;它们分别是 Before Advice&#xff08;前置通知&#xff09;、After Returning Advice&#xff08;后置通知&#xff09;、Interception Around Advice&#xff08;周围通知)、Throws Advice&#xff08;异常通知&#xff09;和 I…...

佛山做网站的哪个好/seo外链优化培训

2019独角兽企业重金招聘Python工程师标准>>> 首先自然要安装Tokyo Cabinet Sh代码 tar zxvf tokyocabinet-1.4.28.tar.gz cd tokyocabinet-1.4.28/ ./configure make make install cd ../ 以下是对Tokyo Cabinet 的操作&#xff0c;具体解释可以看代码—代码…...

班级网站中个人简介怎么做/电脑培训

PROXMOX6.3.6 更改机器名称 参考链接 https://www.baidu.com/link?urlljbh9wHn6YRho6nxxBdbydXNZ3vDERHVZF98SqkDNxJagu4NCtTfvnz5NilOiqqs-peS57O0v5z1t7r2-Zy2dhGQ7D5oIilOM6guFO9uTIa&wd&eqida61791420001d917000000066083e127 参考这个链接准备不停机修改主机名…...