我首先个人建议面试互联网企业。假如你选择以搜索为核心的互联网企业那么你需要掌握算法,操作系统,数据库的知识,而电子商务企业除了基础知识更需要java方面的知识,网络安全企业侧重有关软件安全 和网络安全的专业知识。
下面摘选一些著名互联网企业的部分面试笔试真题以及考查知识点。
摘自《java程序员面试笔试宝典》
1) static 的作用。
2) final 的作用。
3) overload 与override的区别。
4) 组合与继承的区别。
5) clone 的作用。
6)前置++与后置++。
7)内部类。
8)二维数组的表示。
9)接口与抽象类的对比。
10)反射机制。
11)函数调用方式。
12)重载函数。
13)构造函数。
14)合并两个有序链表。
15)逻辑推理–智 力题。
16)从100亿条记录的文本文件中取出重复数最多的前10条。
17)判断单列表是否又环。
18)二叉树的多种遍历算法实现。
19)有读和写两个线程和一个队列, 读线程从队列中读数据,写线程往队列中写数据。
20) stack 和heap.
21) TCP的流量控制和拥塞控制机制。
22)写一个函数,返回一个字符串中只出现1次的第一个字符。
23)求一个 数组中第k大的数的位置。
24)面向对象继承、多态问题;例如多态的实现机制。
25)值传递与引用传递。
26)什么是不变量?
27) == 与equal的区别。
28)创建空类时,哪些成员函数是系统默认的?
29)有10万个段,这些IP段之间都不重合,随便给定一个IP,求出属于那个IP段。
30)网络编程(网络编程范式,非阻塞connect)。
31) TCP/IP
32) Linu的命令。原理以及底层实现。
33) Lim编程。包括所有互斥的方法、多线程编程,进程间通信。
34)一个一维数轴上有不同的线段,求重复最长的两个线段,例如,a:13,b:27, c: 2~8,最长重复是b和c。
35) Java人口函数的特点。
36)内存溢出与内存泄漏有什么区别?
37)利用互斥量和条件变量设计一个清息队列,具有以下功能:①创建消息队列(消息中所含的元素):②消息队列中插人消息;③取出一个清息(阻塞方式);④取出第一消息(非阻塞方式)。注意:互斥量、条件变量和队列由系统给定。
38)用非递归方法完成二叉树的遍历。
39)如何实现类似函数指针的功能。
40)设计模式。
41)排列组合问题。
42)若有序表的关键字序列为(b,e,d,e,fg,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次是什么?
43)有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进出(FIFO) 页面淘汰算法,当执行如下访问序列后,1,2,3,4,5,1,2.5,1,2,3,4,5, 会发生多少缺页?
44)有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,若6个元素的出栈顺序为s2,s3,s4,s6,s5,s1, 则顺序栈的容量至少应该有多少?
45) [0,2,1,4,3,9,5,8,6,7]是以数组形式存 储的最小堆,删除堆顶元素0后的结果是多少?
46)某页式存储管理系统中,地址寄存器长度为24位,其中号占14位,则主存的分块大小是多少字节?
47) 内存泄露。
48)各种排序算法使用与比较。
49)默认初始化问题。
50)字符串的存储方式。
51)面向对象与面向过程编程的区别?
52) 异常处理。
53)垃圾回收器。
54) 多线程同步。
55)数据库内连接与外连接的区别。
56)设计模式。