java基础(二)

请你讲讲数组(Array)和列表(ArrayList)的区别?什么时候用数组而不是列表?

(1)、Array能存放基本数据类型和对象类型,ArrayList只能存放对象类型。

(2)、Array的大小是在创建时必须指定,其容量是固定的,ArrayList是动态数组,大小是动态变化的。

当存放基本数据类型以及明确知道要存放多少数据时可以使用Array,虽然ArrayList可以借助java提供的自动装箱与拆箱机制来减少编码工作量,但当处理固定大小的基本数据类型时,这种方式相对较慢。

请解释什么是值传递和引用传递?

值传递是对基本数据类型变量而言,传递的是变量的副本,副本的改变不影响原变量。引用传递一般是对于对象型变量而言,传递的是该对象地址的一个副本,对引用对象操作时会同时改变原对象。一般认为,java中的传递都是值传递。

请你讲讲 java支持的数据类型有哪些?什么是自动拆装?

java支持8种基本数据类型:byte、char、boolean、short、int、long、float、double。自动拆箱和自动装箱就是java编译器在基本数据类型和其对应的包装类之间做的一个转化。例如,int 转化为 Integer。

请你解释为什么会出现4.0-3.6=0.40000001这种现象?

计算机在计算时需要将十进制数转换为二进制数,二进制小数无法精确的表示十进制小数,所以存在误差。

请你说明符号“==”比较的是什么?

(1)、对比基本数据类型:比较值是否相等。
(2)、对比两个对象:比较的是内存,如果两个对象的引用完全相同,则返回true,否则返回false。

请你解释Object若不重写hashCode()方法的话,hashCode()如何计算出来?

Object的hashCode()是本地方法,该方法直接返回对象的内存地址。

请你解释为什么要重写equals()和hashCode()方法?

当HashMap中的key是自定义类时,如果要比较key是否相等,要同时使用这两个方法,先求出key的哈希码,当哈希码相等时再通过equals()方法进行比较。
posted @ 2020-11-10 19:47  我是一只IT小菜鸟  阅读(104)  评论(0)    收藏  举报