2015暑期实习面试整理-腾讯

有幸参加了腾讯的实习生面试,在一个高大上的艾丽华酒店里, 面试官很nice,将相关问题整理如下:

  • Java泛型实例化?

    java 泛型对象能实例化吗T t=new T(),不能。因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 。

  • Java GC

    • GC算法:引用计数、标记-清除、拷贝收集、标记-整理收集、
    • Java采用根搜索算法。基本思想就是:从一个叫GC Roots的对象开始,向下搜索,如果一个对象不能到达GC Roots对象的时候,说明它已经不再被引用,即可被进行垃圾回收
  • HashMap结构,如何解决hash冲突

    • HashMap是根据散列函数来实现。适用于在Map中插入、删除和定位元素。
    • TreeMap是根据红黑树来实现的。适用于按自然顺序或自定义顺序遍历键(key)
  • 链表求倒数第k个

  • 环形链表判断,找出交合点。并证明思路。

    双指针思路。
    证明:根据信息列出2个方程即可求解。slow指针走的距离是fast指针走的距离的一半;fast指针比slow指针多走一圈。

  • 排序时间复杂度比较以及应用场景

    快排 vs 归并 vs 堆排序

  • Java 包装类vs原始类

    原始类性能比较好,包装类提供了一些方法可以使用,可以为null,而原始类一般初始化为0或者“”,不初始化为null。

  • 集合类中的sort内部实现使用哪种排序算法?

    java中Arrays.sort使用了两种排序方法,快速排序和优化的合并排序。

    • 快速排序主要是对哪些基本类型数据(int,short,long等)排序
    • 合并排序用于对对象类型进行排序。
    • 原因
      使用不同类型的排序算法主要是由于快速排序是不稳定的,而合并排序是稳定的。对于基本数据类型,稳定性没有意义,而对于对象类型,稳定性是比较重要的,因为对象相等的判断可能只是判断关键属性,最好保持相等对象的非关键属性的顺序与排序前一直;
      另外一个原因是由于合并排序相对而言比较次数比快速排序少,移动(对象引用的移动)次数比快速排序多,而对于对象来说,比较一般比移动耗时。补充一点合并排序的时间复杂度是n*logn, 快速排序的平均时间复杂度也是n*logn,但是合并排序的需要额外的n个引用的空间。
  • Java8.0新特性?

    1、接口默认方法
    2、lambda表达式

  • Java引用类型

    • 强引用(Strong Reference).就是为刚被new出来的对象所加的引用,它的特点就是,永远不会被回收。
    • 软引用(Soft Reference).声明为软引用的类,是可被回收的对象,如果JVM内存并不紧张,这类对象可以不被回收,如果内存紧张,则会被回收。(缓存)。
    • 弱引用(Weak Reference).弱引用的对象就是一定需要进行垃圾回收的,不管内存是否紧张,当进行GC时,标记为弱引用的对象一定会被清理回收。
    • 虚引用(Phantom Reference).虚引用弱的可以忽略不计,JVM完全不会在乎虚引用,其唯一作用就是做一些跟踪记录,辅助finalize函数的使用。
个人感悟:

对于了解的东西不能停留在表面,不仅要会用、用好,更重要的是要从原理上去吃透,这样才能以不变应万变,立于互联网浪潮之中。

二面过程:
由于项目跟投的IOS客户端半点关系都没有,面试官直接呵呵了,15分钟结束面试。问了点基本的算法相关知识,直接看简历,都没自我介绍。

  • 写冒泡排序 ,如何改进冒泡排序

    • 记录交换次数,如果一趟排序交换次数为0,则退出循环,数组已经有序。或者标志位。
    • 记录每一次元素交换的位置,当元素交换的位置在第0个元素时,则排序结束。
  • 4亿数字中找出不重复的数字。

  • 数组A大小为n-1,存放1-n之间的数字,数字没有重复,求数组A中1-n没有出现的数字。若n很大,为4亿呢?

  • 数据库性能、并发性测试,如何查看

教训:投递岗位一定要跟自己的项目有点关系,否则面试官根本不会看你的项目,自己展示的东西就比较少。悲剧。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值