今日到 58 面试,1面就跪了。面试官也解释了 2 个原因:基础不好,值传递和引用传递的问题错了; jvm 调优经验不足(这我认)。我想吐槽的是,基础题并没错,2 个值都输出 main 函数中定义的( 0,aaa )。题如下:
public class Test05 { private static void changeInt(int param) { param = 1; } private static void changeString(String param) { param = "bbb"; } public static void main(String[] args) { // int int intParam = 0; changeInt(intParam); System.out.println(intParam); // string String stringParam = "aaa"; changeString(stringParam); System.out.println(stringParam); } }
![]() | 1 yizhimamong 2020-01-14 18:51:32 +08:00 via iPhone 正常,不过算是运气不好? |
2 sgissb1 2020-01-14 18:53:03 +08:00 忽略,没意义。如果不是面试官无意识搞错的,就是过于自信搞出来的事情。 无意识搞错的面试官,提醒一下就够了。他们会跟着你的问题一起过一下看看。不过最终还是不值得去在意。 如果是过度自信的那种面试官,那基本最好闭嘴。自信这玩意搞不好就是自负的开始。 |
![]() | 3 wysnylc 2020-01-14 19:01:38 +08:00 java 没有引用传递,只有值传递->https://blog.csdn.net/javazejian/article/details/51192130 |
![]() | 4 imopf4 2020-01-14 19:07:03 +08:00 直接说出来,我就碰到过嘴死硬的领导,从来不说自己问题,就是错误都也要圆回来,真伺候不来。 |
5 capo 2020-01-15 09:35:32 +08:00 ![]() 没进去说不定比进去了强 |
![]() | 6 la2la 2020-01-15 09:58:08 +08:00 java 核心编程 4.5 ``` 首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按 值调用( call by value) 表示方法接收的是调用者提供的值。而按引用调用( call by reference ) 表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值, 而 不能修改传递值调用所对应的变量值。“ 按……调用”(call by) 是一个标准的计算机科学术语, 它用来描述各种程序设计语言(不只是 Java ) 中方法参数的传递方式(事实上,以前还有按 名调用( call by name), Algo 丨程序设计语言是最古老的高级程序设计语言之一, 它使用的就 是这种参数传递方式。不过,对于今天, 这种传递方式已经成为历史)。 Java 程序设计语言总是采用**按值调用**。也就是说, 方法得到的是所有参数值的一个拷 贝,特别是,方法不能修改传递给它的任何参数变量的内容。 `` |
![]() | 7 meepo3927 2020-01-15 11:37:50 +08:00 58 同城吗 em... |
8 daimubai 2020-01-15 12:59:24 +08:00 Java 只有值传递,对于基本类型传递的就是自身的值,将值赋给了 param,所以不会他的改变与 intParam 无关 对于引用类型传递的是对象的引用而不是对象,所以形参和实参指向的引用是同一份,但是由于 String 的特殊性,当重新赋值后会创建一个新的对象 |
11 ltoddy 2020-02-24 21:06:17 +08:00 我面试也好像遇到了, 关于微服务的服务注册与发现相关的问题, 我说 K8S 就能提供这个功能, 每个服务启动的时候会有固定的环境变量被设置, 其他服务能读取到进而获得集群内部虚拟网络分配给服务的 IP 地址, 面试官好像很不满意.... |