C 语言、JAVA、数据结构与算法、操作系统与数据库、计算机网络至少熟悉一门。
C 语言和 JAVA 的面试题网上一搜有很多。
1、引用与指针有什么区别?
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
2. 例举常见的排序算法及时间复杂度?
冒泡排序算法的时间复杂度 O(n^2)
……
3、网络七层协议:
从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 其中
高层,既 7、6、5、4 层定义了应用程序的功能,下面 3 层,既 3、2、1 层主要面向通过网
络的端到端的数据流。
4、线程和进程有什么不同?
线程是比进程更小的处理模块。
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统
对应用的并发性。进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了
程序的运行效率。
5、数组和链表有什么不同?
数组 (Array)
在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些
按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数
组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数
组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
链表 (Linked List)
是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的
指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以
在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存
储下一个结点地址的指针域。
6、字节、字符、字符串和位的相关概念