稀里糊涂过了笔试,很幸运的得到了面试机会,背着我的小书包,挤着地铁就去了西土城面试;

自我介绍

这部分就不多说了,我说的也不好,大致介绍了一下个人的基本情况;

数据结构

  • 给100W个区间,不重叠。给出一个数N,求这个数在那个区间。空间复杂度要求我看到了,但估计我太菜了,人家没问;
    给出想法:
  • 把所有区间的右边界,用一个数组存起来;
  • 给数组排序;
  • 二分查找,找到最后一个区间,返回右边界。这就是所在区间的右边界;
    要求写出大概的代码:
    现场我没写出来,时间有点紧,我有点菜;
    package vivo;
    import java.util.Arrays;
    public class search100w {
    public static void main(String[] args) {
    int n = 89;
    int[] arr = {5,10,20,30,40,60,50,55,100,95,90};
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    int index = binarySearch(arr,n);
    System.out.println("区间的右边界是: " + arr[index]);
    }
    private static int binarySearch(int[] arr, int n) {
    int low = 0;
    int heigh = arr.length-1;
    while(low < heigh) {
    int mid = (low+heigh)/2;
    if(n < arr[mid])
    heigh = mid - 1;
    else
    low = mid + 1;
    System.out.println(low +" "+ heigh);
    }
    return heigh+1;
    }
    }

JAVA

  1. 接口,抽象类,以及实现,问能不能写一个小栗子,说明一下区别;优缺点,大概这个样子。
    我大致说了一下,但是没写出小例子;
    大致区别:
    接口支持多实现,类不支持多继承,这样接口更利于扩展;
    实现接口,必须实现接口中的所有方法,继承抽象类,却不一定要实现他的所有方法;
    接口中成员变量都必须被public static final,成员函数都必须被public abstract修饰,抽象类中可以用public protected default abstract;
    抽象类的方法可以有默认实现,但是接口不可以;
    抽象类的速度要比接口快;
    添加新方法:接口,要添加就必须修改实现类,抽象函数却可以有默认的实现;
  2. HashMap与HashTable的区别:
    底层数据结果哈希表,特点和HashMap是一样的;
    Hashtable线程安全集合,运行速度慢;
    HashMap线程不安全的集合,运行速度快;
    Hashtable命运和Vector是一样的,从JDK1.2开始,被更先进的HashMap取代;
    HashMap允许存储nu11值,nu11键;
    Hashtable 不允许存储nu11值,nu11键;
    源码比较:http://blog.csdn.net/ns_code/article/details/36034955
  3. HashMap存储,两个键值对中key如果哈希值相同是怎么存储的?
    哈希值相同,但内容不相同,采用桶存储;
    哈希值相同,equals()比较内容也相同的话,就不存储,因为这个情况下,key相等,不允许这种情况发生;
    扩充:
    HashMap和和Hashtable都是基于哈希表存储数据的,具体就是:内部维护了一个存储数据的Entry数组,HashMap采用链表解决冲突,每一个Entry本质上是一个单向链表。当准备添加一个key-value对时,首先通过hash(key)方法计算hash值,然后通过indexFor(hash,length)求该key-value对的存储位置,计算方法是先用hash&0x7FFFFFFF后,再对length取模,这就保证每一个key-value对都能存入HashMap中,当计算出的位置相同时,由于存入位置是一个链表,则把这个key-value对插入链表头。
  4. StringBuffer与StringBuilder的比较:
    前者线程安全,但是速度慢,后者线程不安全,但速度快。
    StringBuilder类提供与StringBuffer 相同的方法。

Linux

说自己用过的Linux命令:ls ll la, cat more tail, cd, vi, mkdir touch mv cp scp ftp, chomd, cut sed awk;
基本就是这样了,这部分平时用就肯定脱口而出,都没问怎么用的,感觉会不会一眼就看得出来;

自己介绍一下了解的hadoop

  • hadoop三个组件,HDFS, MapReduce,Yarn;
  • HDFS: 分布式存储框架,namenode, secondnamenode, dataname, 元数据,持久化的命名空间镜像文件,编辑日志。HA高可用;
  • MapReduce: map-shuffle-reduce ,shuffle: combiner, partition, sort, copy, sort;
  • Yarn: Resouce Manage, Application Manage, Namenode Manage;
    这一部分我自己了解的比较清楚,名词都大致有个解释。

地图的导航功能背后是怎么存储数据的额,他又是怎么做到精确导航的;

没答上来,人家就没扩展直接跳过了;

