今天偶然得到一个面试java高级工程师(本人目前刚大四,出来实习两个月了)的机会,则想着去经历经历,总有一些收获。
笔试题还算简单,都没什么难度,后面进入面试阶段。
面试官用简单的String,StringBuffer开了个头;之后的一连串的疑问,直接把我弄晕了,导致后面很多懂的知识点,都没回答上来,对自己所掌握的知识产生疑问。
面试官: 我们来讨论下java内存区域吧;
我: java内存区域? 是java虚拟机运行时数据区域吗
面试官没回答我。
面试官 问:程序运行时,String对象存放在哪个区域;
答:通过new 的对象存放在堆空间, 直接用" "的存放在常量池;
面试官:????常量池?什么常量池 ,紧接着继续追问:什么是堆空间???, 通过new String对象放在堆内存,你确定? ps: ????难道我回答错了 ,还有,这里我 想了一下,堆空间不就是堆内存吗,(因为我一直喜欢说‘堆空间’)
我: 确定吧?
面试官: 你确定?? 那好, new 对象存在堆内存;
我: ???我记得是放在堆空间,没错才对阿;
后面回答到,局部变量,方法返回值那些,放在线程栈;静态变量,常量放在方法区;
面试官: 线程栈????什么线程栈?? ps:他表现出一种,他不知道什么叫线程栈的样子,不知道是不是装的; 所以我就质疑自己了,难道不叫线程栈,我记得也叫虚拟 机栈+本地方法栈来的,难道他不知道吗?
我: 所以我又想着,难道我回答错了?,毕竟他是高级工程师,我才实习两个月,所以没有什么想法去质疑他
面试官(表现出): ???方法区? 什么方法区?
面试官追问: 什么是方法区?
我: 这是,我已经彻底混乱了,直接说出,服务一些本地方法的地方,c语言的方法 (这里是我答错了,因为之前心里活动想到本地方法区,所以被自己弄混了)
面试官: ???怎么又跑出个c语言来了。
后面:感觉自己前面已经回答崩塌了,这面试没法继续了,所以后面就迷迷糊糊随便应付了他的问题。
结果可想而已,面试失败!。
总结: 回到家,第一反应就是,没想到自己懂的这么少,这一个月内要把java基础啃得更透一些。
但是: 洗澡的时候回顾一下,发现,我刚开始回答得没问题阿,怎么感觉回答全错的一样;
反省: 巩固基础的同时, 以后面试,不要轻易质疑自己所学知识!!!!!