Java 与 C++的区别 - Java基础

62 阅读1分钟
JavaC++
解释型语言,Java编译器(javac)将源代码编译为Java字节码(class文件),JVM负责执行字节码编译型语言,编译器将源代码编译成机器码,机器直接执行机器码
跨平台,基本类型都有标准的范围限制和字节长度平台相关,其数据类型的字节长度在不同的操作系统可能长度不一致
通过JNI调用本地系统库直接调用本地系统库
面向对象面向对象和面向过程
自动垃圾回收,无析构函数(对象销毁自动调用的方法)显式内存管理,有析构函数
不支持多重继承支持多重继承
值传递(数值,引用地址都是值)指针、引用、值传递

值传递和引用传递的区别:看传递的内容是否是传递副本,如果是,则是值传递,反之引用传递

Java传递参数如果是对象引用,是通过复制对象的引用,即对象的地址,故仍然是值传递

public class Demo {
    public static void main(String[] args) {
        String str = new String("hello world");
        System.out.println(str);
        changeit(str); 
        System.out.println(str);
    }
    public static void changeit(String string) {
        string = new String("hello go");
    }
}

输出:
hello world
hello world

参考资料

Hollis 大神的《2023全新Java面试宝典课程,八股文学习资料》