重载与重写的区别?
重写:发生在父子类中,方法名相同,参数列表相同
重载:发生在同一类中,方法名相同,参数列表不同
class Aoo{
void show(){}
}
class Boo extends Aoo{
void show(String name){} //此时B方法中有两个show(),属于特殊的重载
}
实例变量与静态变量的区别
实例变量和静态变量都属于成员变量
实例变量:是属于对象的,在创建对象时存储在内存堆中,创建多少个对象,则实例变量就会在内存中存在多少份,需要通过(对象.)来访问
静态变量:是属于类的,在类加载时存储在内存方法区中,无论创建多少个对象,静态变量在内存中只有一份,通常通过(类名.)来访问。
String s = new String(“hello”); 创建了几个对象
两个。一个是hello字面量对象,另一个是new出来的对象
String 常用的方法有哪些?
length():获取字符串的长度
trim():去除两边空白字符
toUpperCase()/toLowerCase():将英文部分转换为全大写字母、全小写字母
startsWith()/endsWith():判断是否以什么什么开始或结束的
charAt():根据下标找字符
indexOf()/lastIndexOf():查找字符串第一次出现,最后一次出现的下标
substring():截取字符串
静态方法valueOf():将其它类型的数据转化为字符串
matches():验证匹配(正则表达式)
replaceAll():替换(正则表达式)
split():拆分(正则表达式)
ArrayList和LinkList的区别:
ArrayList是基于数组实现的,容量不够时采用复制方式扩容
在首尾增删时选用LinkedList。查找数据时使用数组
Collection和Collections的区别
Collection是一个集合接口,是所有集合类的一个顶级接口,它里边定义了所有集合通用的方法,List和Set直接继承了Collection接口
Collections是集合的一个工具类,其中提供了一系列静态方法,用于对集合中的元素进行排序、搜索以及线程安全的操作
函数式接口
是指仅仅包含一个必须被实现类重写的方法,但可以有多个非抽象方法(默认方法、静态方法)的接口
java是值传递还是引用类型
无论是基本类型间的传递还是引用类型的传递,都是值传递
基本类型之间是将值传递,引用类型之间是地址值的传递,地址值相同说明它们指向同一个对象