Java中级面试题记录(四)

一面面试题

1.Innodb的行数据存储模式

https://baijiahao.baidu.com/s?id=1775090633458928876&wfr=spider&for=pc

2.行数据包含哪些信息?

https://baijiahao.baidu.com/s?id=1775090633458928876&wfr=spider&for=pc

3.MySQL在进行存储VARCHAR的时候,如果存的长度和设计的长度不一致时,如何进行寻址的

在MySQL中,当你存储一个VARCHAR数据类型时,实际存储的长度是根据你实际存储的数据长度决定的,而不是根据你为该字段指定的最大长度。因此,当你存储长度小于最大长度的数据时,MySQL不会浪费空间来存储未使用的字节。
当你在查询数据时,MySQL会根据实际存储的数据长度来寻址。它会使用一个附加的字节来存储实际数据长度,这个字节位于VARCHAR值的前面。MySQL使用这个实际数据长度来定位到正确的字节位置,以便正确地读取和解析数据。
因此,即使你存储的字符串长度与你在表定义中指定的最大长度不一致,MySQL仍然能够正确地寻址和读取数据。

4.MySQL中行数据的null是如何存储的?

对于InnoDB存储引擎,NULL值在行数据中占用一个特殊的字节表示。这个字节被标记为“NULL”标志,以区别于其他类型的值。在查询数据时,MySQL会检查这个字节的状态,以确定该字段是否为NULL。

5.MySQL中null如何检索的?

在这里插入图片描述

6.MySQL中如何把null排在最前面?

在MySQL中,默认情况下,NULL值被视为最小值,即它们排在所有其他值的前面,也可以使用以下方法手动排序,
因为MySQL中不像Orcal支持nulls first和nulls last语法,因此可以改变写法实现指定Null的排序:

  • null排在前面: order by IF(ISNULL(my_field),0,1),my_field;
  • null排在后面: order by IF(ISNULL(my_field),1,0),my_field;

7.排序时,假如成绩表,对成绩排序,只想让80-90的排在最前面,怎么排?

方式一:
先将80-90分数的查询出来,然后使用UNION 关联剩余人员成绩
方式二:
排序时使用判断语句CASE ,给80-90分的设置一个最高的值 ,然后按照降序排列
方式三:
通过filed函数来进行指定排序

8.MySQL如何进行特定排序,比如将用户订单最多的排在最前面?如果客户和订单都比较多时排序?

先对订单表进行分组查询,统计出每个客户对应的订单数量并进行升序排列
然后在程序中补全客户信息

9.GROUP之后再进行排序,如何实现?

直接在SQL语句后边添加ORDER BY 语句

10.B+树的特别和B树的区别?

B+树的非叶子节点不会存储行数数据,B树的非叶子节点会存储行数据
B+的叶子节点是双向链表

11.组合索引查询数据的过程?

12.批量2000W条的数据弄到内存中处理,比如更新某一个字段的状态?

13.比如客户表2000W 订单表5000W ,要求10分钟内将客户的订单数量大于10的更新为1星客户?

14.慢查询SQL如何进行优化?单SQL就很慢,并且SQL已经没有优化空间了,该如何处理?

15.JAVA线程池的拒绝策略有几种?默认的是哪种?

16.线程池的阻塞队列类型有几种?

  • LinkedBlockingQueue
  • SynchronousQueue
  • ArrayBlockingQueue

17.我想先进来的任务最后执行?该用哪种类型的结构更合适?

LinkedBlockingDeque

18.线程之间的通讯(主线程和子线程)?

  • 用volatile变量修饰公共变量
  • 通过原子引用类的公共变量
  • 通过ITL或者TTL修饰的公共变量
  • 通过 Object类的 wait/notify 方法
  • 使用JUC包中的Condition的await方法让线程等待,使用signal方法唤醒线程
  • 使用LockSupport类中的park和unpark来实现

19.开启子线程的时候,想在子线程中获取主线程中结果?

  • 用volatile变量修饰公共变量
  • 通过原子引用类的公共变量
  • 通过ITL或者TTL修饰的公共变量

20.MQ除了RabbitMQ外还熟悉其它的MQ吗?

21.如何解决重复发送消息的问题?

每个消息都设置一个全局唯一标识,这样即使出现重复投递的现象,只要我们在消费端保证不重复消费就行

