java常见基础知识汇总

1、String为什么是final的?

String是其核心类。

安全性:避免产生病毒;效率性:作为工具,提高效率。String

final说明String类是不可以做父类的,即String类不能产生子类。

那么就不会重写String的方法,就不存在产生String的继承子类,从而与操作系统打交道,产生危害性影响,比如病毒。


2、ArrayList继承了AbstractList为何还要实现List接口?因为AbstractList已经implements List接口。

一句话:历史原因

美好的理解:使用ArrayList时,可以立即看出它是List,便于理解。(ArrayList实现List的可以去掉)

相同情况还有:

HashMap继承了AbstractMap为何还要实现Map接口?

HashSet继承了AbstractSet为何还要实现Set接口?

Vector既然继承了AbstractList为啥还要实现List接口

相似情况:Hashtable为什么继承了Dictionary并且实现了Map接口?  但是Dictionary却没有实现Map接口?

一句话:历史原因

详细解释:在java1.2之前,是没有Map接口的,只有Hashtable,后来在1.2中,引入java collection之后,重写了Hashtable,让其实现Map接口。


小结:java存在代码风格不一致,稍加注意,不要过于执拗。


3、关键字instanceof

一句话:不推荐用,避免这种结构化编程模式。

具体原因见网址:http://rodney.cnblogs.com/archive/2005/08/18/instanceof.html


4、hashcode的作用

简单理解:用户函数equals()的辅助判断。对象存储的物理地址。

在一个list、set集合中,有如下判断:

 1、两个对象相等equails,则hashcode一定相等。

 2、hashcode相等,两个对象不一定相等。

区别:equals()一般给用户调用;hashcode()给对象内部调用。

相近概念:文件的MD5.

补充说明:hashCode是用于查找使用的,而equals是用于比较两个对象的是否相等

参考网址:

1、http://zhidao.baidu.com/link?url=rdq57-hfGYcAT7IJ_JZ-Ybfl5iE0T5hqzbgOFZoL4RKPt85AgZRaaVj2x6Y0NxEnu6BxEk3jdHw3xVOwSFEgVa

2、http://blog.youkuaiyun.com/fenglibing/article/details/8905007


5、ArrayList与LinkedList的区别

ArrayList是基于动态数组的的数据结构;

LinkedList是基于链表的数据结构。

所以:ArrayList优于数据读写;LinkedList优于数据插入、删除。

参考网址:http://zhidao.baidu.com/link?url=0XfKAGgA8Ohi2XkCIFnPtIJmkFx9MngSWmaodDZn3gUEKUpstbEs5Qz7fV_B350DQfGoGF481JQoj54PH-H0Ka

  http://blog.youkuaiyun.com/qianzhiyong111/article/details/6678035

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值