第 1 轮(项目经理讨论 30 分钟):这一轮包括与项目经理的讨论,他想了解候选人在该项目中的背景、解决问题的能力和经验,他将为此聘请.这只是一个熟悉的讨论,如果他认为候选人适合这个职位,他会在进入第二轮之前收集有用的信息。
Round 2 (Live Coding Challenge 60min):本轮包括编码挑战,包括错误修复、缺失代码、 Java组件信息等。它将在 Maxis 平台上实时完成,与 Hacker Rank 相同,但 Maxis有它自己的。这将是一个活生生的记录会议。但是,在本次会议之前,候选人将收到一封电子邮件,其中包含将提出的问题类型。下面是一个示例:
编码测试指南和问题:我们邀请申请人放松并享受解决基于日常工作经验的Java问题,并分享有关角色和职责的信息。强烈鼓励使用Java 8 版本或最著名的方法来解决这些挑战。共有 10 道问题需要回答。
-
斐波那契数列
Given method call is : Fibonacci(0, 1, 10, 1) Print first 10 numbers in Fibonacci series : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34
用一行代码替换第 8 行。
提示: Java中的递归是一个方法不断调用自身的过程
Java
public static void fibonacci(int num1, int num2, int limit, int count) { int total = num1 + num2; if (count <= limit) { System.out.print(num1 + " "); num1 = num2; num2 = total; count = count + 1; // Write one line of code to complete fibonacci // series - Hint : Use recursion } else { return; } }
Java
public static List < Integer > removeValue(int number) { List < Integer > list = new ArrayList < > (); list.add(1); list.add(2); list.add(3); Iterator < Integer > it = list.iterator(); while (it.hasNext()) { Integer value = it.next(); System.out.println("List Value:" + value); if (value.equals(number)) { list.remove(value); } } return list; }
Java
public class Test1 extends Thread { public static void main(String[] args) { Test1 t1 = new Test1(); t1.setPriority(12); //Make this a daemon thread } }
Java
public static void sortAndReverseList(List < String > countriesList) { //Sort list //Reverse list }
Java
public static void testSet() { List < String > fruits = new ArrayList < String > (); fruits.add("Apple"); fruits.add("Mango"); fruits.add("Guava"); fruits.add("Mango"); Set < String > fruitSet = new HashSet < > (fruits); System.out.println(fruitSet); //Predict Output : fruitSet = new TreeSet < > (fruits); System.out.println(fruitSet); //Predict Output : }
Java
class Singleton { private volatile static Singleton obj; private Singleton() {} public static Singleton getInstance() { if (obj == null) { synchronized(Singleton.class) { if (obj == null) { obj = new Singleton(); } } return obj; } }
Java
public void sortUsers() { User user1 = new User("Ben", 1); User user2 = new User("Anna", 2); User user3 = new User("Madonna", 3); User user4 = new User("Siri", 4); List < User > users = new ArrayList < > (); users.add(user1); users.add(user2); users.add(user3); users.add(user4); // Complete code to compare by the first name // and then the last name System.out.println("Sorted users list " + sortedList); }
-
修正以下程序
- 在以下场景中您期望什么异常?
- 在 Hashmaps 中使用的最佳集合以避免此异常。
- 通过替换第 7-13 行来更正程序,以从给定的“整数”列表中删除“数字”。鉴于 input=3,请解释您修复代码的方法。
Java
public static List < Integer > removeValue(int number) { List < Integer > list = new ArrayList < > (); list.add(1); list.add(2); list.add(3); Iterator < Integer > it = list.iterator(); while (it.hasNext()) { Integer value = it.next(); System.out.println("List Value:" + value); if (value.equals(number)) { list.remove(value); } } return list; }
-
评估以下程序的输出并设置守护线程
- 什么是线程优先级?什么是最大线程优先级?
- 编写线程的不同方法。
- 什么是守护线程?
- 更正以下程序并使 t1 成为守护线程。
Java
public class Test1 extends Thread { public static void main(String[] args) { Test1 t1 = new Test1(); t1.setPriority(12); //Make this a daemon thread } }
-
对字符串列表进行排序和反转
- 完成第 2,3 行以对国家/地区列表进行排序和反转。提示:您可以使用集合 API。对国家列表进行排序和反转。
Java
public static void sortAndReverseList(List < String > countriesList) { //Sort list //Reverse list }
-
评估以下程序的输出
- 定义集
- 预测第 8、10 行的输出。
Java
public static void testSet() { List < String > fruits = new ArrayList < String > (); fruits.add("Apple"); fruits.add("Mango"); fruits.add("Guava"); fruits.add("Mango"); Set < String > fruitSet = new HashSet < > (fruits); System.out.println(fruitSet); //Predict Output : fruitSet = new TreeSet < > (fruits); System.out.println(fruitSet); //Predict Output : }
-
设计模式
- 列出一些您可能使用过的Java设计模式。
- 定义单例模式并解释突出显示的代码行。
Java
class Singleton { private volatile static Singleton obj; private Singleton() {} public static Singleton getInstance() { if (obj == null) { synchronized(Singleton.class) { if (obj == null) { obj = new Singleton(); } } return obj; } }
-
Java8
- 列出Java 8 的一些新特性。
- 你能写一个示例 lambda 表达式来流式传输任何集合吗?
-
用Java 8解释比较器和用法
- 解释比较器
- 完成以下程序,首先按用户名对用户列表进行排序,然后用户 ID 给用户类有字段用户名、用户 ID。
Java
public void sortUsers() { User user1 = new User("Ben", 1); User user2 = new User("Anna", 2); User user3 = new User("Madonna", 3); User user4 = new User("Siri", 4); List < User > users = new ArrayList < > (); users.add(user1); users.add(user2); users.add(user3); users.add(user4); // Complete code to compare by the first name // and then the last name System.out.println("Sorted users list " + sortedList); }
-
&Spring MVC 和 Spring 微服务特性
- 列出 Spring MVC 和微服务的一些特性。
- 你有 Spring 微服务开发的经验吗?
- 在部署和发布方面,微服务如何比部署一个更好的
- Spring MVC项目在生产环境中像tomcat这样的服务器上运行?
-
技能
- 请解释以下与您的工作相关的技能以及对主题列表的简要说明。
- Git 代码库和 Gerrit 代码审查。
- Maven 构建工具。
- ORM 经验:Hibernate、Spring JDBC 模板。
- 云计算经验。
- PL/SQL 编码和 SQL 查询编写经验。
- Unix/Linux 技能和经验。
- 申请人可以灵活地学习和适应动态的工作环境。
编码最佳实践:
- 方法的命名约定,变量要有驼峰式大小写,包命名,编码注释。
- 在代码中设计接口或抽象设计模式应用程序。
- 同行评审代码和代码评审经验。
- 测试用例编写和代码质量工具,如 sonarqube。
第三轮(HR 30min):第三轮是人力资源轮,讨论薪资和一些技术问题等。
第 4 轮(CEO 30 分钟):最后一轮是 CEO 或公司的任何更高权力机构与候选人讨论未来计划,以及候选人如何为公司带来好处。