每个优秀的Java/JavaEE开发人员都应该能够回答的问题?
我经历了这个问题,并且对这个问题的内容和方法印象深刻,因此本着同样的精神,我向Java/JavaEE开发人员提出这个问题 您认为一个优秀的Java/Java EE程序员应该能够回答哪些问题? 我把这个问题标记为社区维基,因为它不是特定于用户的,它的目的是为整个编程社区服务 期待一些令人惊讶的回应每个优秀的Java/JavaEE开发人员都应该能够回答的问题?,java,jakarta-ee,Java,Jakarta Ee,我经历了这个问题,并且对这个问题的内容和方法印象深刻,因此本着同样的精神,我向Java/JavaEE开发人员提出这个问题 您认为一个优秀的Java/Java EE程序员应该能够回答哪些问题? 我把这个问题标记为社区维基,因为它不是特定于用户的,它的目的是为整个编程社区服务 期待一些令人惊讶的回应 编辑:请按照评论中的建议回答问题,这样人们也可以学习有关该语言的新知识 hashCode()和equals()之间的关系是什么?这些方法的意义是什么?实现它们的要求是什么?集合、映射和列表之间的区别是什
编辑:请按照评论中的建议回答问题,这样人们也可以学习有关该语言的新知识 hashCode()和equals()之间的关系是什么?这些方法的意义是什么?实现它们的要求是什么?集合、映射和列表之间的区别是什么
我仍然很惊讶有多少人在电话采访中不知道这一点。技巧性问题:在Java中,哪些类型的参数是通过引用传递的 令人惊讶的是,有多少人还在鹦鹉学舌地唱着“原语按值传递,对象按引用传递”的咒语。在方法调用中使用final关键字。 例如,为什么下面代码中的方法测试没有给出任何编译错误,尽管对方法参数使用了最终限定符。
许多问题和采访都可以在网站上找到,但我并不认为复制/粘贴这些问题和采访有什么价值
不,由你自己编写你认为重要的东西。就我个人而言,我总是分两步进行:首先问几个问题以获得经验和技能的基本概念,然后是解决问题的情况。我确实不相信能够回答任何已知的问题会让你成为一个好的或坏的未知问题解决者。因此,我更喜欢让人们解决给定的问题,给他们一些需求,并让他们编写代码(但不是写在纸上)。我给他们一些时间回来,检查他们是如何做到的,他们的编码风格,他们如何使用建议的API,等等
话虽如此,我最喜欢的问题是“您不喜欢Java的哪些方面?”(本着的精神)。这确实是一个很好的问题,它可以立即向您反馈应聘者使用Java和探索其API的程度,以及他是否对Java抱有宗教信仰(如OP所写)
更新:正如CPerkins所建议的那样,对于上面建议的问题,更好的措辞可能是“您最希望看到Java中发生什么变化?”。事实上,我更喜欢这种方式。简单的问题,比如
- 什么是JRE和JDK李>
- 为什么java要求互操作性
虽然这些都是非常基本的,但许多开发人员不知道答案。我建议在与代码相关的查询之前询问这些问题。在System.out.println中什么是“System”、“out”、“println”?
当您在HashMap上调用“put”时会发生什么情况?会话bean是什么,并描述无状态会话bean和有状态会话bean之间的一些区别。如果您正在招聘具有Java“经验”的毕业生一个简单的问题,比如写一些会引发NullPointerException的代码,可以区分哪些考生最近使用过Java,而不仅仅是在他们完成单元/课程后才停下来。一个肯定的问题是字符串的比较。区别 字符串helloWorld=“helloWorld”
helloWorld==“你好世界”
“你好世界”,等于(你好世界)
web服务器和web容器之间的区别您说的是“好”、“开发人员”。这也是我的2美分……)
- “检查异常”是什么意思
- 在何时使用哪一个更好:断言还是异常来处理意外情况
- 为什么字符串类是最终的?(还是不是?;))
- wait、notify和notifyAll方法是否在对象类中
- 为什么线程类不是最终的?为什么我要延长线程,永远
- 为什么有两个约会班;一个在jav
class Name { private String name; public Name (String s) { this.name = s; } public void setName(String s) { this.name = s; } } private void test (final Name n) { n.setName("test"); }
public void testFinally(){ System.out.println(setOne().toString()); } protected StringBuilder setOne(){ StringBuilder builder=new StringBuilder(); try{ builder.append("Cool"); return builder.append("Return"); }finally{ builder.append("+1"); } }
public void testFinally(){ System.out.println(setOne().toString()); } protected StringBuilder setOne(){ StringBuilder builder=new StringBuilder(); try{ builder.append("Cool"); return builder.append("Return"); }finally{ builder=null; /* ;) */ } }
String s = ""; for(int i = 0; i < 100; i++) { s += "Strings " + "are " + "immutable, " + " so use StringBuilder/StringBuffer to reduce memory footprint"; }
class Sample { static void fun() { System.out.println("Hello"); } } class Test { public static void main(String[] args) { Sample.fun(); } }