整理了几道腾讯真题,来试试自己水平有多厉害吧,每题还有答案和详细解答哦。
1、下列哪些可以用于Linux进程间通讯?
A:UNIX套接字 B:信号量 C:无名管道 D:文件锁 E:共享内存
Linux进程通信六大方式:
1、管道及(pipe)有名管道
2、信号(signal)
3、报文队列
4、共享内存
5、信号量(semaphore)
6、套接字(socket)
答案:ABCDE。
2、Java语言中,如果"xyz"没有被创建过,String s =new String(“xyz”);创建了几个String Object?
A:1 B:2 C:3 D:4
对于这句代码,可以分为两个过程:1、首先JVM 在字符串常量池内里查找是否包含字符串"xyz";如果存在的话,则进入第二步;否则,创建新的 String 对象,并放到字符串常量池里面。2、因为new String(“xyz”),所有会在堆里面创建 String 对象,引用的常量池的“xyz”。答案:B。
3、NumberList是一个顺序容器,以下代码执行后,NumberList里的元素依次为:
List<int> NubmerList = new List<int>(){2,4,1,3,5};
for(int i = 0 ; i<NumberList.Count; i++){
int v = NumberList[i];
if(v%2 ==0) {
NumberList.Remove(v); //删除的是元素,而非下标
}
}
A:2,4,1,3,5 B:2,1,3,5 C:4,1,3,5 D:1,3,5
因为NumberList是顺序容器,第一次循环之后删除元素2,容器中2后面的所有元素需要向前移动一个位置,即{4,1,3,5}。而第二次循环判断的是i=1位置的元素,并没有对4进行操作,所以4并没有被删除。所以答案选C。
4、关于多线程和多进程编程,下面描述正确的是():