Java常见面试题分享

Posted lyslyslyslyslys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常见面试题分享相关的知识,希望对你有一定的参考价值。

大家好,我又来啦!今天又给大家带来了几道java基础的常见的面试题,希望能对大家有所帮助哦.有什么问题可以直接发文评论哦,感谢大家的支持! 

 

1、集合如何进行排序?

Collections.sort(List对象,Comparator比较器对象(定义排序规则));

 

2、HashMap和Hashtable的区别。

1)HashMap允许空键和空值,Hashtable不允许。

2)HashMap线程不安全,Hashtale线程安全。

 

3、流按照输入输出方向分有几种?相对于什么而言?

流按输入输出方向分,分为输入流和输出流,相对内存而言。

将数据从数据源读取到内存中,称为输入流,也叫读取流。

将内存中的数据写入到数据源,称为输出流,也叫写入流。

 

4、流按照传输内容分有几种?各自的父类是什么?

流按照传输内容分,分为字节流,字符流和对象流。

无论是什么流,底层部分都以字节传输,本质都是字节流。但是为了方便开发者更好的进行字符数据和对象数据的操作,于是在字节流基础上进行了封装,形成了字符流和对象流。

字节流的父类:InputStream和OutputStream

字符流的父类:Reader和Writer

 

5、流操作的步骤。

建立流,操作流,关闭流。

 

6、操作流时,如果文件不存在会出现什么情况?如果流不关闭会出现什么情况?

操作流时,如果文件不存在,读取流会抛出文件未找到的异常。而写入流会创建新文件(目录必须存在)。

如果流不关闭,不仅耗费内存资源,而且写入流有可能写不进数据。

 

7、如何判断一个文件是否存在?如何创建一个目录?如何知道一个目录中有多少文件?

判断一个文件是否存在:File对象.exists();

创建一个目录:File对象.mkdir();

一个目录中有多少文件:File对象.listFiles();

 

8、什么是对象序列化?如何实现对象序列化?

在进行对象数据传输时,由于对象数据庞大,无法直接传输。在传输前,需要将对象打散成字节序列,以利于传输,这个过程称为序列化过程。到达目的地后,又需要将字节序列还原成对象,这个过程称为反序列化过程。

 

9、什么是关系型数据库?

关系模型,认为世界是由实体和联系组成的。关系型数据库,是以表做为实体,以主键和外键的关联关系作为联系的数据库结构。

 

10、什么是一对一、一对多、多对多?(关系模型、对象模型)

一对一:

关系模型:一条主表记录对应一条从表记录,同时一条从表记录对应一条主表记录。

对象模型:在一个类中拥有另一个类的对象。同时在另一个类中拥有该类的对象。

 

一对多:

关系模型:一条主表记录对应多条从表记录,同时一条从表记录对应一条主表记录。

对象模型:在一个类中拥有另一个类的集合。同时在另一个类中拥有该类的对象。

 

多对多:

关系模型:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录。依靠中间表描述多对多的关系。

对象模型:在一个类中拥有另一个类的集合。同时在另一个类中拥有该类的集合。

 

11、什么是主键,主键有什么特点?

主键是一条记录在表中的唯一标识,不能为空,不能重复。

 

12、什么是外键,它和外键约束有什么区别

外键是用来表达表和表之间关联关系的列。而外键约束是一个强制措施,要求从表的外键列的值,必须引用主表主键中出现过的值。

没有外键约束,不表示没有外键。

 

13、数据库完整性有哪些?如何实现?

实体完整性:保证每行所代表的实体能互相区别,不能存在两条一模一样的记录。实现方式:主键约束和唯一约束。

 

域完整性:保证指定列的数据的有效性。实现方式:非空约束、默认约束、检查约束

 

引用完整性:从表外键中出现的数据,必须在主表的主键列中出现。实现方式:外键约束

 

自定义完整性

 

14、如何删除主表记录?

当两个表之间建立了关联关系,并且在从表中的外键添加了外键约束时,如果主表记录有从表记录引用,那么主表记录无法删除。

删除主表记录有两种方式:

1、级联删除  先删除主表记录对应的从表记录,再删除主表记录。

2、外键置空  先将主表记录对应的从表记录,外键设置为null,再删除主表记录

 

 

15、SQL语句中,增、删、改、查的基本SQL语句

增:insert into 表名(字段列表) values(值列表);

删:delete from 表名 where 条件列表

改:update 表名 set 列1=新值1,列2=新值2 where 条件列表

查:select * from 表名  where 条件列表

 

有喜欢的朋友可以点赞转发哦,有任何问题欢迎大家提出来一起讨论 谢谢大家的阅读!

技术图片

以上是关于Java常见面试题分享的主要内容,如果未能解决你的问题,请参考以下文章

Java常见面试题

java面试中级篇-数据库常见面试题

敲黑板!Java多线程常见面试题!!

java常见面试题汇总

面试题Java基础篇-常见面试题总结p3

Java后端常见面试题总结