面试问题记录 一 (基础部分)

面试问题记录(一) 基础部分

前言

不知不觉已经大三结束了,最近也在准备实习面试,打算把一些面试问到的Java基础问题记录一下,其实我个人面的还是比较基础简单的,大厂也目前就这水平也不敢投,所以就只能投一些要求还是比较低的,面试这块会长期记录,毕竟也是对自己问题的反馈记录。
以下部分是Java基础,至于数据库、JavaWeb、框架、Linux、中间件、微服务还在记录修改当中。

最近也是在看东京奥运会,中国已经12金6银9铜,祝中国队一往无前,加油,加油,加油!!!

image

也在这里祝今年面试Java的伙伴可以一路顺风顺水

如果记录中有什么问题是解释不正确的、偏离比较多的,请各位大佬个小伙伴及时纠正我的错误!

一、Java基础 1.JDK和JRE有什么区别?

答:JDK是Java的开发工具包(在开发工具中如果选择JDK完整环境,可以看到底层源码,但是JRE环境的话,只能看到“.class”文件源码),也就是进行调试运行Java的环境,而且包含JRE,JRE是Java的运行环境,如果仅仅是运行Java程序,则只需要安装JRE即可。

2.==和equals的区别?

答:我们通过JDK源码,可以知道equals本质上就是"=="

但由于String和Integer等封装类重写了equals方法,所以equals默认情况下是引用比较,而在String、Integer中是变成了值比较,所以一般情况下是判断值是否相等;而“==“对于基本类型来说是值比较,对于引用类型来说是引用比较

3.final在Java中的作用

答:首先是它修饰的类是不能被继承的,其次修饰的方法是不能被重写,最后修饰的变量叫做常量,且初始化之后不能被修改.

4.Java中的数据结构有哪些,基本数据类型呢?

答:数据结构八种有数组、链表、队列、哈希表、栈、堆、图、树;基本数据类型八种byte、short、int、long、float、double、Boolean、char

5.两个对象的hashCode()相同,则equals()也一定是ture吗?

答:不是,在散列表中,hashCode()相等即是两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。

6.Java中操作字符串都有哪些类?有什么区别?String类常用的方法有?

答:String、StringBuider、StringBuffer;String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer和StringBuilder修饰的变量,但StringBuffer是线程安全的(其中方法是用synchronize关键字修饰的),且性能比StringBuilder高。String类中常用的方法有length返回字符串长度、indexOf返回指定字符索引、charAt返回指定索引处的字符、equals字符串比较、subString截取字符串、replace替换字符串。

7.抽象类和接口的区别?

答:一是类只能继承一个抽象类,而可以实现多个接口;二是抽象类中有无参构造方法,接口中不能有;三是抽象类中方法修饰可以是各种,而接口中只能是public;四是抽象类中可以有main方法,但接口中不行。

8.抽象类还有什么要求吗?

答: 抽象类中可以包含抽象方法,但不同类中不可以;抽象类不能直接实例化、普通类可以;抽象类不能用final关键字修饰;抽象类中不一定有抽象方法。

9.IO流有了解吗?

答:首先是输入输出流input和output,其次可分为字节流和字符流;字节流是按8位传输、字符流是16位

10.链表和数组有什么区别

答:链表是链式存储结构,⽽数组是顺序存储结构,也就是链表可以存放在内存中不同的区域,数组是⼀块连续的区域,所以数组随机读取率⽐较⾼,但它扩展不⽅便,添加和删除的效率较低,相反链表的话,查找、添加、删除较快,扩展⽅便。

11.Java中的数据结构和基本数据类型

答:数据结构和基本数据类型都有八种,数据结构有数组、链表、队列、哈希表、堆、栈、图、树;基本数据类型有字节byte占1个字节、短整型short占2个字节、整型int占4个字节、长整型long占8个字节、单精度float占4个字节、双精度double占8个字节、布尔boolean占1位按计算机最低计算单位就是1字节、字符char占2个字节。

12.String为什么不可变?

答:因为String类是用final这关键字修饰的,而且底层中实现存储的value数组是用final修饰的,同理可知它也是不可继承的。

二、Java容器 1.List和Set的区别是什么?

答:它们都是继承Collection集合接口,List中存放的元素是可重复、有序的而set中是不可重复无序的(set中的无序是可以由HashCode决定);List下有ArrayList和LinkedList、Vector集合,Set下有HashSet、TreeSet集合

2.解释一下Map实现原理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfjgd.html