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

C++11 面试题整理

C++面试题

1 菱形继承

2 多态

多态实现原理:

静态多态
动态多态

静态多态:
依赖函数重载,编译期确定。
函数重载:允许在同一作用于内声明多个功能类似的同名函数,函数列表不同。注意:不能仅通过返回值类型确定重载(函数模板也是其中之一)。

    原理:1 函数名修饰;2 编译过程:预编译 把头文件当中的函数声明拷贝到源文件,避免编译过程中的语法分析找不到函数定义* 编译 语法分析,同时进行符号汇总(函数名)* 汇编 生成函数名到函数地址的映射,方便通过函数名找到函数定义位置链接 将多个文件中的符号表汇总合并objdump -t *.o // _Zn + 类长度 + 类名 + 函数名长度 + 函数名 + E + 类型首字母

动态多态:
虚函数重写,运行期确定
在基类的函数名前加virtual关键字,在子类中重写 override
运行时将根据对象的类型调用相应的函数
如果对象的类型是基类,则调用基类函数;反之,若是派生类,则调用派生类函数

原理:早绑定:编译期已确定对象调用的函数地址晚绑定:若类使用virtual函数,则会为类生成虚函数表(一维数组,存放虚函数地址),类对象构造时会初始化该虚表指针;虚函数表指针在构造时初始化

3 override/final

c++11引入这两个关键字

原因:
虚函数重写
不能阻止某个虚函数进一步重写
本意写一个心函数,错误重写基类虚函数(子类中virtual关键字可省略)
本意重写基类虚函数,但是签名不一致,在子类中重新构建了一个新的虚函数

类继承不能阻止某个类进一步派生

override
指定子类一个虚函数复写基类的一个虚函数
保证该重写的虚函数与基类的虚函数具有相同的签名

final
指定某个虚函数不能在派生类中被覆盖,或者某个类不能被派生
阻止类进一步派生
阻止虚函数进一步重写

4 类型推导

类型:
模板方法中模板参数类型的推导
auto decltype (都是c++11引入,其中auto的类型推导是c++引入)

原因:
c++是强类型语言
编译器来处理类型推导
提升语言的编码效率

关键字:
auto
原理:用于推导变量的类型,通过强制声明一个变量的初始值,编译器会通过初始值进行推导类型。
规则:变量必须在定义时初始化;如果用auto定义多个变量,那么这些变量必须为同一类型;类型推导时会丢失cv语义/&;
需要保留&/cv,使用const & / const auto
万能引用 auto&&, 根据初始值的属性来判断左值引用/右值引用
auto不能推导数组类型,会得到指针类型
auto可以推导函数返回值类型(c++14)

    应用:尽量使用auto声明变量,除非影响到可读性使用容器时,名字较长,使用auto更方便匿名函数返回值模板函数中可以节约模板参数类型延伸:typeid会丢失顶层const;typeid只有在虚表查找时才会有运行时开销,否则都是在编译阶段完成decltype原理:用于推导表达式的类型,只分析表达式类型而不参与运算规则:exp是普通表达式,推导表达式类型exp是函数调用,推导函数返回值类型exp是左值引用,推导出左值引用应用:范型编程

5 function/lambda/bind

function
类模板
一个抽象了函数参数以及函数返回值的类模板

    抽象方式:将任意函数包装成一个对象,该对象可以保存/传递/复制;动态绑定,只需要修改该对象(赋值不同的function对象),实现类似多态的效果用途:保存普通函数,类的静态成员数据;保存仿函数;保存类成员函数;保存lambda表达式
function<void(CHello *, int)> f = &CHello::hello;

仿函数(函数对象)
重载了操作符’()'的类

class Hello {void operator()(int count) {i += count;cout << "Hello " << i << endl;}int i;
};
function<void(int)> f = Hello();
f(3);
特征:可以有状态,通过成员变量进行存储;有状态的函数对象成为闭包

lambda表达式
一种方便创建匿名函数对象的语法糖

    int i = 0;// auto f_hello = [i]() mutable -> void { ++i; cout << "lambda i:" << i << endl;}; // 未修改外部变量,闭包auto f_hello = [&i]() { ++i; cout << "lambda i:" << i << endl;}; // 修改外部变量f_hello();f_hello();cout << "global i:" << i << endl;
