金点网络-全网资源,一网打尽
  • 网站首页
    • 金点部落
    • 小游戏
    • OpenAPI
    • 设计资产导航
    • 升级会员
  • 技能学习
    • 体育运动
    • 办公教程
    • 口才演讲
    • 小吃技术
    • 建站教程
    • 摄影教程
    • 棋牌教程
    • 网赚教程
      • 爆粉引流
      • 自媒体
      • 贴吧引流
  • 网站源码
    • 商城/淘客/交易
    • 小说/漫画/阅读
    • 影视/音乐/视频
    • 微信/微商/微擎
    • 理财/金融/货币
    • 模板/主题/插件
  • 游戏源码
    • 精品网单
    • 端游源码
    • 手游源码
    • 页游源码
  • 素材资料
    • 电子文档
    • 综合资料
    • 考研资料
    • 设计素材
    • 音频讲座
      • 人文艺术
      • 名师讲座
      • 说书小说
  • 软件工具
    • Windows软件
    • MacOS软件
    • Android软件
  • 寄售资源
    • 游戏源码
    • 网站源码
    • 软件源码
  • 公益服
登录/注册
  • 专享大神特权
立即开通开通会员抄底价

Note·Interview 面经

作者 : jamin 本文共3926个字,预计阅读时间需要10分钟 发布时间: 2020-10-18 共1290人阅读

Interview 面经

001 Spring Boot 最大的优势是什么呢?

Spring Boot 的最大的优势是“约定优于配置”。“约定优于配置”是一种软件设计范式,开发人员按照约定的方式来进行编程,可以减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

002 Spring Boot 中 “约定优于配置“的具体产品体现在哪里?

Spring Boot Starter、Spring Boot Jpa 都是“约定优于配置”的一种体现。都是通过“约定优于配置”的设计思路来设计的,Spring Boot Starter 在启动的过程中会根据约定的信息对资源进行初始化;Spring Boot Jpa 通过约定的方式来自动生成 Sql,避免大量无效代码编写。

003 Spring Boot Starter 的工作原理是什么?

Spring Boot 在启动的时候会干这几件事情:

  1. Spring Boot 在启动时会去依赖的 Starter 包中寻找 resources/META-INF/spring.factories 文件,然后根据文件中配置的 Jar 包去扫描项目所依赖的 Jar 包。
  2. 根据 spring.factories 配置加载 AutoConfigure 类。
  3. 根据 @Conditional 注解的条件,进行自动配置并将 Bean 注入 Spring Context。

总结一下,其实就是 Spring Boot 在启动的时候,按照约定去读取 Spring Boot Starter 的配置信息,再根据配置信息对资源进行初始化,并注入到 Spring 容器中。这样 Spring Boot 启动完毕后,就已经准备好了一切资源,使用过程中直接注入对应 Bean 资源即可。

004 Spring Boot 的自动配置是如何实现的?

Spring Boot 项目的启动注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:

  • @Configuration
  • @ComponentScan
  • @EnableAutoConfiguration

其中 @EnableAutoConfiguration 是实现自动配置的入口,该注解又通过 @Import 注解导入了AutoConfigurationImportSelector,在该类中加载 META-INF/spring.factories 的配置信息。然后筛选出以 EnableAutoConfiguration 为 key 的数据,加载到 IOC 容器中,实现自动配置功能。

005 JPA 和 Hibernate 有哪些区别?JPA 可以支持动态 SQL 吗?

JPA 本身是一种规范,它的本质是一种 ORM 规范(不是 ORM 框架,因为 JPA 并未提供 ORM 实现,只是制定了规范),因为 JPA 是一种规范,所以只是提供了一些相关的接口,但是接口并不能直接使用,JPA 底层需要某种 JPA 实现,Hibernate 是 JPA 的一个实现集。

JPA 是根据实体类的注解来创建对应的表和字段,如果需要动态创建表或者字段,需要动态构建对应的实体类,再重新调用 Jpa 刷新整个 Entity。动态 SQL,mybatis 支持的最好,jpa 也可以支持,但是没有 Mybatis 那么灵活。

