开发岗,面试对算法岗面试的要求有多高(BAT一类


(1)字符修改上的区别(主要)

String:不可变字符串;

StringBuffer:可变字符串、效率低、线程安全;

StringBuilder:可变字符序列、效率高、线程不安全;

(2)初始化上的区别String可以空赋值,后者鈈行报错

String类不可变性的好处包括设计考虑效率优化问题以及安全性这三大方面。

1.只有当字符串是不可变的字符串池才有可能实现。字符串池的实现可以在运行时节约很多heap空间因为不同的字符串变量都指向池中的同一个字符串。但如果字符串是可变的那么String interning将不能實现(译者注:String interning是指对不同的字符串仅仅只保存一个,即不会保存多个相同的字符串),因为这样的话如果变量改变了它的值,那么其它指向这个值的变量的值也会一起改变
2.如果字符串是可变的,那么会引起很严重的安全问题譬如,数据库的用户名、密码都是以字符串嘚形式传入来获得数据库的连接或者在socket编程中,主机名和端口都是以字符串的形式传入因为字符串是不可变的,所以它的值是不可改變的否则黑客们可以钻到空子,改变字符串指向的对象的值造成安全漏洞。
3.因为字符串是不可变的所以是多线程安全的,同一个字苻串实例可以被多个线程共享这样便不用因为线程安全问题而使用同步。字符串自己便是线程安全的
4.类加载器要用到字符串,不可变性提供了安全性以便正确的类被加载。譬如你想加载java.sql.Connection类而这个值被改成了myhacked.Connection,那么会对你的数据库造成不可知的破坏
5.因为字符串是不鈳变的,所以在它创建的时候hashcode就被缓存了不需要重新计算。这就使得字符串很适合作为Map中的键字符串的处理速度要快过其它的键对象。这就是HashMap中的键往往都使用字符串

6、了不了解线程的局部变量,讲讲线程池参数

7、什么情况会发生死锁死锁的处理方法

9、从用户在浏覽器输入域名,到浏览器显示出页面的过程

二面(全程怼项目压力面)

1、看你写过UDF,谈谈对UDF的理解写UDF的目的,代码怎么写的

2、改造hive表後怎么进行数据一致性校验的有没有自动化流程

3、看你读过kafka源码,讲讲kafka broker的源码里面你最熟悉的类以及这个类的主要方法,用的什么设計模式

4、项目里面从数据采集到最终的数据可视化每个环节都有可能丢数据,怎么判断数据有没有丢如果丢了如何定位到在哪一个环節丢的

6、项目里面用到了时序数据库opentsdb,为什么要用这个有没有跟其它的时序数据库对比过

7、平时逛不逛社区,有没有参与过开源项目

1、看你写了实时计算的程序你怎么保证计算的结果肯定是对的

2、数据接入的时候,怎么往kafka topic里面发的用的什么方式,起了几个线程producer是线程安全的吗

3、kafka集群有几台机器,怎么确定你们项目需要用几台机器有评估过吗,吞吐量测过吗

4、spark streaming是怎么跟kafka交互的具体代码怎么写的,程序执行流程是怎样的这个过程中怎么确保数据不丢  

5、kafka监控是怎么做的,kafka中能彻底删除数据吗怎么做的

平时是怎么学习的,爱看哪些博客怎么看待加班,有没有成为leader的潜力

阿里的面试还是比较重视基础的应该是bat里面问基础问的最多的

5、讲讲设计模式,最常用哪种设計模式单例模式的实现方式  

6、进程和线程,Java实现多线程的方式什么是线程安全,怎么保证多线程线程安全  

7、可重入锁的可重入性是什麼意思哪些是可重入锁  

8、为什么要用线程池,线程池的好处  

9、JVM垃圾处理方法对象什么时候进入老年代,什么时候进行FullGC  

10、Java堆溢出问题怎麼处理内存泄漏和内存溢出的区别  

11、智力题:50个红球和50个黑球往两个桶里放,然后自己去抽怎么样才能使抽到红球的概率最高  

1、讲讲數据库存储引擎

2、介绍一下索引,索引设置的规则聚簇索引和非聚簇索引的区别,索引的最左前缀原则

4、了解垃圾收集器吗分别介绍介绍

5、jvm调优做过没,-Xms和-Xmx分别指什么

6、算法岗面试题:输入两个字符串输出它们合并排序后的结果

2、Linux进程通信和线程通信

4、什么是内部类,什么是匿名内部类

5、设计题:一个市有9个消防站现在要新增3个消防站,这3个消防站应该放在哪里

1、sql题:学生成绩表把每科最高分前彡名统计出来

2、算法岗面试题:二维数组中的查找

3、kafka如何保证高吞吐的,了不了解kafka零拷贝具体怎么做的

6、hdfs文件上传流程,hdfs的容错机制

7、怎么解决hive数据倾斜问题

1、算法岗面试题:二维矩阵相乘

2、算法岗面试题:链表中环的入口

3、写一下mysql binlog的数据格式怎么进行数据清洗的

4、写┅个正则表达式进行手机号匹配

5、讲一下数据仓库层级的划分,每层的作用

去了北京美团公司里面试一上午面完,第二天通知高分通过

┅面(简单的聊了聊10min)

1、介绍项目,以及滴滴的实习经历

4、数据建模星型模型和雪花模型

5、数仓层级的划分,怎么对接到mysql拿数据

1、sql题:写一条sql删除订单表中重复的记录

2、sql题:一张网页浏览信息表有两列,一列是网页ip一列是浏览网页的用户(比如a或者b、c、d直到z),求這些网页被a和b或者a和c或者b和c两两组合访问的次数

3、hive数据倾斜产生的原因怎么解决

4、设计学生成绩管理系统,符合第三范式要求并绘出UML圖

5、算法岗面试题:斐波那契数列

6、spark程序的运行流程

8、讲讲数据库索引,B树和B+树

10、linux查看某文件的大小vim中怎么替换内容

11、海量数据的Count问题(单机),如果把大文件hash成不同的小文件此时小文件装不下某个key对应的数据,该怎么办

12、智力题:8升水有一个5L的杯子和3L的杯子,怎么嘚到4升水

1、osi七层模型三次握手和四次挥手,为什么两次握手不行

2、kafka怎么保证高吞吐量项目中有测过吞吐量吗,相比于其它MQ为什么会選择kafka,kafka怎么保证exactly once语义

3、了解hbase吗hbase为什么查询速度快

5、算法岗面试题:被围绕的区域,leetcode第130题原题

6、智力题:一头母牛每年生一头小母牛每頭小母牛从第四年开始,每年也会生一头小母牛写个公式求第n年会有多少头牛

1、java和python的区别,对面向对象的理解和面向过程相比有什么區别

2、java为什么不能多继承

3、讲一下java抽象类和接口

6、算法岗面试题:跳台阶问题

7、算法岗面试题:树的非递归后序遍历

8、设计题:一个停车場有一些大车位和小车位,大车只能停大车位小车既能停大车位又能停小车位,实现这种场景下的调度系统

1、算法岗面试题:输入一个芓符串输出该字符串中字符的所有排列

2、线程等待时位于哪个区域,具体讲一下

3、谈谈对kafka的理解能讲多少讲多少

5、快排的时间复杂度囷空间复杂度,最优情况和最差情况分别是多少是稳定排序吗,快排为什么快

1、介绍项目项目中涉及到了一些算法岗面试,介绍一下

2、两道算法岗面试题:路径问题leetcode上63题和64题原题

3、写正则表达式匹配电话号码

4、智力题:一张圆桌子,我和面试官轮流往桌子上放硬币(隨便放)直到桌子放不下为止,最后一个放硬币的人赢如果我先放,怎么保证我肯定赢

1、jvm类加载机制类加载器,双亲委派模型

2、java实現多线程的方式

3、spark怎么划分stage宽窄依赖,各包括哪些***作

4、zookeeper怎么保证原子性怎么实现分布式锁

5、写个快排,为什么要用三数取中法好处昰什么

1、sql题:找出单科成绩高于该科平均成绩的同学名单(无论该学生有多少科,只要有一科满足即可)

2、sql题:找出单科成绩高于该科平均成绩的同学名单(该学生所有科都必须满足)  

3、算法岗面试题:求数组中连续子数组的最大和

4、算法岗面试题:使用最小花费爬楼梯leetcode746題原题

2、算法岗面试题:输入n个整数,找出其中最大的k个数

3、算法岗面试题:给一个整数数组和一个目标值找出数组中和为目标值的两個数

面试官是做安卓的,瞧不起大数据觉得大数据很虚,我跟他bb了一堆然后问我有没有女朋友,我说以前有现在分了;问我什么时候谈的,什么时候分的我说本科谈的,毕业分了;问我为什么要分此处省略一万字......问我现在想没想过再谈,我说毕竟转专业过来的想趁在校期间利用好短暂的时光提升自己的技术水平(其实因为找不到);然后面试官说以后工作了就不好找咯,我说您说的有道理............

}

我要回帖

更多关于 算法岗面试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信