讨论/《Java 面试突击》 - 方法/
《Java 面试突击》 - 方法
共 9 个回复

Java中只有值传递,没有引用传递

17

在编译器选择函数的时候是有优先级的,当两个的都可以的时候,一个不需要转换类型的优先级是要比转换成double类型的优先级高,所以不会有歧义,而第二题中两个都是需要将一个int转换成double,优先级相同,所以会造成歧义

5

Java 中只有值传递。值传递的含义是将实参的值传递给形参,当参数类型是基本数据类型时,传递的是实参的值,当参数类型是对象时,传递的是对象的引用,但是不能让实参引用新的对象。

但是不能让实参引用新的对象。这句话啥意思

2

java里面不带后缀的数字默认的就是int类型,所以第一个示例没有问题的。

1

Java中只有值传递,没有引用传递!?

java 只有值传递,没有引用传递。

不需要类型转换的是比需要类型转换的优先级高的,编译器会认为getSum(1,2)与public static void getSum(int num1,int num2)方法更合适。

参数名称应该不算参数签名,同类型不同名参数的函数会报错的

重载签名的细节是啥呢? 方法名+参数类型+参数名称 按顺序排好进行签名,如果不同重载成立吗?
示例1感觉不成立啊 getSum(1, 2);既 满足public static void getSum(int num1, int num2),又满足public static void getSum(double num1, double num2)的.按说也有歧义 毕竟doule范围比int大的. 如果单纯的通过 特例代入 判断能不能重载 我觉得不科学, 最好有个签名的详细标准 才能让人信服.