006 SSM 概念

SSM:Spring + Spring MVC + MyBatis

  • Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
  • SpringMVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
  • MyBatis 是一个支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。

007 Java 变量

Java 中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在 JVM 的方法区、堆内存和栈内存中。

public class Variables {
    /**
      * 类变量
      */
    private static int a;

    /**
      * 成员变量
      */
    private int b;

    /**
      * 局部变量
      */
    public void test(int c){
        int d;
    }
}

上面定义的三个变量中,变量 a 就是类变量,变量 b 就是成员变量,而变量 c 和 d 是局部变量。

008 REST 和 RPC

  • REST(representational state transfer,表现层状态转移):使用 HTTP 协议,应用层,可以跨防火墙,在不同局域网之间通信
  • RPC(remote procedure call,远程过程调用):使用 TCP 协议,传输层,速度快,但不可跨防火墙,仅支持局域网通信

结论:对内 RPC,对外 REST。

009 页面导入样式时,使用 link 和@import 有什么区别?

  1. link 是 HTML 标签,@import 属于 CSS 范畴。
  2. link 引入的样式页面加载时同时加载,@import 引入的样式需等页面加载完成后再加载。
  3. link 没有兼容性问题,@import 不兼容 ie5 以下。
  4. link 可以通过 js 操作 DOM 动态引入样式表改变样式,而 @import 不可以。

010 用递归算法实现,数组长度为 5 且元素的随机数在 2-32 间不重复的值

核心是生成随机数算法,Math.random() 函数返回一个随机浮点数,浮点数范围为左闭右开区间 [0, 1)。

function rand(arr = [], length = 5, min = 2, max = 32) {
  if (arr.length < length) {
    const num = Math.floor(Math.random() * (max - min + 1)) + min
    if (!arr.includes(num)) {
      arr.push(num)
    }
    return rand(arr)
  }
  return arr
}

011 去除字符串中的空格,根据传入不同的类型分别能去掉前、后、前后、中间的空格

算法难点:

  1. 通过 Symbol() 来生成枚举类型
  2. 正则分组去除中间空格
const POSITION = Object.freeze({
  left: Symbol(),
  right: Symbol(),
  both: Symbol(),
  center: Symbol(),
  all: Symbol()
})

function trim(str, position = POSITION.both) {
  switch (position) {
    case POSITION.left:
      str = str.replace(/^\s+/, '')
      break
    case POSITION.right:
      str = str.replace(/\s+$/, '')
      break
    case POSITION.both:
      str = str.replace(/^\s+|\s+$/g, '')
      break
    case POSITION.center:
      while (str.match(/\w\s+\w/)) {
        str = str.replace(/(\w)(\s+)(\w)/, '$1$3')
      }
      break
    case POSITION.all:
      str = str.replace(/\s/g, '')
      break
    default:
      break
  }
  return str
}

const str = ' s t r '
const result = trim(str, POSITION.left)

012 去除字符串中最后一个指定的字符

function delLast(str, char) {
  if (!str) return false
  if (!char) return str
  const index = str.lastIndexOf(char)
  return str.substring(0, index) + str.substring(index + 1)
}

基础语法

0x01 Java 有哪些数据类型

  1. 分为基本数据类型和引用数据类型。
  2. 基本数据类型包括:数值型(byte、short、int、long、float、double),字符型(char)以及布尔型(boolean)。除了基本类型外,其他数据类型都属于引用类型,包括类、接口、数组等。

0x02 float number=3.4;有没有问题?为什么?

有问题,因为 3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型,可能会造成精度损失,所以必须进行强制类型转换,正确的写法是 float number =(float)3.4;/ float number =3.4F;。

