[阿里巴巴集团招聘]2017阿里巴巴招聘笔试题

2019-09-09 右脑开发 阅读:

  下面CN人才网小编为大家带来的是2017阿里巴巴招聘试题,你答对了几题,有实力进入阿里巴巴吗?

  1、iBatis相比JDBC优势的优势有哪些?

  答:简单易上手、开发速度快、面向对象,数据库可移植。

  (此处应该将优缺点一起分析,才是满意得到回答)

  延伸学习:

  MyBatis和iBatis的区别:

  ibatis本是apache的一个开源项目,2010年这个项目由apache software foundation 迁移到了google code,并且改名为mybatis

  (1)Mybatis实现了接口绑定,使用更加方便:

  在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,而Mybatis实现了DAO接口与xml映射文件的绑定,

  (2)对象关系映射的改进,效率更高

  iBatis:

  优点 : 代码量减少、简单易上手、SQL语句和代码分离(便于修改)、数据库可移植

  缺点:SQL语句需要自己写、参数只能有一个

  Hibernate:

  优点:对象关系数据库映射、完全面向对象、提供缓存机制、HQL编程

  缺点:不能灵活使用原生SQL、 无法对SQL优化、全表映射效率低下、N+1的问题

  JDBC、iBatis、Hibernate明显对比:

  JDBC更为灵活,更加有效率,系统运行速度快。但是代码繁琐复杂,有的时候用了存储过程就不方便数据库移植了。

  hibernate,iBatis 关系数据库框架,开发速度快,更加面向对象,可以移植更换数据库,但影响系统性能。

  JDBC:手动

  手动写sql,不能直接传入一个对象、不能直接返回一个对象。

  iBatis的特点:半自动化

  手动写sql,能直接传入一个对象、能直接返回一个对象。

  Hibernate:全自动

  不写sql,自动封装,能直接传入一个对象、能直接返回一个对象。

  2、PrepareStatement相比statement,有哪些优点?

  答:

  (1)直接使用Statement,驱动程序一般不会对sql语句作处理而直接交给数据库;

  使用PreparedStament,形成预编译的过程,并且会对语句作字符集的转换(至少在sql server)中如此。

  如此,有两个好处:对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch;另外,可以比较好地解决系统的本地化问题。

  (2)PreparedStatement还能有效的防止危险字符的注入,也就是sql注入的问题。(但是必须使用“对?赋值的方法”才管用)

  3、TCP/IP对应于OSI七层模型的哪些层?

  答:

  OSI七层模型分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。

  TCP/IP协议不是TCP和IP协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型方面来看,TCP/IP由四个层次组成:网络接口层、网络层、传输层和应用层。

  延伸学习:

  应用层:由用户自己规定,只要形成的消息能与表示层接口。这包括各机互访协议,分布式数据库协议等。

  表示层:是在满足用户需求的基础上,尽可能的节省传输费用而设置的。如文本压缩、常用词转换、加密、变更文件格式等。这就是说,只要能表示用户所需的信息,形式上可以改变,并尽可能形成标准格式,以利于传送。

  对话层:是为用户之间对话的进行而设置的 ,这包括建立和拆除对话,确定对话对象。如不是授权的对话者,就不予送出信息,以达到可靠的要求,这一层也可与传输层合并。

  传输层:就是使主机之间或信源和信宿之间能互通信息。这一层因此也可以被称为源--宿层或端--端层,这一般是主机操作系统的一部分。它负责把上一层(对话层)来的信息传输给网络层,后者已能保证把各信息包送达目的地,本层把信息处理得适于网内传送,包括把信息分给各种网络去传递,也可规定服务方式,如点对点通信或点对多的广播式通信。

  网络层:是规定通信网内的路由选择等方式,以使建立用户间的信息报传输设施。这包括地址的标明,把消息分成信息包或把信息包组成消息,一些调整阻塞所需的规定,路由选择等。这些功能可由计算机的输入输出设备来完成,也可专用一些具有处理功能的接口板来完成。

  数据链路层:是规定建立链路的过程。这在信息包传送过程中就需有一定的帧结构,其中包括收发数据的相互应答。

  物理层:是规定一些机电性能。例如代表“0”和“1”的电压值、匹配阻抗、每个比特的时长以及插脚的多少和功能等。也包括工作方式如双工、单工或半双工,建立通信的启动和终止等,这一层协议满足后,从上一层看去,已提供了一个合适的数字新到,也就是数据已可通过它传输出去。

  4、为什么3次握手,4次挥手?

  3次握手建立连接:

  第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)即握手信号。

  第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

  4次挥手断开连接:

  对于一个已经建立的连接,TCP使用改进的4次挥手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下:

  第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。

  第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。

  第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。

  第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

  5、进程和线程区别是什么?

  答:

  进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。

  进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

  一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。

  线程与进程的区别归纳:

  地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

  通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

  调度和切换:线程上下文切换比进程上下文切换要快得多。

[阿里巴巴集团招聘]2017阿里巴巴招聘笔试题

http://m.0413xx.com/naolibeizeng/218874.html

推荐访问:阿里巴巴招聘官网首页 阿里巴巴招聘官网

右脑开发推荐文章

推荐内容

上一篇:[不受信任的开发者 设置]不受虚言的逝者寓言故事 下一篇:[故事看多了也会]故事看门人的儿子