1,问java和c++的异同?
答:
1,Java是解释型语言,源代码经过Java编译器编译成字节码,然后由JVM解释执行。而c++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此Java的执行速度比c++慢,但是Java能够跨平台执行,而c/c++不行。
2,Java为纯面向对象语言,所有代码必须在类中实现,除基本类型外,所有类型都是类。Java中不存在全局变量或全局函数,而c++兼具面向过程和面向对象的特点,可以定义全局变量和全局函数。
3,Java中没有指针的概念,这有效防止了c++中操作指针可能引起的系统问题,从而使程序变得更加安全。
4,Java不支持多重继承,但Java引入了接口的概念,可以同时实现多个接口。由于接口也具有多态特性,所以Java可以通过实现多个接口来实现与c++语言中多重继承类似的目的。
5,在c++中需要程序员自己去管理内存大分配,而Java提供了垃圾回收器来实现无用内存的自动回收,不需要程序显式得管理内存的分配。
从上面的回答中面试官可能会继续问:
1.1JVM内存结构和内存模型?
1.2有哪些基本类型?
1.2.1接着会问包装器类?
1.3为什么java不学c++,去支持多重继承,而改用单继承,使用接口实现多重继承语义呢?
1.4Java垃圾回收方面的问题,比如,垃圾收集器,垃圾回收算法,如何判定对象可回收?