Java实习生必备的10个易错面试题及答案整理

Java面试 潘老师 3个月前 (02-15) 64 ℃ (0) 扫码查看

Java实习生有时候往往也会需要面试通过后才能进入公司实习,很多同学针对这类面试题难度有所困惑,潘老师给大家整理了10道必备且易错的Java实习生面试题,这类题目一般相当的偏Java基础知识,因此难度一般不高,但容易被面试官设计的一些陷进给框进去,特别易错,因此还是要重视,不然就可能暴露自己的“隐藏实力”啦!

Java实习生易错面试题

第1题:请说下i++和++i的区别

答案整理:
i++++i都是实现变量i的自增,两者的区别在于i++是先运算,再加1,而++i是先加1,后运算。但是不管是i++还是++i,最后i的值都是相同的。

第2题:方法重写与重载的区别?

答案整理:
1)方法重载是在同一个类中,声明多个同名方法,通过参数列表来区分不同的方法,与参数列表的数量、类型和顺序有关,与修饰符和返回值类型以及抛出异常类型无关
2)方法重写的前提是发生在具有继承关系的两个类之间,方法重写有以下规则:
  • a.参数列表必须保持一致
  • b.返回值类型必须保持一致
  • c.方法名必须保持一致
  • d.重写方法的访问权限范围必须大于等于父类方法
  • e.重写方法的抛出异常类型范围不能大于父类方法

3)方法的重载和重写的作用不同
重载:在一个类中为一种行为提供多种实现方式并提高可读性
重写:父类方法无法满足子类的要求,子类通过方法重写满足需求

第3题:说一下下列代码运算后a的值?

byte a=4;
byte b=3;
byte c=7;
a=b+c;

答案整理:
很多同学可能会回答a值为10,那就错了,这段代码在编译时就已经报错了,因为b和c虽然都是byte类型,但相加之后的值类型就会自动提升为int类型,而int类型如果直接赋值给byte类的a,则会报错,因此问题本身就是错的,纯粹是误导Java小白的。

第4题:说一下equals和==的区别?

答案整理:
区别如下:
  • ==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同
  • ==是指对内存地址进行比较 , equals()是对字符串的内容进行比较
  • ==指引用是否相同, equals()指的是值是否相同

第5题:你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?

答案整理:
肯定回答重写过啊,重写equals时必须重写hashCode因为:
  • 如果两个对象相等,则hashcode一定也是相同的
  • 两个对象相等,对两个对象分别调用equals方法都返回true
  • 两个对象有相同的hashcode值,它们也不一定是相等的

因此,equals方法被覆盖过,则hashCode方法也必须被覆盖,hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode(),则该class的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)。

第6题:说下面向对象编程的四大特性,并解释下?

抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
多态:多态性是指允许不同类的对象对同一消息作出响应。比如重写和重载就是多态的体现。

第7题:下面这段代码在内存中创建了几个对象?

String str = new String("abc");  

答案整理:
创建了两个对象 :String str只是定义了一个名为str的String类型的变量,因此它并没有创建对象。“abc”在常量池,一开始常量池中不存在该字符串,所有会创建一个“abc”字符串对象放在常量池里。是有内存地址的。另外一个对象就是 new String 创建的了,在编译期间不能确定具体的值,所以会在 在在内存中创建的一个地址。

第8题:说下对堆和栈的区别?

答案整理:
堆和栈的区别主要有五大点,分别是:
1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;
2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大;
3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;
4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排;
5、底层不同。栈是连续的空间,而堆是不连续的空间

第9题:能否可以在遍历集合的同时对集合做删除操作?

答案整理:
一般不会在遍历过程中对集合进行删除元素操作,容易跑出异常,如果一定要遍历时删除元素,那务必要用迭代器。这是Java新手最容易犯的错误,切记。

10:说一下Java权限修饰符的范围?

答案整理:
Java中四种权限修饰符:public(公共的)、protected(受保护的)、default(默认的)、private(私有的),范围如下图:

PS:说下GC是什么?

答案整理:
GC( garbage collection) : 即垃圾回收, 是指 JVM 用于释放那些不再使用的对象所占用的内存,称为垃圾回收机制。

总结

以上就是Java实习生必备的10个易错面试题和答案整理,你学会了吗?更多面试题,请戳:Java面试题最新版PDF汇总下载(共2000多题)


版权声明:本站所有文章,如无特殊说明,均为本站原创。转载请务必注明文章来源,谢谢支持。
本文链接:https://www.panziye.com/javainterview/4387.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】