构成:捕获列表[]值捕获默认只读,不能修改mutable可读可写,并不会修改外部变量的值引用捕获可读可写,修改外部变量的值本质:外部变量将转变为类的成员变量参数列表()指定返回值->可省略,因为有类型推导函数体{}原理编译时,将lambda表达式转变为一个函数对象根据lambda参数列表重载operator()

bind
用来通过绑定函数以及函数参数的方式生成函数对象的模板函数
提供占位符,实现灵活的绑定

特征:绑定函数以及函数参数 构成一个函数对象(闭包)允许修改参数顺序部分参数可设置固定值(丢弃多余参数)
auto f_bind = bind(&bind_func, 1, 2); // 函数名取地址auto f_class_func = bind(&CHello::hello, &obj, 1000);auto f_placement = bind(&CHello::hello, &obj, placeholders::_1);

总结:
lambda和bind生成一个函数对象
function用来描述函数对象的类型;
lambda用来生成匿名函数,即函数对象(可以访问外部变量的匿名函数);
bind也是用来生成函数对象(函数和参数进行绑定生成函数对象);

6 继承下的构造函数和析构函数执行顺序

继承下,构造函数依照依赖链,从上往下构造;析构函数从下向上析构

单继承
成员类按照顺序构造,按相反顺序析构
类的构造依赖成员类的构造,基类比成员类依赖性更强

多继承
成员类按照顺序构造,按相反顺序析构
类的构造依赖成员类的构造,基类比成员类依赖性更强
多继承中基类按声明顺序构造,按相反顺序析构

7 虚函数表和虚函数表指针的创建时机

虚函数表的创建时机
编译器发现类中包含virtual关键字修饰的函数,虚函数表的内容在编译期已经生成(.o文件)
存放于全局数据区只读数据段
虚函数表中存放虚函数的地址的数组

虚函数表指针的创建时机
对象构造时,在构造函数中将虚函数表的地址赋值给对象vptr
如果没有构造函数,则编译器为类生成默认构造函数,为类对象初始化vptr
继承下,虚函数表指针赋值过程:先是基类赋值,再是子类赋值(覆盖行为)

8 虚析构函数作用

在继承下,为了使子类析构函数能够得到正常调用,需要将基类的析构函数设置为虚析构函数

使用场景:
子类对喜爱嗯指针赋值给基类指针,在调用析构函数时,子类对象的析构函数得不到调用

设计原因:
在c++看来,我们设计某个类,不一定是基类,如果是基类,应该手动将基类的析构函数设置为虚函数;
设置虚析构函数是有代价的,编译器会为类生成虚函数表,每个对象都需要持有vptr

9 面向对象三大特征

封装
目的:隐藏实现细节,实现模块化
特性:
访问权限
public 对所有对象开放
protected 对子类开放
private 只对自己开放;使用友元类打破private权限

继承
目的:无需修改原有类的情况下,实现功能扩展
特性:
权限继承
public继承 基类成员权限保持
protected继承 基类成员public/protected变为protected
private继承 基类成员public/protected/private都变为private

    使用using修改基类成员在子类中的权限比如:在public中using data = A::c;多继承接口继承纯虚函数

多态
目的:一个接口多种形态,通过实现接口重用,增强可扩展性
特性:
静态多态: 函数重载
动态多态: 通过虚函数重写

10 动态库与静态库

动态库与静态库都是先生成.o文件

静态库编译

ar rcs target.a *.o # r:replace c:grade s:suchg++ -static main.cpp -o static_target -L./ -lapi -I./ # -lapi = libapi.a

动态库编译

g++ -shared -fPIC -o target.so *.og++ main.cpp -o dynamic_target -L./ -lapi -I./ # -lapi = libapi.so

静态编译产物 > 动态编译产物 # 动态编译未全部装载

动态编译依赖LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[new_path]

11 智能指针

指针管理的困境
资源释放了,但指针未置空
指针悬挂 -> 一个/多个指针指向同一资源
踩内存

未释放资源 内存泄漏重复释放资源coredump错误使用未初始化指针野指针