0x03 字符串拼接的方式以及效率?

  1. 使用 + 直接拼接,String 是 final 对象,不会被修改,每次使用 + 进行拼接都会创建新的对象,而不是改变原来的对象,效率低,是线程安全的。
  2. 使用 StringBuffer 可变字符串,效率较高,是线程安全的(StringBuffer 的方法使用了 synchronized 关键字进行修饰)。
  3. 使用 StringBuilder 可变字符串,效率最高,但是线程不安全。

0x04 简述 final,finally 和 finalize 区别

  1. final 可以修饰类、方法和变量,被 final 修饰的类不可继承,被 final 修饰的方法不可重写,被 final 修饰的变量引用不可更改,引用的内容可以更改。
  2. finally 用于 try-catch 代码块中,无论是否发生异常最后都将执行,作用是释放资源。
  3. finalize 是 Object 类的方法,在对象被垃圾回收之前将调用一次,一般用于资源的释放。

0x05 ==和 equals 有什么区别?equals 和 hashCode 有什么联系?

  1. 如果是引用类型,== 比较的是两个对象的引用是否完全相同,如果是基本类型,比较的是两个基本类型的数值是否相同。
  2. 如果没有重写的话,equals 默认按照 == 进行比较,如果重写了 equals() 方法,则按照对应的比较规则比较。
  3. 两个对象如果相等,那么它们的 hashCode 值必须相等,但两个对象的 hashCode 值相等时,它们不一定相同。

参考文章:
【7 万字干货】2021Java 实习必看面试两百题解析

Interview 面霸
本站所提供的部分资源来自于网络,版权争议与本站无关,版权归原创者所有!仅限用于学习和研究目的,不得将上述内容资源用于商业或者非法用途,否则,一切后果请用户自负。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源。如果上述内容资对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!如用于商业或者非法用途,与本站无关,一切后果请用户自负!本站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。如有侵权、不妥之处,请联系站长以便删除!
金点网络-全网资源,一网打尽 » Note·Interview 面经

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
是否提供免费更新服务?
持续更新,永久免费
是否经过安全检测?
安全无毒,放心食用
jamin

jamin 大神

下一篇
网络协议-组播介绍
标签云
Android Atom ExecutorService ForkJoin GM GM后台 GM授权后台 H5 Java Javascript Linux手工服务端 pipbestcom Python ReentrantLock synchronized ThreadLocal volatile Win一键即玩服务端 一键端 传奇 写作 创业 单机 后台 商业端 外网 安卓 安卓苹果双端 工具 手工端 手游 搭建教程 教程 数据分析 文案 游戏源码 端游 经典 网单 职场 自媒体 视频教程 详细搭建教程 运营后台 页游

近期文章

  • 回合手游【逍遥西游之繁华西游】最新整理单机一键既玩镜像服务端_Linux手工端_GM后台_教程
  • 最新整理精品回合制手游【天书奇谈3D混沌完整版】VM一键单机版_linux手工外网端_隐盟视频教程_授权GM后台_双端
  • 典藏修真页游【诸仙列传OL】最新整理Win系服务端_GM工具_详细外网搭建教程
  • MT3换皮MH【浮生若梦尊享挂机修复版】最新整理单机一键即玩镜像端_Linux手工服务端_安卓苹果双端_GM后台_详细搭建教程
  • 大话回合手游【最新引擎之缥缈西游渡劫版】最新整理Linux手工服务端_安卓苹果双端_管理后台_CDK后台_详细搭建教程_视频教程