22.MyBatis的类型转换有没有做了解,项目中有用过吗?

地图字段、json类型字段

23.请求接口的加解密有用过吗,我想所有请求的请求参数和响应参数都加密该如何处理?

24.Springboot的自动装配?

Springboot项目启动后会扫描所有jar包里面META-INF文件夹下面的spring.factories文件,从文件中获取需要进行自动装配的类,然后再根据项目pom文件中引入的starter和配置文件中的配置自动生成对应装配的bean到ioc容器中。

25.@Configuration和@ConfigurationProperties区别?

@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法返回的对象将被纳入到IOC容器中
@ConfigurationProperties的作用是将配置文件中的相关配置与类中的属性进行绑定,便于读取或修改配置。

26.@Configuration和@Compoment的区别?@Compoment的类下面定义@Bean可以被扫描到吗?

被@Compoment修饰的类将会被纳入到IOC容器中
可以

27.Java的接口中是否可以存在普通方法?

可以

28.两个接口中存在一模一样的方法,一个类同时实现这个2个接口,可以吗?

可以

二面面试题

1.说一下项目的技术栈?Nacos的版本

2.项目中你主要负责的哪个部分?

3. 1.X的Nacos中的服务关闭后,但是nacos会有缓存,如果此时数据打到该该服务上,你们如何解决这个问题的?

4.你们项目里面如何排查生产问题在哪个服务?

5.项目中seata主要是解决什么场景的?

6.seata是如何保证数据的一致性,seata的工作原理?

7.微服务的服务降级如何进行配置的,什么情况下会进入到fallback里面去?

8.如何区分上游服务调用时是调用超时 还是自定义的业务异常?

9.分布式锁是如何实现的,使用redisson和自己用Redis写的分布式的区别在哪儿?

10.setnx 命令实现分布式锁和使用lua脚本实现分布式锁的区别是什么?

11.生产上FULLGC太频繁了,该如何进行优化呢?

在这里插入图片描述

12.为什么幸存者区会有2个,而且都比较小?

13.线程池使用有没有什么经验?最大线程数的设置?

14.让你设计一个动态的可配置的数据权限,你会怎么设置?

15.MQ如何保证不丢失消息?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDOS版-超功能记事本 Ⅲ 8.8源码

DDOS版-超功能记事本 Ⅲ 8.8源码 下载地址:https://user.qzone.qq.com/512526231/main

goland无法调试问题解决

goland 无法调试问题解决 golang 版本升级后,goland 无法进行调试了 首先请看自己下载的版本是否有误 1.apple系 M系列芯片的 arm64版本 2.apple系 intel系列芯片的x86_64 3.windows系 intel解决如下: 查看gopath ericsanchezErics-Mac-mini gww-api…

C/C++数据结构之深入了解线性表:顺序表、单链表、循环链表和双向链表

线性表是一种基本的数据结构,它在计算机科学中起着至关重要的作用。线性表用于存储一系列具有相同数据类型的元素,这些元素之间存在顺序关系。在C/C中,我们可以使用各种方式来实现线性表,其中包括顺序表、单链表、循环链表和双向链…

【golang】Windows环境下Gin框架安装和配置

Windows环境下Gin框架安装和配置 我终于搞定了Gin框架的安装,花了两三个小时,只能说道阻且长,所以写下这篇记录文章 先需要修改一些变量,这就需要打开终端,为了一次奏效,我们直接设置全局的: …

大厂面试题-JVM中的三色标记法是什么?

目录 问题分析 问题答案 问题分析 三色标记法是Java虚拟机(JVM)中垃圾回收算法的一种,主要用来标记内存中存活和需要回收的对象。 它的好处是,可以让JVM不发生或仅短时间发生STW(Stop The World),从而达到清除JVM内存垃圾的目的&#xff…

代码随想录Day31 贪心06 T738 单调递增的数字 T968监控二叉树

LeetCode T738 单调递增的数字 题目链接:738. 单调递增的数字 - 力扣(LeetCode) 题目思路: 我们以332举例,题目要我们获得的是小于等于332的最大递增数字,我们知道这个数字要递增只能取299了,332 -- 329 --299 我们从后向前遍历,只要前一位大于后一位,我…

