我要投稿 投诉建议

公司招聘面试试题

时间:2021-02-25 13:57:25 面试试题 我要投稿

公司招聘面试试题

  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由四个层次组成:网络接口层、网络层、传输层和应用层。

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

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

【公司招聘面试试题】相关文章:

铁塔公司招聘面试试题04-17

公司招聘面试试题及答案04-17

教师招聘面试答辩试题04-15

招聘教师面试试题03-28

世界500强公司招聘面试官的面试题04-07

移动公司招聘笔试试题08-15

招聘财务人员面试试题04-17

幼儿教师招聘面试试题04-11

人力资源招聘面试题目09-22