java常见的面试题(1)

equals和==的区别

epuals是String类的一个方法,比较的是字符串内容是否相等,==如果是基本类型 int double等等比较的是两个数的值,如果是引用类型比较的是两个的地址。

JDK JRE JVM的区别

总体来说是JDK包括了JRE包括了JVM,JDK是java的开发环境,JRE是java运行时的环境,JVM

是java的虚拟机。

final

final如果修饰变量的话是,表示变量的值没有办法改变,如果修饰类的话,类是没有办法继承的。如果修饰方法的话表示方法是无法被子类覆盖的。也就是可以重载但是不能重写覆盖。

String StringBuffer StringBuilder 三者的区别

首先三者都是字符串,String是不可变的大家知道,在new 出一个String会占用一定的空间,每次想要改变都需要创建新的对象,StringBuffer和StringBuilder是可以在原来的对象上改变的,但是StringBuffer是线程安全的,StringBuilder是线程不安全的,比如说在大量的访问中StringBuilder可能会导致数据出错,但是性能方面就会有所损失性能 StringBuider>StringBuffer>String 所以在现实开发中推荐先使用StringBuider,如果并发量大使用StringBuffer

重载和重写的区别

重载:在一个类中,参数类型,参数个数,顺序不同,方法名相同

重写:发生在子父类中,或者实现接口,实现抽象方法,方法名,参数列表必须相同,子类的返回值类型必须范围小于等于父类。

接口和抽象类的区别

接口是可以实现多个的,抽象类是单继承的,有抽象方法的不一定是抽象类,接口中的成员变量只能是用public static final 修饰的,而抽象类中可以是很多类型,接口中只能存在抽象方法,而抽象类中可以存在很多方法。

List和set

首先List是有序的,而且是可以允许重复元素出现的,set是无序的,不允许重复元素的出现,都继承自Collection,其次遍历的话set只能用构造器Iterator遍历,而List可以中增强for循环和构造器Iterator遍历。

 ArrayList和LinkedList

两者的都是继承了List接口,ArrayList的底层是动态数组,LinkedList的底层是链表,所以相对于LinkedList是容易实现增删的,而ArrayList是容易查询的,存储方面ArrayList是一片连续的空间不间断的地址,而LinkedList可以是分散在各个位置的地址,所以遍历的话ArrayList是是可以用增强for和构造器Iterator遍历,而LinkedList推荐使用构造器Iterator,尽量不要使用增强for,常用的是ArrayList

构造方法

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(5)构造方法可以重载,以参数的个数,类型,顺序。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值