分类

  • | wordpress插件 |
  • | wordpress模板 |
  • | 其它模板 |
  • | 帝国模板 |
  • | 织梦插件 |
  • | 织梦模板 |
  • A5源码
  • Android软件
  • APP引流
  • E语言
  • H5
  • LUA
  • QQ营销
  • SEO推广
  • Windows软件
  • 体育运动
  • 信息数据
  • 创业专题
  • 办公教程
  • 口才演讲
  • 名师讲座
  • 商城/淘客/交易
  • 小吃技术
  • 小说/漫画/阅读
  • 建站教程
  • 引流脚本
  • 影视/音乐/视频
  • 影视资源
  • 微信/微商/微擎
  • 微信小程序
  • 微信营销
  • 微擎模块
  • 手游源码
  • 技能学习
  • 抖音课程
  • 摄影教程
  • 棋牌教程
  • 模板/主题/插件
  • 游戏源码
  • 爆粉引流
  • 理财/金融/货币
  • 生活老师
  • 电商客
  • 电子文档
  • 电脑教程
  • 社群营销
  • 站长工具
  • 精品网单
  • 系统工具
  • 素材资料
  • 综合资料
  • 编程经验
  • 网站源码
  • 网络安全
  • 网赚教程
  • 网赚源码
  • 考研资料
  • 脚本/AI/智能
  • 自媒体
  • 英语学习
  • 营销软件
  • 设计素材
  • 说书小说
  • 贴吧引流
  • 软件工具
  • 软文营销
  • 逆向软件
  • 音频讲座
  • 页游源码

提供最优质的资源集合

立即加入 友好社区
金点网络-全网资源,一网打尽

新一代全网资源综合门户网(www.pipbest.com-金点网络)专注服务于互联网,提供各类最新最全的免费源码下载(PHP、ASP、JSP、.NET),更提供免费工具,免费源码下载,软件下载,素材下载,赚钱教程下载,交流论坛等网站运营相关的一切内容,为网友搜罗最有价值的网站源码下载与技术教程等服务!

服务目录
  • 金点OpenAPI
  • 金点云
  • 金点支付
友情链接
  • 数媒派
  • 国家电网
快速搜索

本站由Nice强力驱动

声明: 本站部分内容属于原创转载请注明出处 如有侵权行为请严格参照本站【版权声明】与我们联系,我们将在48小时内容进行处理!

本站部分内容属于原创转载请注明出处 如有侵权行为请严格参照本站【版权声明】与我们联系,我们将在48小时内容进行处理!
© 2016-2023 PipBest.Com - 金点网络 & 金点部落. All rights reserved 京ICP备2022005359号-1
  • 关注有礼
  • 签到
  • 客服
    官方QQ群 常见问题 FAQ

    在线客服

    点我联系

    直接说出您的需求!
    切记!带上资源连接与问题!

    工作时间: 9:30-21:30

  • 暗黑
    模式
  • 全屏
  • 投稿
    赚钱
  • 首页

  • 签到

  • 切换

  • 客服

金点网络-全网资源,一网打尽
  • 登录
  • 注册
or
or
忘记密码?
金点网络-全网资源,一网打尽
  • 网站首页 ►
    • 金点部落
    • 小游戏
    • OpenAPI
    • 设计资产导航
    • 升级会员
  • 技能学习 ►
    • 体育运动
    • 办公教程
    • 口才演讲
    • 小吃技术
    • 建站教程
    • 摄影教程
    • 棋牌教程
    • 网赚教程 ►
      • 爆粉引流
      • 自媒体
      • 贴吧引流
  • 网站源码 ►
    • 商城/淘客/交易
    • 小说/漫画/阅读
    • 影视/音乐/视频
    • 微信/微商/微擎
    • 理财/金融/货币
    • 模板/主题/插件
  • 游戏源码 ►
    • 精品网单
    • 端游源码
    • 手游源码
    • 页游源码
  • 素材资料 ►
    • 电子文档
    • 综合资料
    • 考研资料
    • 设计素材
    • 音频讲座 ►
      • 人文艺术
      • 名师讲座
      • 说书小说
  • 软件工具 ►
    • Windows软件
    • MacOS软件
    • Android软件
  • 寄售资源
    ►
    • 游戏源码
    • 网站源码
    • 软件源码
  • 公益服
×
u3** 刚刚下载了 爆款吸金文案训练

    全网资源·一网打尽

  • 金点出品,必属精品!
  • 发布原创内容,获取高额提成!
  • 我们与你共创美好数字生态!
  • 无特殊说明密码默认:pipbest.com