解决方案
智能指针,利用RAII思想自动化管理指针指向的动态资源的释放(举例:mutex mtx; mtx.lock(); mtx.unlock();)
RAII,利用对象的生命周期管理资源
智能指针利用构造/析构函数来管理资源

智能指针
shared_ptr
解决指针悬挂问题
语义:共享所有权
资源无明确拥有者
原理:引用计数,由最后一个对象释放资源
场景:
容器中管理指针 -> vector<shared_ptr<T>> vec;
资源通过函数传递
使用规范:
使用shared_ptr管理动态资源时,不要使用原来的裸指针
构造智能指针时,不要暴露裸指针;
尽量使用make_shared构造智能指针;
不要使用int *p = sp.get();;
不要使用一个指针构造多个智能指针对象;
不要用类对象指针this作为shared_ptr返回
不能暴露裸指针

// 不推荐用法
int *p = new int();
shared_ptr<int> sp = shared_ptr<int>(p);// 不太推荐用法
shared_ptr<int> sp = shared_ptr<int>(new int);// 推荐用法
shared_ptr<int> sp = make_shared<int>();// 不应该使用的方式
class T {
public:// 违反条款:不应该使用一个指针构造多个智能指针对象shared_ptr<T> self() {return this; // return shared_ptr<T>(this); 也不应该使用}
};// 改进方案,可用
class T : public enable_shared_from_this<T> {
public:shared_ptr<T> self() {return shared_from_this();}
};
weak_ptr辅助shared_ptr,用来解决shared_ptr循环引用,原因是弱引用不占用强引用类型
class A {
public:~A() {cout << "A deconstructor" << endl;}// shared_ptr<B> spb; 问题写法weak_ptr<B> spb;
};class B {
public:~B() {cout << "B deconstructor" << endl;}// shared_ptr<A> spa; // 问题写法weak_ptr<A> spa;
};int main()
{// 循环引用shared_ptr<A> sp1 = make_shared<A>();shared_ptr<B> sp2 = make_shared<B>();sp1->spb = sp2;sp2->spa = sp1;cout << "A.use_count(): "<< sp1.use_count() << " B.use_count(): " << sp2.use_count() << endl;return 0;
}
unique_ptr语义:独享所有权没有拷贝语义,仅提供移动语义明确某个对象只有一个拥有者场景使用规范:不支持拷贝,但可以从函数中返回一个unique_ptr -> 编译器优化;编译器优化关闭情况下,如果有移动构造,调用移动构造;如果有拷贝构造,调用拷贝构造;没有拷贝构造,返错;make_unique (c++14)
// 可用
unique_ptr<T> get_unique() {unique_ptr<T> up;return up;
}

12 c++11用过的特性

考察思路
回答问题的层次
学习总结的思路

语法糖
关键字
auto / decltype
nullptr
以往用NULL,它是0(int)
nullptr是一个具体的空指针,会去匹配空指针类型的函数参数
final / override
在继承中
constexpr
让编译器协助求值

语法基于范围的for循环function函数对象bindlambda目的:使代码更便捷/严谨,让编译器做更多的工作

stl容器
array
forward_list
unordered_map
unordered_set

智能指针
shared_ptr
weak_ptr
unique_ptr

多线程
thread
可以传闭包
mutex / lock_guard
可能会休眠
condition_variable
可能会休眠
atomic
原子操作,限定cpu/编译器不要对某些变量或操作做违反一致性的优化

右值引用
T&&
将亡值
移动语义
实现移动语义
std::move
实现完美转发
万能引用 T&&
std::forward

相关文章:

C++11 面试题整理

C面试题 1 菱形继承 2 多态 多态实现原理&#xff1a; 静态多态 动态多态 静态多态&#xff1a; 依赖函数重载&#xff0c;编译期确定。 函数重载&#xff1a;允许在同一作用于内声明多个功能类似的同名函数&#xff0c;函数列表不同。注意&#xff1a;不能仅通过返回值类型…...

【智能制造-2】焊缝跟踪

焊缝跟踪&#xff1f; 焊缝跟踪&#xff1a;指在焊接位置前方安装光学传感器进行数据采集&#xff0c;然后传输到焊接机器人&#xff0c;进行自适应的各种模糊控制算法校正焊接机器人或专机的轨迹&#xff0c;实现自适应控制&#xff0c;达到实时的焊缝跟踪。 焊缝跟踪的方法…...

