您的位置:首页 > 编程语言 > Java开发

唯品会——java开发实习生机试

2016-04-08 13:05 399 查看
唯品会——java开发实习生机试
共一个小时。
题型:共三种题型:单选17道,不定项选择3道,问答题5道。只有两道单选不是技术,其他都是技术题。
涉及面包括
1.spring中事务控制的注解
2.设计模式主要分三种类型,创建型模式的问题
3.hashmap的描述:hashmap使用键值的形式保存数据吗?hashmap允许将null用作键/值吗?hashmap能够保证其中元素的顺序吗?
4.static的描述:abstract可以修饰类、接口、方法;abstract修饰的类主要用于被继承;abstract不可以修饰变量;abstract修饰的类,其子类也可以是abstract修饰的。
4.JDBC事务
5.object类包括哪些?clone、hasnext、finalize。。
6.java的继承中存在传递?构造方法能重载?方法的重写应用在一个类的内部?constructor在一个对象被new时执行。。。。
7.线程间通信使用的方法?wait、notify、。。
8.java创建线程的两种方法
9.java线程的五种状态
10.数据库常用的join方法:三种:inner join、left join、right join
11.数据库事务的隔离级别
12.常用的对称加密算法
13.ThreadLocal类是什么?详细描述。
14.当线程进入一个对象的synchronized方法A后,其他线程是否可以进入该对象的synchronized方法B吗?详细描述。
15.数据库问题。写一个sql,查询员工工资问题。
16.写出一个单例的设计模式。
17.transient变量有什么特色?详细描述。

附转载:

第一部分是不定项选择(每题4分):总共10个题,都是一些java的基础知识,大概有数组的定义以及一些形参的使用方法等;
第二部分是简答题,总共四个小题,每题10分
(1)、操作系统中段页式的选址方式

参考:在段页式系统中,为了获得一条指令或数据,须三次访问内存。第一次访问是访问内存中的段表
,从中取得页表始址;第二次访问是访问内存中的页表,从中取出该页所在的物理块号,并将该块号
与页内地址一起形成指令或数据的物理地址;第三次访问才是真正从第二次访问所得的地址中,取出指
令或数据。

(2)、进程间的通讯方式有哪几种,有什么区别
参考:(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。   
(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。   
(3)信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)。   
(4)消息(Message)队列:消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺   
(5)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。   
(6)内存映射(mapped memory):内存映射允许任何多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它。   
(7)信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。   
(8)套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字

(3)、hashMap、hashTable 的区别,ArrayList和LinkedList的区别
参考:1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。 
2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。 

3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。 

4.HashTable使用Enumeration,HashMap使用Iterator

  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。      
  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。       
  3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 
(4)、网络的七层结构?怎样使用UDP实现TCP的可靠传输

参考:(1物理层,2数据链路层,3网络层,4传输层,5会话层,6表示层,7应用层)
要使用UDP来构建可靠的面向连接的数据传输,就要实现类似于TCP协议的超时重传,有序接受,应答确认,滑动窗口流量控制等机制,等于说要在传输层的上一层(或者直接在应用层)实现TCP协议的可靠数据传输机制,比如使用UDP数据包+序列号,UDP数据包+时间戳等方法,在服务器端进行应答确认机制,这样就会保证不可靠的UDP协议进行可靠的数据传输



第三部分是编程题,一题20分
<
4000
span style="background-color:rgb(153,204,0);">1、(1)用C语言创建一个链表,然输出这个链表
       (2)实现删除一个节点的操作,要求时间复杂度为O(1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工作