华为面试2012/10/18

 1.htpp的特点是什么

      HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  2.为什么要实现hashcode,equals 不实现他们有什么影响

      1.hashcode是用来查找的,我们先通过 hashcode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,

      那么我们就需要再通过 equals 来在这个桶里找到我们要的类。 

      那么。重写了equals(),为什么还要重写hashCode()呢? 

      想想,你要在一个桶里找东西,你必须先要找到这个桶啊,你不通过重写hashcode()来找到桶,光重写equals()有什么用啊 

      hashCode() 是用来产生哈希玛的,而哈希玛是用来在散列存储结构中确定对象的存储地址的,(这一段在 Java编程思想 中讲的很清楚的)

      象util包中的 带 hash 的集合类都是用这种存储结构 :HashMap,HashSet, 他们在将对象存储时(严格说是对象引用),需要确定他们的地址吧,

      而HashCode()就是这个用途的,一般都需要重新定义它的,因为默认情况下,由 Object 类定义的 hashCode 方法会针对不同的对象返回不同的整数,

      这一般是通过将该对象的内部地址转换成一个整数来实现的,现在举个例子来说, 就拿HashSet来说 ,在将对象存入其中时,通过被存入对象的 hashCode() 

      来确定对象在 HashSet 中的存储地址,通过equals()来确定存入的对象是否重复,hashCode() ,equals()都需要自己重新定义,

      因为hashCode()默认前面已经说啦,而equals() 默认是比较的对象引用,你现在想一下,如果你不定义equals()的话,

      那么同一个类产生的两个内容完全相同的对象都可以存入Set,因为他们是通过 equals()来确定的,这样就使得HashSet 失去了他的意义,看一下下面这个: 

  3.spring的事物配置文件怎么配置的,叫什么名字

     解答:transactionManager Inceptor  拦截器

  4.做事太毛躁,io流用完要关闭,要注意抛出异常等

  5.自己定义factroy 工厂模式 跟spring 的工厂模式有什么区别,自己怎么实现工厂模式,工厂模式的主要作用是创建对象

   解答:工厂模式(里面的工厂方法模式):有抽象产品,具体产品,抽象工厂,具体工厂

  6.实现runnable ,继承 thread 有什么区别,实现runnable 有什么用,是怎么实现的

     解答:只需要实现run()方法时,就实现runnable方法,不需要thread类提供的任何方法,java里只支持单基础

  7.冒泡排序跟选择排序的区别

  8.ibaits跟hibernate的区别

     相同点:屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据。

jdbc api编程流程固定,还将sql语句与java代码混杂在了一起,经常需要拼凑sql语句,细节很繁琐。

ibatis的好处:屏蔽jdbc api的底层访问细节;将sql语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能,queryForList返回对象集合,用queryForObject返回单个对象;提供了自动将实体对象的属性传递给sql语句的参数。

 

Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,ibatis需要我们自己在xml配置文件中写sql语句,hibernate要比ibatis功能负责和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。

 

  9.为什么要用存储过程,sql 有什么优劣,存储过程缺点:不好调试,不好维护,不能跟sql共同使用,好处是:预编译的sql语句,执行效率高

猜你喜欢

转载自lvwenwen.iteye.com/blog/1701794
今日推荐