系统架构设计师之使用McCabe方法可以计算程序流程图的环形复杂度

系统架构设计师之使用McCabe方法可以计算程序流程图的环形复杂度

conda虚拟环境配置

命令行输入,conda -V 确定conda版本 创建自己的conda虚拟环境 activate 回车 conda create -n 名字 python版本号 执行命令 确认执行命令 输入y 创建完成 激活环境 conda activate 名字 进入python环境 python 退出 exit() conda deactive

Text Classification via Large Language Models

Abstract 表达大模型在文本分类上做的不好。 原因: 1、处理复杂语境时缺少推理能力。(e.g… 类比、讽刺) 2、限制学习的上下文的token数。 提出了自己的策略: ** Clue And Reasoning Prompting (CARP).线索与推理提示** 1、能用prompt找到clue(语境线索…

前端实现打印功能Print.js

前端实现打印的方式有很多种,本人恰好经历了几个项目都涉及到了前端打印,目前较为推荐Print.js来实现前端打印 话不多说,直接上教程 官方链接: Print.js官网 在项目中如何下载Print.js 使用npm下载:npm install print-js --sav…

抓取网页的含义和URL基本构成

抓取网页是指通过爬虫程序从互联网上获取网页的内容和数据。抓取网页是爬虫的核心功能之一,通过抓取网页,可以获取到网页中的文本、图片、链接等信息,用于后续的数据分析、挖掘和应用。 URL(Uniform Resource Locator&#xff09…

muduo源码剖析之Buffer缓冲区类

简介 Buffer封装了一个可变长的buffer,支持廉价的前插操作,以及内部挪腾操作避免额外申请空间 使用vector作为缓冲区(可自动调整扩容) 设计图 源码剖析 已经编写好注释 buffer.h // Copyright 2010, Shuo Chen. All rights reserved. // http://c…

城市群(Megalopolis)/城际(inter-city)OD相关研究即Open Access数据集调研

文章目录 1 城市群/城际OD定义2 理论模型与分析方法2.1 重力模型 Gravity Model2.2 干预机会模型 Intervening Opportunities Model2.3 辐射模型 Radiation Model 3 Issues related to OD flows3.1 OD Prediction3.2 OD Forecasting3.3 OD Construction3.4 OD Estimation 4 OD …

PHP简单实现预定义钩子和自定义钩子

在PHP中,钩子(Hooks)是一种机制,允许开发人员在特定的时机插入自定义代码。通过使用钩子,开发人员可以在应用程序的特定事件发生时执行自定义的功能或逻辑 钩子有两种类型:预定义钩子和自定义钩子。 预定…

Ubuntu安装docker,并换镜像源详细教程,建议收藏

文章目录 添加docker官方的GPG密钥将docker仓库添加到apt源安装docker检查docker换源 添加docker官方的GPG密钥 sudo apt-get updatesudo apt-get install ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux…

【axios】axios的基本使用

一、 Axios简介 1、 Axios是什么? Axios是一个基于promise的HTTP库,类似于jQuery的ajax,用于http请求。可以应用于浏览器端和node.js,既可以用于客户端,也可以用于node.js编写的服务端。 2.、Axios特性 支持Promis…

Groovy安装开发环境

准备下载GDK并安装环境变量,跟安装JDK一模一样 https://groovy.apache.org/download.html

安装使用vcpkg的简易教程

目录 1. 首先安装vcpkg2. 在vcpkg目录下运行bootstrap-vcpkg.bat 命令3. 接着vs进行集成4. 使用vcpkg搜索可用的包5.下载安装所需包6.下载安装完成 1. 首先安装vcpkg 使用git命令下载 git clone https://github.com/Microsoft/vcpkg.git如果下载失败可直接下载文件 (vcpkg-ma…

基于Pytest+Requests+Allure实现接口自动化测试!

一、整体结构 框架组成:pytestrequestsallure设计模式: 关键字驱动项目结构: 工具层:api_keyword/参数层:params/用例层:case/数据驱动:data_driver/数据层:data/逻辑层&#xff1a…

C++基础:函数模板

为了代码重用,代码必须是通用的;通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数,这种类型的程序设计称为参数化程序设计,软件模板有模板构造,包括函数模板和类模板。 函数模板可以用来…