- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
CBCACC
ADDDAB
1.String、StringBuffer以及StringBuilder的区别
简要的说,String类型和StringBuffer类型的主要性能区别其实在于String是不
可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新
的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好
不要用String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对
象多了以后,JVM的GC就会开始工作,那速度是一定会相当慢的。每个字符串缓冲
区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无
需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从JDK5.0开
始,为该类增添了一个单个线程使用的等价类,即StringBuilder。与该类相比,通
常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同
步,所以速度更快。但是如果将StringBuilder的实例用于多个线程是不安全的。需
要这样的同步,则建议使用StringBuffer
2.说说ArrayList和LinkedList、HashMap和Hashtable的区别
ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以
最大的缺点就是插入删除时非常麻烦
LinkedList采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接
的索引但是缺点就是查找非常麻烦要丛第一个索引开始
Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。
Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一
个实现。
也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,
虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个
Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用
Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,
并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的
HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比
如在一个单线程的应用程序中),而且同步增加了很多处理费用。
第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。
HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。
这就是说,如果在表中没有发现有哪些信誉好的足球投注网站键,或者如果发现了有哪些信誉好的足球投注网站键,但它是一个空的值,
那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。z
3.如何创建并启动一个新线程?线程的状态有哪些?说一说他们之间是如何转化的?
1)如何创建并启动一个新线程?
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一
个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线
程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新
生成一个新实例,再启动一个新线程。
Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,
启动线程的唯一方法就是通过Thread类的start()实例方法:
Threadt=newThread();
t.start();
start()方法是一
文档评论(0)