大唐电信java笔试题及答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.Java如何实现多态,实现的主要方法。

java是借助方法的重写和重载实现多态。

重载的特性,方法名相同.返回类型,传入方法的参数不同(包括个数和类型).

重写的特性,方法名相同,返回类型,参数均相同,必须发生在子类.

2.Hashtable\hashmap有什么区别,hashmap实现的算法思想,多个任意长度

的值进行hash操作,得出的hash值是否相等?

a.Hashtable是继承自陈旧的Dictionary类的,HashMap继承自AbstractMap类同时

是Java 1.2引进的Map接口的一个实现。

b.也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。

c.第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。

HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。

d.HashMap去掉了Hashtable的contains方法,保留了containsValue和containsKey

方法

e.Hashtable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash

数组的默认大小是16,而且一定是2的指数

1.首先HashMap里面实现一个静态内部类Entry 其重要的属性有key , value, next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保

2.既然是线性数组,为什么能随机存取?这里HashMap用了一个小算法,大致是这样实现:Java代码

3.画出语句string str=new string(“abc”)执行后的内存状态,说明string、

stringbuffer的区别,两种如何相互转换?

4.说明inputstream和inputstreamreader的区别

InputStream 是字节流

reader是字符流

inputstreamreader是将字节流转换成字符流,是上面两者的转换类。

5.Java实现多线程的方法有哪些?什么情况需实现线程同步,线程同步的方法

有哪几种?

多线程有两种实现方法。一种是继承Thread类,一种是实现Runnable接口!

在多个线程同时访问互斥(可交换)数据时,应该同步以保护数据,确保两个线程不会同时修改更改它。

同步有两种方法。一种同步方法,一种同步代码!分别是synchronized,wait与notify

6.Xml解析方式有哪几种,有什区别?

Dom解析在内存中创建一个DOM树,该结构通常需要加载整个文档然后才能做工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的,树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改能随机访问文件内容,也可以修改原文件内容.

SAX解析SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点线性解析,不能随机访问,也无法修改原文件

JDOM解析JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快.JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

DOM4j解析DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。

7.有数据库表:t_student(id,name,sex,score,course_name)

a)查出分数大于90的学生

b)总分大于270的学生

c)查出英语分数大于80的男女生数量

d)使用的数据库连接方式,以及各种方式的特点和区别

8.使用过的触发器有哪几种?有什么区别?

触发器是一种特殊类型的存储过程,主要是通过事件进行触发而被执行的

SQL Server 2000 支持两种类型的触发器:AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作(INSERT UPDATE DELETE)之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER 触发器,可以定义哪一个触发器被最先触发,哪一个被最后触发,通常使用系统过程sp_settriggerorder 来完成此任务。

INSTEAD OF 触发器表示并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器,但对同一操作只能定义一个INSTEAD OF 触发器。

9.Struts和struts2.0有什么区别,使用时需要注意什么?

/**Action类

Struts1要求Action类继承一个抽象类,Struts1使用抽象类编程而不是接口

Struts2可以实现Action接口也可以不实现,Struts2提供一个ActionSuport基类去实现常用接口。Action接口不是必须的,任何有execute的标识的POJO都有可能成为struts2的Action的对象

/**Servlet依赖

Struts1 Action依赖与Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execute方法。

Struts2 Action不依赖与容器,允许Action脱离容器被单独测试。如果需要,struts2依然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。

/**可测性:

测试Struts1 Action的一个主要问题是execute方法暴漏了Servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)struts2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

/**捕获输入:

struts1使用ActionForm对象捕获输入。所有ActionForm必须继承一个基类。因为其他

相关文档
最新文档