分类: C/C++
2011-03-30 19:22:00
最近忙着找暑期实习生,发现很多面试的时候,考官都会问一问这三种语言的区别,因为自己大学开的语言课程也是只有这三门,自己还是有所了解的,这里总结一下加深印象。
C | C++ | JAVA | |
编译 | 编译为机器码 | 编译为机器码 | 编译为字节码 |
执行 | CPU直接执行 | CPU直接执行 | 由虚拟机执行 |
面向对象 | 面向过程的结构化语言 | 支持面向对象 | 完全面向对象 |
垃圾回收 | 不支持 | 不支持 | 支持 |
多线程 | 借助第三方库可以实现 | 借助第三方类库 | 支持 |
跨平台 | 支持 | 支持 | 支持 |
说一下跨平台的实现,自己是这样理解的,C和C++能够在不同的系统平台上未经太多修改就能运行编译是因为很多系统都内置有C/C++编译器,而JAVA 是因为JAVA语言是把源代码转换成自己的中间代码再由JVM翻译成对应的字节码供计算机识别,只要对应平台装了JVM都可以无修改执行。
垃圾回收机制是JAVA一个很实用的功能,可以在空闲时间以不定时的方式动态回收无任何应用的对象所占据的内存空间,C/C++没有这个功能,但是用C/C++的coder一般对内存把握和利用都颇为严谨。
C一般都多用于底层的系统开发,因为C是介于汇编和高级语言之间的一门中高级语言,他可以和会变一样直接访问内存中的物理地址,进行位级别的操作;JAVA是一门完全面向对象的语言,随着现代软件工程的完善与进步,面向对象不可避免成为了现代软件开发的重要方式,JAVA还比较好上手。
我了解大概就这么多,以后有了什么深入的再添上.