优思学院|用ChatGPT快速完成数据分析图表【柏累托图法】

数据分析是很多行业的人不可少的一部分&#xff0c;尤其是质量工程师更是日常的工作。然而&#xff0c;随着科技的进步&#xff0c;人工智能&#xff08;AI&#xff09;将逐渐承担起数据计算的工作&#xff0c;这意味着未来的质量工程师需要具备的不仅仅是计算能力&#xff0c;…...

[晕事]今天做了件晕事37 extern “C“ 被认为了是外部函数

最近看到一个函数声明是 extern “C" void _dump(); 这里的声明是要告诉编译器&#xff0c;这个_dump是C语言的符号&#xff0c;没有经过mangle过的。但是这个关键字可能让人混淆是外部函数。因为这个关键字可以声明外部函数。这也算是一词多用的一个普遍问题。关键的关键…...

问题:关于醋酸钠的结构,下列说法错误的是() #媒体#媒体

问题&#xff1a;关于醋酸钠的结构&#xff0c;下列说法错误的是&#xff08;&#xff09; A&#xff0e;有极性键 B&#xff0e;有非极性键 C&#xff0e;是极性分子 D&#xff0e;是离子晶体 参考答案如图所示...

网络安全(补充)

同步包风暴&#xff08;SYN Flood&#xff09;攻击者假造源网址发送多个同步数据包&#xff08;SYN Packet&#xff09;给服务器&#xff0c;服务器因无法收到确认数据包&#xff08;ACK Packet&#xff09;&#xff0c;使TCP/IP协议三次握手无法顺利完成&#xff0c;因而无法建…...

Redis集群(3)

集群扩容 节点配置和启动 我们要加入两个节点&#xff0c;主节点端口为6903&#xff0c;从节点端口为6933。配置与6900节点类似&#xff0c;不再赘述。启动这两个节点&#xff1a; ./redis-server ../conf/cluster_m_6903.conf ./redis-server ../conf/cluster_s_6933.conf加…...

防止Selenium被检测 Google Chrome 125

背景 最近在使用selenium自动播放学习课程&#xff0c;相信大家也有一些类似的使用场景。 能自动化的事情&#xff0c;绝不自己干。 为防止被检测是机器人做题&#xff0c;刷视频&#xff0c;需要做一些小调整。 先来看作为服务方维护者&#xff0c;是如何检测是Selenium打…...

LeetCode 算法:螺旋矩阵c++

原题链接&#x1f517;&#xff1a;螺旋矩阵 难度&#xff1a;中等⭐️⭐️ 题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…...

【全开源】医护上门系统小程序APP公众号h5源码

医护上门系统&#xff1a;健康守护&#xff0c;就在您身边 &#x1f6aa;引言&#xff1a;开启全新的医护模式 在快节奏的现代生活中&#xff0c;健康问题往往成为我们关注的焦点。而“医护上门系统”正是为了满足这一需求&#xff0c;将专业的医疗服务送到您的家中。这一创新…...

结构体<C语言>

导言 结构体是C语言中的一种自定义类型&#xff0c;它的值&#xff08;成员变量&#xff09;可以是多个&#xff0c;且这些值可以为不同类型&#xff0c;这也是和数组的主要区别&#xff0c;下面将介绍它的一些基本用法&#xff0c;包括&#xff1a;结构体的创建、结构体变量的…...

点云分割报告整理(未完成版-每天写一点)

体积占用网格表示对点进行体素化&#xff0c;然后使用3d卷积神经网络来学习体素级语义。由于点云的稀疏性&#xff0c;体素化效率低&#xff0c;为避免较高的计算成本而忽略了细节。此外&#xff0c;由于同一体素内的所有点都被赋予了相同的语义标签&#xff0c;因此精度受到限…...

python基础 002 - 1 基础语法

1 标识符&#xff08;identifier&#xff09;&#xff0c;识别码&#xff0c;表明身份 身份证&#xff0c;ID 定义&#xff1a;在编程语言中标识符就是程序员自己规定的具有特定含义的词&#xff0c;比如类名称、属性名称、变量名等&#xff0c; 在Python 中&#xff0c;pyt…...

