更新时间:2020-06-08 14:42:08 来源:极悦 浏览1828次
1.Java如何实现多态,实现的主要方法。
java是借助方法的重写和重载实现多态。
重载的特性,方法名相同.返回类型,传入方法的参数不同(包括个数和类型).
重写的特性,方法名相同,返回类型,参数均相同,必须发生在子类.
2.,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里面的内容都保存在Entry[]里面。
2.既然是线性数组,为什么能随机存取?这里HashMap用了一个小算法,大致是这样实现:
Java代码
存储时:
int hash=key.hashCode();-->这个hashCode方法这里不详述,只要理解每个key的hash是一个固定的int值
int index=hash%Entry[].length;
Entry[index]=value;
取值时:
int hash=key.hashCode();
int index=hash%Entry[].length;
return Entry[index]
3.说明inputstream和inputstreamreader的区别
InputStream是字节流
reader是字符流
inputstreamreader是将字节流转换成字符流,是上面两者的转换类。
4.Java实现多线程的方法有哪些?什么情况需实现线程同步,线程同步的方法有哪几种?
有两种实现方法。一种是继承Thread类,一种是实现Runnable接口!
在多个线程同时访问互斥(可交换)数据时,应该同步以保护数据,确保两个线程不会同时修改更改它。
同步有两种方法。一种同步方法,一种同步代码!分别是synchronized,wait与notify
5.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大得多的灵活性。
以上就是极悦java培训机构的小编针对“常见的大唐电信Java笔试题目”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习