二面(80min)
1.首先自我介绍没什么好说的
2.简历上写的语言是C/C++/Python,先讲一下这三种语言的区别吧
其实就是面向过程、面向对象和解释性语言的区别,由于一面问过面向过程和面向对象的区别以及各自的应用场景,因此后来专门查了一下,信誓旦旦地讲完了,结果面试官来了句你讲的这不是根本上的区别,最根本的区别是什么?我懵逼表示没有深入地思考过,面试官说C语言底层是采用goto语句实现程序的跳转,而C++可以用类的接口实现跳转。接着追问那他们跟Python的区别是什么呢,我说Python是解释性语言,balabala扯了几句,面试官还是说这不是根本区别,然后简单跟我讲了下。
后来自己查了下:编译性语言和解释性语言最大的区别就是,编译性语言是整个程序编译完之后才能运行,只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以,程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;而解释性语言,源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行,程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次,运行效率一般相对比较低,依赖解释器,但跨平台性好。
3.类和结构体的区别是什么
我傻傻地问是C++中类和结构体的区别么,面试官说其实我问的是类和结构体这两种结构的区别,你可以用某种语言里的举例,然后我把C++中类和结