联想2018秋招Java笔试题
1. 在数据结构中,从逻辑上可以把数据结构分为()
A. 动态结构和静态结构
B. 紧凑结构和非紧凑结构
C. 线性结构和非线性结构
D. 内部结构和外部结构
2. 在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为()
A.4
B.5
C.2
D.3
3. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是()
A.3,1,4,2
B.1,4,3,2
C.3,4,2,1
D.2,3,4,1
参考答案:A
4. 以下程序输出的结果为()
main()
{
Char* alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVwX"};
char**p;
int i;
p=alpha;
for(i=0;i<4;i++){
printf("%s",p[i]);
}
}
A. AEIM
B. ABCDEFGHIJKLMNOP
C. ABCD
D.ABCDEFGHIJKL
5.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为()
A.n-1
B.n+1
C.n
D.2n
问答题
1. ArrayList和LinkedList有什么区别?
答:ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方,总的说来可以描述如下:
1)对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。
2)在ArrayList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在LinkedList的中间插入或删除一个元素的开销是固定的。
3)LinkedList不支持高效的随机元素访问。
4)ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间
可以这样说:当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
2. 简单叙述JDBC连接数据库核心步骤。
1) 加载JDBC驱动程序
2) 提供JDBC连接的URL
3) 创建数据库的连接
4) 创建一个Satement
5) 执行SQL语句
6) 处理返回结果
7) 关闭JDBC对象
3. 简单描述你对java的认识,从语言,平台,框架方面。
语法简单,面向对象,稳定,与平台无关,多线程,动态等特点,而与平台无关是java风靡全球的重要原因。(与平台无关是指软件的运行不因操作系统、处理器的变化而无法运行或出现运行错误)
注:java可以在计算机的操作系统上再提供一个java运行环境(JRE,Java Runtime Environment),该环境由java虚拟机JVM、类库和一些核心文件组成。
4. 什么是进程(Process)和线程(Thread)?有何区别?
1)含义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
2)区别
(1)一个程序至少有一个进程,一个进程至少有一个线程.
(2)线程的划分尺度小于进程,使得多线程程序的并发性高。
(3)进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
(4)线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
(5)从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。
5. 介绍编译系统核心主要步骤。
1) 下载新内核源代码
2) 解压内核源代码
3) 配置内核参数
4) 编译内核
5) 启动新内核
#笔试题目##秋招#