笔试的一个题

  • 寻找最长的重叠字符串,abcabc这种定义位重叠字符串“`
    package vivo;
    import java.util.Arrays;
    public class FindRepeat {

    public static void main(String[] args) {String str = "abcdefefvivovivoghijghijk";char[] ch = str.toCharArray();System.out.println(Arrays.toString(ch));String childStr = null;int maxLength = 0;String res = null;for(int i=0; i<ch.length; i++) {for(int j=i+1; j<=ch.length; j++) {childStr = new String(ch, i ,j-i);int first = str.indexOf(childStr);int last = str.lastIndexOf(childStr);if(first != last && childStr.length()>maxLength) {res = childStr;maxLength = childStr.length();}}}       System.out.println(res);
    }
    

    }“`

校招vivo技术面试总结相关推荐

  1. 如何准备校招技术面试+一只小菜鸟的面试之路

    校招一路走来很幸运,从最初的迷茫,到偶尔的被否认,然后慢慢调整心态,有缺憾才能有进步,正视的自己不足,静下心努力提高,勇敢尝试各种面试机会,因上努力,果上随缘,慢慢看到改变,收获肯定,重拾信心. 校招 ...

  2. 做了7年软件工程师,从500多场技术面试中学到了什么?

    作者 | Rahul Arora 译者 | 火火酱,责编 | Carol 出品 | 程序人生(coder_life) 在做了7年的软件工程师后,我成为一家SaaS公司的创始人. 我参加过很多远程的技术 ...

  3. 以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)...

    本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕 ...

  4. 【浅谈】如何做好一名初级技术面试官

    对于搞技术的同学来说,平时会更多的专注于技术或业务本身 但是随着工作经历,技术能力的增加,早晚会成为团队的主力技术人员. 逐渐的老板,就会给你安排一些面试任务,有初级的有高级的,有校招有社招的. 刚好 ...

  5. 技术面试官告诉你面试应该怎么准备?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Java实现QQ登录和微博登录个人原创+1博客:点击前往,查看更多 作者:Java_JJ 链接:https:// ...

  6. 【面试招聘】聊聊求职过程中的技术面试

    2020年的下半年开始了,很多大学都已经放了暑假,开始准备去找实习工作了,很多2021年毕业的同学也开始了秋招的进程,而对于一些社招人员,疫情结束,年终奖拿完,也开始准备跳槽.最近一段时间,无论是实习 ...

  7. 技术面试中,遇到不会回答的问题怎么破?来,教你几招!

    技术面试中,遇到不会回答的问题怎么破? 在面试中,由于面试官热衷技术方向可能和自己并不一样,所以有时候问的问题,可能是你没有接触到东西(看你仅仅听说过),这种情况在校招或者社招1-5工作经验的面试中出 ...

  8. 校招の如何做面试准备

    对于刚刚踏出或者即将踏出校门的大学生们,面试是社会的第一份"见面礼".那么如何准备才算充分呢?面对自己向往已久的工作橄榄枝,如何能够准确的抓住呢?本文从几个要素来进行解析. 专业课 ...

  9. 阿里校招负责人揭秘面试潜规则

    阿里巴巴校招负责人揭秘面试中那些你应该知道的"潜规则". 最近负责了公司招聘,发现校园招聘这种事情,真是一个奇葩的工作.能做好校园招聘的人,一定是一个矛盾体. 这个人一定是思维缜密 ...

最新文章

  1. (剑指Offer)面试题61:按之字形顺序打印二叉树
  2. Cracer渗透视频课程学习笔记——漏洞分析
  3. 第五章 Python数据结构
  4. SAP Spartacus BrowserPlatformLocation的初始化逻辑
  5. 学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator
  6. 静态块、自由块及构造函数的执行顺序
  7. ADO.NET Command对象简介
  8. node-sass安装失败完美解决方法
  9. 微信小程序开发——最新网络流行语(前言)
  10. Team Tic Tac Toe 题解
  11. epub格式电子书剖析之二:OPF文件构成
  12. 你绝对没用过的三电源切换电路
  13. 一篇不错的关于VSS的入门介绍
  14. 浅谈函数栈帧(Stack Frame)
  15. python 数值运算 m op n_测验1 Python基本语法元素 (第1周)
  16. 挂载的三种方式之自动挂载(autofs)
  17. 【ivp6服务器可通过ivp4网络访问教程】
  18. PATA 题解 1002
  19. 一种基于嵌入式的多重识别门禁系统设计方案
  20. 阿里巴巴首席DBA成甲骨文全球第100个ACE

热门文章

  1. 网页版双色球号码生成工具
  2. 全球经济寒冬将至?且看顶级资本大鳄的大数据分析预测
  3. Matlab 从怀俄明大学上爬取探空数据
  4. WebService测试工具介绍及下载
  5. Azure考试认证经验
  6. 中国农垦周先标谋定品牌-万祥军:对话农民丰收节交易会
  7. 2020南京大学软件学院夏令营模拟机试题集
  8. 计算机英语的英文参考文献,计算机英文参考文献翻译英语论文mmwq8yrl.doc
  9. 你看到的都是招数,不是内功
  10. ROS-introduction