java基础面试题(1)

99 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。 1.short s = 1;short s2 = s + 1;是否正确,如果不正确请说出为什么? 不正确,因为表达式中1为int类型,所以需要做强制类型转换

2.数组中是否有length(),如果没有请说出谁有length()? 没有,数组中有length属性,String中有length方法

3.Throw和Throws的区别? Throw:是抛出异常,一次只能抛出一个,并且写在方法体中 Throws:声明异常,可以声明多个,每个异常之间逗号间隔,写在声明方法中

4.Int和Integer区别? Int:基本数据类型,默认值为0 Integer是int的包装类,里面有多个常用方法并且可以存储null值,根父类是object类型

5.List、Set和Map的区别? List和Set是Collection接口下的集合接口 Map不是Collection接口下的集合接口 List集合是有序的,可以存储重复的值,并且可以存储多个null值 Set集合是无序的,不能存储重复的值,并且只能存储一个null值 Map集合是无序的,并且是以键值对的形式出现的,其中key值只能存储一个null值并且不能存储重复的值,value可以存储多个null值,并且可以存储重复的值

6.String、StringBuffered、StringBuilder区别? String是字符串;StringBuffered、StringBuilder是可变字符串,如果对一个字符串经常做追加,添加的等功能,选择StringBuffered或StringBuilder,因为String类型每存储一次都会占用一个内存,速度慢、而StringBuffered或StringBuilder不占内存,处理速度快 StringBuilder相对StringBuffered速度快,但线程不安全;StringBuffered相对StringBuilder速度慢,但线程安全

6.Override和overload区别? Override:是重写,子类继承父类,重写父类中的方法,要求访问修饰符,返回值,方法名,参数列表与需要重写的方法保持一致 Overload:是重载,方法名相同,参数列表不同(参数类型、顺序、数量),并且与返回值无关

7.== 和 equals的区别? ==判断的是地址,比较的是存储在栈当中的地址,所以一般用来比较基本数据类型 Equals是Object类中的方法,比较的是两个数的值,通常情况下比较的是字符串

8.&和&&区别? &&也被称为短路与,当表达式进行判断时,如果第一个结果为false,将不会判断第二个值,所以当第二个表达式报错时,程序会继续执行,不会终止 &表示的是与,需要将表达式都判断完整才能出结果,所以当第二个表达式报错时,程序会终止,不会继续执行