某8面试题(第1套)

1)笔试部分(基础题)

(1)请用图形的方式表示出Java运行时数据区

(2)以上哪些数据区在空间不足的情况下会抛出异常?

(3)Java工程出现内存泄露如何排查?请写出你知道的排查工具以及方法

(4)以下代码的输出结果是什么?

String str1=new StringBuilder("58").append("ganji").toString();

System.out.println(str1.intern == str1);

String str2=new StringBuilder("ja").append("va").toString();

System.out.println(str2.intern == str2);

(5)在Scala中有一种函数其参数可以为参数,这样的函数称为高阶函数,请参照scala中常见map函数实现一个名为mymap的高阶函数,mymap接收两个参数值,第一个函数(x:Int)=>3*x,第二个为Int型数据。在mymap函数体内将第一个参数作用于第二个参数。

2)笔试部分(算法)

(1)给定两个只含有0和1字符的字符串,实现二进制加法。如:

String str1 = "101"

String str2 = "11"

实现binarySum(String s1,String s2),使得输入以上字符时返回字符串"1000"。

(2)给定一个整型数组array(没有重复元素),再给出一个目标值target,数组array中有两个元素的加和等于target,要求返回这两个元素的下标。如array = {1,2,4,6,3} target = 8,则返回[1,3]。

 

3)笔试部分(大数据相关)

(1)现有一张Hive表,表里面有两个字段uuid和ts,分隔符为\001分别表示用户唯一标识和用户来访的时间戳。

有如下需求

(a)要求计算每个用户的最后一次来访时间,用MapReduce实现(写完整的代码)

(b)你所写的代码有没有优化的空间?如果有,请写出优化方法。

(2)用Spark实现WordCount。

(3)Spark-Streaming+Kafka实现实时计算这种方案中通过什么方式保证数据的准确性?

(4)分别列举Hadoop和Spark中的文件缓存方式。

(5)HDFS的一致性是指什么?有几种语义?

(6)基于Yarn的推测执行是怎么实现的?描述其大致算法。

QUESTION NO:1

publicclass Test1{

       public static void changeStr(String str){

              str="welcome";

       }

       public static void main(String[] args)(

              String str="1234";

              changeStr(str);

              System. out. println(str);

       }

}

输出结果:

QUESTION NO:2

public class Test2{

       static boolean foo(char c){

      System out print(c);

       return true;

}

public static void main(String[] argv){

       int i=0;

       for(foo('A');foo('B') &&(i< 2);foo('C')){

      i++;

       foo('D');

输出结果: