2014腾讯实习面试题

下面是我和同学去面试腾讯实习一面的面试题,仅供参考!

我的面试题

时间:2014.4.23 下午2:40 ~ 3:15

网络:
  • TCP/IP协议栈各个层次及分别的功能
    下面提供一个参考答案:

    网络接口层:这是协议栈的最低层,对应OSI的物理层和数据链路层,主要完成数据帧的实际发送和接收。
    网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IP协议、ARP、ICMP协议等。
    传输层:主要功能是提供应用程序之间的通信,这一层主要是TCP/UDP协议。
    应用层:用来处理特定的应用,针对不同的应用提供了不同的协议,例如进行文件传输时用到的FTP协议,发送email用到的SMTP等。

数据库:
  • 事务的几个特性(含义+举例说明)。
  • 用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。
  • char()与varchar()的区分,什么情况下用char()?(两者区别很重要)
  • 建过索引吗?什么情况下需要建立索引?
  • 索引的作用?为什么能够提高查询速度?(索引的原理)
  • 索引有什么副作用吗?
  • 在sql语句中加上字符集的方法。
C语言
  • sizeof使用相关

    struct Test {
      int a;
      char b;
      short c;
    };

    问:
    sizeof(Test)=?
    Test test;
    sizeof(test)=?

  • static关键字作用(区分C语言和C++,两种语言下作用有所不同)。

  • volatile关键字的作用。
Linux:

会Linux开发吗?会shell脚本吗?比如grep、awk,然后给了一个实用场景,让用grep或awk进行文本处理。

编程题:

求一个单链表的中间节点,要求安全检查,能直接运行的程序。(很简单,但能写出无bug、完全能运行的程序也不是非常容易,要注意边界检查、指针是否为空、特殊情况、编码风格、是否有注释等)。

附:同学的面试题

### 腾讯 Java 实习面试题目及相关准备 #### 基础知识考察 对于Java基础知识的掌握程度是面试官非常关注的一点。这不仅限于语法层面的理解,更涉及到对面向对象编程原则的应用以及JVM内部机制的认知。 - **多态性实现方式** 多态可以通过接口(interface)和抽象类(abstract class)来达成,在实际编码过程中合理运用能够提高程序灵活性并降低耦合度[^1]。 - **垃圾回收机制原理** 当一个对象不再被任何变量引用时即成为不可达对象,随后会被标记为可回收状态;之后GC会按照特定策略清理这些无用实例所占用的空间资源以供后续分配使用。 #### 工具应用能力评估 除了理论之外,候选人还需要展示自己能否熟练操作一些常用的开发调试工具。 - **jstack命令的作用与应用场景** jstack是一个用于生成线程快照的强大工具。它能帮助开发者了解当前虚拟机内各个线程的具体执行情况,比如它们正处于何种状态下(RUNNABLE、BLOCKED等),甚至精确到具体方法调用位置。这对于排查诸如死锁之类的并发问题特别有用[^2]。 #### 数据结构理解水平测试 良好的数据处理技能同样不可或缺,尤其是针对复杂场景下高效解决方案的设计思路。 - **由给定序列重建二叉树** 给出了某棵二叉查找树(BST)节点访问顺序分别为中序[inorder]及时后根遍历[postorder]的结果数组,则可以根据这两个条件唯一确定该BST形态。例如当`inorder=[9,3,15,20,7], postorder=[9,15,7,20,3]`时对应的结构如下所示: ```plaintext 3 / \ 9 20 / \ 15 7 ``` - **分隔链表算法解析** LeetCode第86号问题是关于如何根据给定值X将单向链接的数据项重新排列成两部分:所有小于等于X结点位于前半部而大于它的则置于后面,并保持原有相对次序不变。此过程涉及到了指针技巧的有效利用[^3]。 ```java public ListNode partition(ListNode head, int x) { if (head == null || head.next == null){ return head; } ListNode dummySmall = new ListNode(-1); ListNode smallTail = dummySmall; ListNode dummyLarge = new ListNode(-1); ListNode largeTail = dummyLarge; while(head != null){ if(head.val < x){ smallTail.next = head; smallTail = smallTail.next; }else{ largeTail.next = head; largeTail = largeTail.next; } head = head.next; } // Connect two lists and terminate the last node. smallTail.next = dummyLarge.next; largeTail.next = null; return dummySmall.next; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值