Java开发面试HR会给你哪些难题?
来源 :中华考试网 2020-10-24
中1.请简单描述JDK和JRE的区别?以下的回答大家觉得还好吧
面试者:太简单了,JDK就是支持java开发者完成变成所需要的语言支持环境,而JRE则不需要JDK那么强大的工具,只需要能运行JAVA程序就可以了。呵呵,too younge too simple.
2.告诉我JVM的类加载过程?对不起各位这里直接提升了面试的难度,但是工作三年以上的中级程序员还是需要了解的,看图说话还差哪些过程么。
3.哦,工作快三年了,了解多JVM的双亲委派模式么,为什么需要由父类加载类再传递给最下面的类加载器?
面试者:就是说一个类进入虚拟机加载环节后,先由ApplicationClassLoader询问ExtentionClassLoader二哥这个类你能加载不,二哥自己也很谦虚还是我先问问大哥吧,大哥接到二弟请示后看了看类,哦,原来是String类啊,这个交给我加载了,你们不用管了。如果三弟不请求大哥二哥加载类的意见自己擅自行动加载String类,很可能加载到黑客自己写的String类,那后果简直不敢想象。
4. 哦,对了如何如何控制多个子线程任务执行完成,再执行主线程程序?除了thread.join(2000),还有其他方法么?
5. 下面的代码执行以后S1,S2分别等于多少?还是说会出现什么问题?
6.年轻人,请回答一下servlet的生命周期,这个对于了解配置加载和预加载参数有重要意义?
面试者:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
面试官:请问当前Springmvc中controller会在调用后destroy么?
面试者:。。。。。
7.想必你知道一些关于threadLocal的知识,我不问你怎么使用,也不问你使用场景。我想说的是线程池提供给用户的线程会存在数据混淆么?(这个可能有点高端,有些高级开发都不知道,呵呵)
8.知道序列化吧,什么情况下需要序列化?RPC服务中的参数为啥都需要序列化呢?参数中的日期类型到底用sql.Date还是util.Date?
9.请问各位大侠,这个诡异的代码能运行么?
10. 做下小调查,大家平时工作用到的代码管理器有哪些?是CVS还是SVN亦或GIT或者VSS,能给出使用的理由么?作者目前用的是SVN,因为这个工具当前比较通用受众多因此在使用。