Java常见面试题(一)

1.什么浅复制

浅复制指的是,在数组复制时,对于基本类型的数组,复制的是数组元素的值,对于引用类型数组的赋值,复制的是他们的地址,这个数组复制的部分,他们的元素都指向同一个地址,两者无论哪一个对数组进行操作的,对另一个数组元素都有影响

2. &和&&区别

这两个都为与运算符,与运算只有两边都为真,最后结果才为真
&&:例如A&B,假如A是false,那么无论B是真还是假最后结果都为假
所以&&当第一个(A)为false时,B就不执行了,返回结果false
&:无论A是真还是假,B都要走一边
这就是&和&&的区别

3.==和equals的区别

1.==
A:两边为基本运算符时,比较的为两个的值
B:两边为引用运算符时,比较的为两个的地址
2.equals
equals()是Object类的一个方法,所以每个类都会有equals()方法
不重写时:比较的为两个地址
重写时:大部分比较的是对象的属性,也可以按需重写equals()方法
注意:当重写了equals()方法时,也要对hashcode()方法进行重写
因为equals()和hashcode()都是通过地址比较出来的,如果重写了equals()方法,会导致和hashcode()产生的结果不统一,违反了协议

4.重载和重写的区别

重载:重载是一个类中两个方法方法名相同,但方法传递的参数不同
(A:参数类型不同B:参数个数不同C:参数的类型顺序不同),通过方法传递的参数走不同的方法体,这就是重载
重写:重写一般用在A:继承B:接口
A:当一个类继承一个父类时,子类就拥有了父类非私有的方法和属性,但子类不想走父类方法,在子类中重新写一个和父类方法名,返回参数相同的方法,这就是重写
注意:子类重写时,子类的权限修饰符一定要>=父类的权限修饰符

5.抽象类和接口的区别

  1. 抽象类是个类接口不是个类
  2. 抽象可以有构造方法,接口没有构造方法
  3. 抽象类可以有变量,非抽象方法,抽象方法等等,接口中只能有常量和抽象方法
  4. 一个类只能继承一个抽象类,一个类可以实现多个接口
  5. 抽象类和接口不能用final修饰,因为final修饰的类不能继承那就失去了意义

6 .String a="abc"和String a=new String(“abc”);的区别

String a=“abc”:是在栈内存声明一个String类型的a,然后在常量池创建一个字符串"abc",指向a
String a=new String(“abc”):是在栈内存中声明一个a,然后在堆内存中创个一个String类型的"abc",将堆内存中的这个地址指向栈内存中的a

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值