1,解释编译和链接
编译过程就是把预处理完的文件进过一些列的词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。
链接及时将目标文件进行处理,得到可执行文件。链接的主要内容就是把各个模块之间相互应用的部分处理好,使各个模块之间能够正确的衔接
2,解释JAVA的跨平台性
java程序是运行在java虚拟机(JVM)上面的,只需要JVM去适应不同的平台,所以平台的差异和java程序没关系
3,关于JAVA和C程序执行的效率分析
java语言是一种解释型语言,在运行阶段先编译为字节码(.class文件),然后字节码在被JVM解释执行;
C语言是编译型语言,在运行的时候直接变为机器语言,直接就可以在机器上运行。
4,空指针异常发生在程序执行的哪个阶段
今天面试官给我说了两个选项(编译和链接)。这个问题现在还是不是明白,编译阶段只会提示语法错误,链接的话加载函数。而我觉得空指针异常应该是在程序执行阶段,调用的时候才会判断是否为NULL,如果为NULL才产生空指针异常。
以上就是几个基础的问题,还有几个就是关于设计数据库的时候的优化,判断程序执行过程是否发生死锁并找到死锁的位置。这几个问题还没完全明白,等明白了再写出来。