写点什么

Java 软件开发面试题,从 paxos 到 zookeeper 网盘,已拿到 offer

用户头像
极客开源
关注
发布于: 刚刚

流行框架:

框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。

Spring

Spring 框架大家都听过吧,这个框架特别重要,在目前整个市场上来看的话是基本上有一个一统江湖的趋势。Spring 是整个 Java 体系里使用频率最高,稳定性最好,而且在各个领域都能遇到的一个框架。那什么是 Spring 呢?其实你可以把 Spring 理解为一个管家,如果我们不用 Spring 的话,我们之前写的代码实际上是杂乱无章的,这一块,那一块,然后用各种各样的关联关系把它们绑在一起,整个项目是杂乱无章的,那么我们用了 Spring 之后,它就把每个区域的代码进行分离,自己是自己的,然后由 Spring 在中间做一个调控,Spring 之所以能火起来,就是因为它的做管理的理念好,它去协调各个框架,协调各块代码,这是 Spring 的工作。

SpringMVC

学了 Spring,就来学 Spring 的第一个子项目叫 SpringMVC,一看名字,MVC,这个在学 JavaWeb 的时候听过吧,SpringMVC 其实就是处理 Servlet 里的那些内容,把那些内容给替换调了,也就是说用 Spring 来写 MVC 层的代码,这样就比较方便,简单,而且 SpringMVC 封装的前端处理是真的非常方便,方便到让程序员爽到不行的地步。

MyBatis

MyBatis 是一个做持久层的框架,其实就是相当于替换了 Hibernate,之前说 Hibernate 的缺点是封装的东西太多了,MyBatis 就比较聪明,它知道不需要给程序员封装太多,它只封装了一半,另外一半留给程序员自己完成。那它封装了什么呢?它把从结果集里面我们查询 SQL 之后把结果集的内容封装到 Java 对象里面,这一块它保留了,然后 SQL 语句它不管,让程序员根据自己的需求自己写,然后它帮程序员自动执行,自动处理结果集的问题,所以 MyBatis 又被称为半自动的持久层框架。我们听了全自动和半自动,那手动的是谁?其实就是 DBUtil 和 JDBC 的操作。这个是纯手动,什么都要自己写,然后到 MyBatis 这,你写一半,它帮你干一半,而 Hibernate 是全自动,你什么都不用管,挺方便的,但 Hibernate 封装太厚重,JDBC 又太麻烦,所以 MyBatis 恰好处在它们两个之间的一个位置,所以目前市面上使用 MyBatis 的公司还是特别多的。

JPA

JPA 全程 Java Persistence API,它叫 Java 持久层 API,API 说白了就是 Java 官方给的一套标准,一堆注解,然各个框架自己想办法去实现,在 JPA 的视线中其实 Hibernate 是实现最好的,因此我们在使用 JPA 的时候感觉很使用 Hibernate 一样,特别像。

SpringBoot

SpringBoot 是近几年火起来的一个框架,也是 Spring 家族体系里面的,SpringBoot 把整个 Web 应用,就网页的应用把它的启动放在了一个类里面,我们之前写的所有的包括 Servlet,JSP 包括用一些框架写的项目,这些项目想启动的话,我们需要把它放到服务器(Tomcat)中,那到了 SpringBoot 里面就不是这样了,你写一个很普通的 Java 类,在这个类上写行注解,然后右键运行 Run 这个类,你一运行,它就帮你启动了一个服务,Java 中有很多个类,这样每个类都能右键运行,一个项目就可以把它分割成非常非常多个小的服务,其实这个概念就是所谓的叫微服务的一个基本概念,那这时候就产生了关于微服务的一个应用,SpringBoot 官方曾经放出过这么一句话,就是用一百多个字符就可以搞定一个 Web 程序的开发,由此可见它的整个的封装的体系是非常健全的,它把 Tomcat,还有 Apache,Jetty 这些个服务器全都封装起来了,所以我们用 SpringBoot 的时候就不需要 Tomcat 了,它内置了,里面直接带了,所以 SpringBoot 官方的意义其实是非常明确的,就是程序员就乖乖写代码就行了,其它的环境上的工作,SpringBoot 全都提供给你了,你直接拿去用就行了。所以 SpringBoot 学起来还是挺简单,也挺好用的。

Maven

这个 Maven 不是框架,而是一个构建工具,我们用框架写的项目中需要导入大量的各种不同的 jar 包,这时候 jar 包的维护以及 jar 包版本的管理就会成为非常大的一个问题,如果我们用 Maven,就能很好的解决这个问题了,Maven 是一个项目自动的构建工具,它可以帮我们自动管理和下载 jar 包,而且在我们整个项目打包进行上线的时候,它也会帮我们自动打包,而且打包的时候还特别方便,把一些没用的东西给你干掉,建议好好学一下 Maven,很多框架都要用到 Maven。

SVN 协同开发工具

我们以后在公司写项目都是团队协同的,不是一个人搞的,是很多人一起开发同一个项目,这时就需要一个能够协同的开发工具,比如一个团队有十个人,那十个人一起开发一个项目,他们的代码肯定需要放在一起,放一起的话,就需要能提交能下载,我先把代码下载下来然后进行编写,写完后再提交上去,每个人都应该有这样的操作,那这个时候就需要能够协同的开发工具,目前市面上比较常见的协同开发工具有两个,一个叫 SVN,一个叫 Git,SVN 是一个比较老的工具了,Git 是比较年轻的,就看你用哪一个了。

那么如何才能正确的掌握 Redis 呢?

为了让大家能够在 Redis 上能够加深,所以这次给大家准备了一些 Redis 的学习资料,还有一些大厂的面试题,包括以下这些面试题


  • 并发编程面试题汇总

  • JVM 面试题汇总

  • Netty 常被问到的那些面试题汇总

  • Tomcat 面试题整理汇总

  • Mysql 面试题汇总

  • Spring 源码深度解析

  • Mybatis 常见面试题汇总

  • Nginx 那些面试题汇总

  • Zookeeper 面试题汇总

  • RabbitMQ 常见面试题汇总


JVM 常频面试:



Mysql 面试题汇总(一)



Mysql 面试题汇总(二)



Redis 常见面试题汇总(300+题)



本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java软件开发面试题,从paxos到zookeeper网盘,已拿到offer