【面试题解析】-- 20200217Java软件开发工程师面试题解析

1. Hibernate与JDBC操作数据库的区别是什么?

Hibernate是一个ORM框架,它能够自动生成SQL语句,并且它是面向对象的数据库操作,使用HIbernate编写的程序可移植性比较好。
JDBC是底层的数据访问操作,所以性能上会相对于比较高一些,但是它不是面向对象的数据库操作,并且操作起来也比较复杂,而且对于数据库的依赖程度也相当的高。

2. 什么是Spring中的MVC框架?

Spring中的MVC框架是用于构建Web应用程序的,它提供了一种分离式的方式用于构建Web应用。

3. 什么是ACID?

ACID是数据库事务的四大特征:
原子性:保证数据库操作是一个完整的步骤,每一步都不可再分,要么都执行,要么都不执行。
一致性:保证数据库事务完成后保证数据的一致性。
隔离性:表示各个事务间是互相独立的,任何事务都不能够以任何形式依赖或影响其他事务。
持久性:持久性表示的是事务完成后对数据进行持久化操作。

4. 内存溢出、内存泄漏分别是什么?

内存溢出指的是程序在申请内存的时候超出预定的内存大小,比如我们在声明一个int整形的时候如果我们将一个超过int的最大值的数赋值给它那么这个时候将会导致内存溢出。
内存泄漏指的是一个对象无法被垃圾回收机制回收一直占据在内存空间中。

5. 堆和栈之间的区别是什么?

  1. 栈内存存储的是局部变量而堆内存存储的是实体;

  2. 栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;

  3. 栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。

发布了132 篇原创文章 · 获赞 55 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/104367581
今日推荐