浅谈Web开发的三大主流框架:Angular、React和Vue.js

在现代Web开发领域&#xff0c;Angular、React和Vue.js作为三大主流前端框架&#xff0c;各自拥有独特的特点和优势&#xff0c;为开发者提供丰富的选择。让我们更深入地了解这三大框架&#xff0c;并通过一些小型样例来展示它们的特性。 Angular Angular是一个完整的前端框架…...

使用net.sf.mpxj读取project的.mpp文件

1、导入.mpp文件 public void importMppFile(String updateType, MultipartFile multipartFile) {try (InputStream inputStream multipartFile.getInputStream()) {// 读取文件的组件MPPReader mppReader new MPPReader();// 注意&#xff0c;如果在这一步出现了读取异常&a…...

ubuntu 22.04 升级到24.04

step1. sudo apt update sudo apt upgrade sudo apt dist-upgrade step2. sudo apt autoremove step3. sudo apt install update-manager-core step4. sudo vim /etc/update-manager/release-upgrades 将 Prompt 设置为 lts&#xff1a; Promptlts 保存并退出 step5. sudo do-r…...

FreeRTOS学习笔记-基于stm32(14)内存管理

一、FreeRTOS 内存管理简介 FreeRTOS有两种方法来创建任务&#xff0c;队列&#xff0c;信号量等&#xff0c;一种动态一种静态。静态方法需要手动定义任务堆栈。使用动态内存管理的时候 FreeRTOS 内核在创建任务、队列、信号量的时候会动态的申请 RAM。 我们在移植FreeRTOS时可…...

关于Lambert W函数

来源&#xff1a;R. M. Corless, G. H. Gonnet, D. E. G. Hare, D. J. Jeffrey, and D. E. Knuth, “On Lambert’s W function,” Adv. Comput. Math., vol. 5, pp. 329–359, May 1996, doi: 10.1007/BF02124750. 摘要 Lambert W函数被定义为函数 w ↦ w e w w \mapsto we^…...

【免杀】C2远控-APC注入-进程镂空

目录 进程镂空&傀儡进程&#xff08;主要过内存扫描&#xff09;代码 傀儡进程演示如何上线上线演示 APC注入&进程欺骗&#xff08;主要过内存扫描&#xff09;同步调用与异步调用代码演示 进程镂空&傀儡进程&#xff08;主要过内存扫描&#xff09; 进程镂空(Pro…...

20240611 讯飞JAVA工程师(研发经理岗)面试

1.线程安全的集合类 在Java中&#xff0c;一些线程安全的集合类有Stack、Vector、Properties、Hashtable等 2.线程池中execute和submit的区别 1&#xff09;参数及返回值不同 excute只能提交Runnable&#xff0c;无返回值 submit既可以提交Runnable&#xff0c;返回值为null&am…...

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中&#xff0c;需要开…...

go语言接口之http.Handler接口

package httptype Handler interface {ServeHTTP(w ResponseWriter, r *Request) }func ListenAndServe(address string, h Handler) error ListenAndServe函数需要一个例如“localhost:8000”的服务器地址&#xff0c;和一个所有请求都可以分 派的Handler接口实例。它会一直运…...

R语言 | 使用最简单方法添加显著性ggpubr包

本期教程原文&#xff1a;使用最简单方法添加显著性ggsignif包 本期教程 获得本期教程代码和数据&#xff0c;在后台回复关键词&#xff1a;20240605 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组下游…...

【Linux】shell脚本变量——系统变量、环境变量和用户自定义变量

系统变量 系统变量是由系统预设的&#xff0c;它们通常在系统启动时被加载&#xff0c;并对所有用户和所有shell实例都有效。这些变量通常控制着系统的行为和配置&#xff0c;例如PATH&#xff08;命令搜索路径&#xff09;、HOME&#xff08;用户主目录&#xff09;等。系统变…...

QWidget 属性——windowTitle·windowIcon·qrc

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、windowTitle二、windowIcon三、qrc 一、windowTitle windowTitle 是一个通常用于表示窗口标题…...

深入理解rtmp(一)之开发环境搭建

深入理解rtmp(一)之开发环境搭建 手机直播在15年的时候突然火起来,随着花椒,映客等出现,直播一下就出现在了风口,各个公司针对直播的战斗迅速打响,战斗过程比较短暂,随着许多公司的退出和死去,手机直播行业趋于稳定,直播服务时长也被传统的CDN厂商牢牢占据,后面大家又把精力投…...

java常用面试基础题

&与&&区别&#xff1f; &和&&都是逻辑运算符&#xff0c;都是判断两边同时真则为真&#xff0c;否则为假&#xff1b;但是&&当第一个条件不成之后&#xff0c;后面的条件都不执行了&#xff0c;而&则还是继续执行&#xff0c;直到整个条件…...

互联网摸鱼日报(2024-06-11)

互联网摸鱼日报(2024-06-11) 36氪新闻 雅诗兰黛&#xff0c;胆子也太大了 苹果WWDC终极前瞻&#xff1a;5大看点20大AI新功能&#xff0c;库克不能输的一战 瑞士清洁科技公司Enerdrape开发预制地热板&#xff0c;回收城市地下空间的浅层地热能和废热用于建筑物制热或制冷 | …...

中介子方程十二

X$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpXVX$XVXpX$XyXtXkXrXiXαX$XiXαXyXEX$XFX$XEXyXαXiX$XαXiXrXkXtXyX$XpXVX$XVXpX$XyXtXkXrXiXαX$XiXαXyXEX$XαXηXtXαX$XWXyX$XyXWX$XpXαXqXηX$XeXαXhX$XdX$XpX$XdX$XyXeXαX$XEXyXαXiX$XαXiXrXkXtXyX$XpXVX$XVXpX$XyXtXkXrXiXα…...

SLT简介【简单介绍SLT】

SLT简介 在c的学习当中STL的学习是一个很重要的一环&#xff0c;但是STL又是一个庞大的章节&#xff0c;因此这里我们先简单介绍一下STL&#xff0c;有助于后面我们对STL的学习&#xff0c;这里就是做一个简单的介绍&#xff0c;并无干货。 1.什么是STL STL(standard templa…...

介绍自己做的网站的论文/seo百度关键词优化

【备注】本文中所阐述代码应用于我为BS架构业务系统开发的某个 ActiveX 控件中。我们将向一个典型SQL数据库中的某表的 Image 类型的字段&#xff08;假设字段名称为“PHOTO”&#xff09;存储一副图片&#xff0c;实际上 Image 字段是一种二进制流&#xff0c;它是由应用程序负…...

网站开发云南/广州各区最新动态

java环境变量配置新建系统变量JAVA_HOME 和CLASSPATH 变量名&#xff1a;JAVA_HOME 变量值&#xff1a;C:\Program Files\Java\jdk1.7.0_75变量名&#xff1a;CLASSPATH 变量值&#xff1a;.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;Path添加变量置变量名&#xff1…...

环保网站案例/搜索引擎营销流程是什么?

抽象类与接口抽象类定义和语法理解抽象类作用抽象类总结&#xff1a;接口概念接口特性注意事项&#xff1a;实现多个接口接口使用实例Clonable 接口和深拷贝抽象类和接口的区别&#xff1f;抽象类 定义和语法 包含抽象方法的类&#xff0c;叫做抽象类 需要用abstract修饰这个…...

建设银行扬中网站/上海网站建设哪家好

String是Java.lang包下的final类&#xff0c;其值是不可以改变的。String类实现了java.io.Serializable,Comparable<String>,CharSequence 这三个接口。 java.io.Serializable 接口是 序列化接口&#xff0c;实现此接口的类&#xff0c;可以序列化和反序列化此类对象。 C…...

网易做相册旅游网站/福建省人民政府

npm install less less-loader --save-dev 有可能报错&#xff1a; 版本原因&#xff1a; 降低less-loader版本 npm install less-loader4.1.0...

wordpress编辑器字体/推广普通话手抄报内容

【用户功能模块】 (1)登录功能&#xff1a;注册普通账号登录&#xff1b;登录后可以修改用户的基本信息&#xff0c;也可以退出。 (2)浏览资讯&#xff1a;浏览网站管理发布的资讯&#xff0c;可以评论&#xff0c;评论后需要管理员审核和查看。也可以收藏资讯。 (3)关于我们…...