首页 文章详情

据传这个面试题能分辨你是不是科班出生?

DotNet NB | 5 2023-11-11 22:54 0 0 0
UniSMS (合一短信)
    听到一个面试的前同事分享了他的面试经历,说面试官第一个问题居然是:C#语言和C++语言的区别有哪些?
坊间流传,前些年间这个问题能区分一个C#程序员是不是科班出身!大家怎么认为呢?

背景

虽然 C# 和 C++ 都是面向对象的语言,但 C# 在设计上并不是简单地模仿 C++。事实上,C# 有自己独特的特性和设计理念,而不仅仅是 C++ 的复制品。为啥取名为C#,相传为了超越c++,所以取名C#,因为#由4个+形状组成。
但小编个人觉得,面试官们大体不用这样。通过面试人员简历中的专业不就分辨得很清楚了吗。再不行查个学信网。
此外,很多小伙伴可能没学过C++,也有像小编这样上课不认真听讲的~压根儿没注意这个问题!


C#和C++

小编从5个方面来比较它们之间的区别,如下:

1.内存管理:

C++:C++ 程序员负责手动管理内存,包括分配和释放内存。这可能导致内存泄漏或悬挂指针等问题。
C#:C# 使用自动垃圾回收器,程序员无需手动管理内存。这减少了出现内存泄漏等问题的可能性。

2.跨平台性:

C++:C++ 本身不提供跨平台性,但通过特定工具和技术,可以编写可移植的代码。
C#:C# 是一个跨平台语言,并且可以在多个操作系统上运行。跨平台需要使用 .NET Core 或 .NET 5 及更高版本,之前版本的.NET Framework跨平台需要第三方组件支持。

3.编程模型:

C++:C++ 具有更大的灵活性和更多的底层控制,但可能需要更多的代码来实现某些任务。
C#:C# 更注重开发效率和简洁性,提供更多高级的功能和内置库,减少了一些繁琐的任务。

4.编译方式:

C++:C++ 是一种编译型语言,代码需要在特定平台上编译后才能运行。
C#:C# 是一种半编译型语言,代码首先编译成中间语言(IL),然后在运行时通过 .NET 运行时进行 JIT 编译。

5.面向对象:

C#:是纯粹的面向对象语言,所有的对象都继承自System,所有代码(包括函数、变量)都必须在类中定义。
C++: C++兼容 C ,不但支持面向对象,也支持面向过程,比如是全局变量和全局函数。

结语

当然它们之间的区别不止上面5点,大家记住这几点足以应付面试,说实话多了也记不住。当然面试官出题目的主要不是考察它们的关系,而是想要从中影射出C#语言的重要特征有哪些。
大家对C#语言和C++语言的区别这道面试题有什么看法,大家遇到过吗?欢迎留言讨论或者吐槽啊。


推荐阅读:
.NET中的数组在内存中如何布局?
.NET Web新人入门必学项目EarthChat
改进版 .NET 雪花算法组件
推荐一个基于 .NET 开源的消息通知项目
推荐10个.Net通用权限管理开源项目
开源精品,使用 C# 开发的 KTV 点歌项目

点击下方卡片关注DotNet NB

一起交流学习

▲ 点击上方卡片关注DotNet NB,一起交流学习

请在公众号后台

回复 【路线图】获取.NET 2023开发者路线图
回复 【原创内容】获取公众号原创内容
回复 【峰会视频】获取.NET Conf开发者大会视频
回复 【个人简介】获取作者个人简介
回复 【年终总结】获取作者年终总结
回复 加群加入DotNet NB 交流学习群

长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。



good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter