面试八股文之JAVA基础

news2024/11/17 15:26:19

JAVA基础

  • DNS、CDN?
  • 如何实现对象克隆?
  • 父子类静态代码块, 非静态代码块, 构造方法执行顺序?
  • String s = new String("abc") 创建了几个对象, 分别放到哪里?
  • OSI网络模型七层?
  • 应用层协议?
  • http协议和https协议区别?
  • 传输层协议有哪些以及区别?
  • http协议是长连接还是短连接?
  • http常用响应码以及含义?
  • 常用的请求方式有哪些以及作用?
  • try、catch、finally 考察?
  • 基本数据类型?
  • int的取值范围?
  • token刷新(保活)?
  • 对称加密和非对称加密有什么区别?
  • 用过那些加密算法?
  • 字节流和字符流有什么区别?
  • 拆箱和装箱?
  • TCP(传输控制协议)和UDP(用户数据报协议)区别?
  • 锁相关?
  • 死锁和活锁的区别?
  • 解决死锁?
  • 封装、继承、多态?
  • jdk8的新特性?
  • 为什么需要包装类?包装类的值比较要使用什么方法?包装类有哪些功能?
  • Java中的类型有哪些?
  • 什么是字符串常量池?
  • 线程中的 start() 和 run() 有那些区别?
  • ThreadLocal 有什么用?
  • String、StringBuffer、StringBuilder 的区别?
  • String 对象的 intern() 有什么作用?
  • Cookie、Session和Token的区别?
  • 什么是反射?
  • 什么地方用到反射?
  • 接口和抽象类的区别?
  • 值传递和引用传递的区别?
  • 重载和重写的区别?
  • JAVA中sleep()和wait()方法的区别?
  • JAVA单例模式的区别?
  • 什么是悲观锁和乐观锁?
  • HashMap底层原理?
  • 方法区、栈区、堆区?
  • synchronized和lock的区别?
  • volatile和synchronized有什么区别?
  • ==和equals的区别?
  • get 和 post 请求有哪些区别?
  • 如何防止表单重复提交?
  • list和linklist区别?

DNS、CDN?

  • DNS:即域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。
  • CDN:即内容分发网络,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

如何实现对象克隆?

实现 Cloneable 接口并重写 Object 类中的 clone()方法;
实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆

父子类静态代码块, 非静态代码块, 构造方法执行顺序?

  • 父类 - 静态代码块
  • 子类 - 静态代码块
  • 父类 - 非静态代码
  • 父类 - 构造函数
  • 子类 - 非静态代码
  • 子类 - 构造函数

String s = new String(“abc”) 创建了几个对象, 分别放到哪里?

3个对象, s是引用对象, 放到栈里, s中存储的是内存地址,

new String是一个对象, 放到堆里, "abc"是一个字符串对象, 放到堆里.

OSI网络模型七层?

应用层, 表示层, 会话层, 传输层, 网络层, 数据链路层, 物理层.

应用层协议?

http协议, https协议, FTP协议, SIP协议, POP3和SMTP协议等

http协议和https协议区别?

http不安全, https协议安全, 因为https协议在传输过程中, 传输的内容会进行加解密.

原理是跟国家有关部门花钱申请CA证书, 将证书部署到tomcat服务器中, 那么传输的内容会经过CA证书进行加解密, 这样传输的内容是安全的.

传输层协议有哪些以及区别?

传输层只有两个协议, 一个是tcp, 一个是udp

tcp: 传输过程中有三次握手, 四次挥手过程. 所以传输的速度比udp慢, 但是不容易丢数据包.(HTTP协议是基于TCP协议的,发送数据之前需要建立好连接;)

udp: 传输过程是无状态的, 传输速度快, 但是容易丢数据包. 主要使用在视频, 语音传输中.

http协议是长连接还是短连接?

http协议1.0是短连接, http协议是1.1那么是长连接.

http常用响应码以及含义?

2XX: 成功

3XX: 重定向

4XX: 访问的资源错误, 或者不存在.

5XX: 服务器内部错误.也就是java代码中出现了问题.

常用的请求方式有哪些以及作用?

get: 一般用作查询

post: 一般用作添加

put: 一般用作修改

delete: 一般用作删除.

options: 一般前后端分离的项目中使用options发送一个简单的请求, 测试请求是否成功, 如果成功才会继续发业务请求(get, post, put, delete), 如果options尝试访问失败, 那么不会再发业务请求.

try、catch、finally 考察?

public class TryDemo {
public static void main(String[] args) {
System.out.println(test());
}
public static int test() {
try {
return 1;
} catch (Exception e) {
return 2;
} finally {
System.out.print("3");
       }
   }
}

在 return 前会先执⾏ finally 语句块,所以是先输出 finally ⾥的 3,再输出 return 的 1。
如果finally里有return则不会执行try里面的return。

基本数据类型?

Java 中的基本数据类型只有8个:byte、short、int、long、float、double、char、
boolean;除了基本类型,剩下的都是引⽤类型。

  • 基本数据类型数据直接存储在栈上

  • 引⽤数据类型区别数据存储在堆上,栈上只存储引⽤地址

  • char: 1个字节

  • short: 2个字节

  • int: 4个字节

  • long: 4个字节

int的取值范围?

int为4个字节:1字节=8位,所以int为32位在计算机中存储的二进制位数。

如果没有符号位的话: 就是32位:表示数的范围为2的32次方(可以举例数字就明白了).

最大的整数为:2的32次方-1。

就是这么大:

unsigned int 0~4294967295

token刷新(保活)?

使用两个token,一个是真正的access_token时效短(2h),另外一个refresh_token时效长(7day)用于刷新token。用redis存储access_token,设置过期时间。
情况1:refresh_token过期,重新登录获取access_token
情况2:refresh_token没过期,access_token过期,不用登录,后端刷新access_token。

对称加密和非对称加密有什么区别?

  • 对称加密:使用一把密钥,加密和解密算法一样的;
  • 非对称加密:使用2把密钥,一把公钥,一把私钥;

用过那些加密算法?

  • base64:严格来说是一种编码和解码的算法;
  • MD5:将明文生成一个128位的字符串;
  • BCrypt算法:自带盐值(密文中),对于同一个密码,每次生成的密文是不同的(随机盐值);

字节流和字符流有什么区别?

  • 字节流:
    1、字节流以字节为单位进行读写,适用于处理二进制数据或者未经编码的文本数据。
    2、字节流通常用于处理图片、音频、视频等二进制数据,以及不需要考虑字符编码的文本数据。
    3、字节流的类包括InputStream和OutputStream。
  • 字符流:
    1、字符流以字符为单位进行读写,适用于处理文本数据,可以自动处理字符编码和解码。
    2、字符流通常用于处理文本文件、网络通信中的文本数据等需要考虑字符编码的场景。
    3、字符流的类包括Reader和Writer。

拆箱和装箱?

  • 装箱就是自动将基本数据类型转换为包装类型;
  • 拆箱就是自动将包装类型转换为基本数据类型
  • 这两种转换都是在需要的时候由编译器自动完成的,因此可以称为隐式转换

TCP(传输控制协议)和UDP(用户数据报协议)区别?

  • TCP是面向连接的,UDP是无连接的
  • TCP是可靠的,UDP是不可靠的
  • TCP是面向字节流的,UDP是面向数据报文的
  • TCP只支持点对点通信,UDP支持一对一,一对多,多对多
  • TCP报文首部20个字节,UDP首部8个字节
  • TCP有拥塞控制机制,UDP没有
  • TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区

锁相关?

  • synchronized:重量级锁,依赖于操作系统,自动加锁和自动释放锁,是一个关键字,不可以被打断;
  • lock:是一个接口,手动加锁和释放锁,可以被打断;

死锁和活锁的区别?

  • 死锁:多个线程相互占用对方的资源的锁,一直处于阻塞状态;
  • 互斥条件
    临界资源是独占资源,进程应互斥且排他的使用这些资源。
  • 请求和保持条件
    进程在请求资源得不到满足而等待时,不释放已占有资源。
  • 不剥夺条件
    又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺。
  • 循环等待条件
    又称环路条件,存在循环等待链,其中,每个进程都在等待链中等待下一个进程所持有的资源,造成这组进程处于永远等待状态。
    死锁只有在这四个条件同时满足时出现。
  • 活锁:活锁是拿到资源却又相互释放不执行;

解决死锁?

  • 避免使用多个锁:尽量减少代码中使用多个锁的情况,减少死锁的概率。

  • 避免循环等待:尽量避免线程之间形成循环等待的情况,可以通过统一获取锁的顺序来避免循环等待。

  • 使用定时锁:在获取锁的时候设置超时时间,如果超过一定时间还未获取到锁,则放弃锁并进行相应的处理。

  • 使用线程池:使用线程池来管理线程的执行顺序,避免线程之间的竞争和死锁。

  • 使用并发工具类:使用Java并发工具类如ReentrantLock、Semaphore等来替代synchronized关键字,这些工具类提供了更灵活的锁管理方式。

  • 使用死锁检测工具:可以使用一些工具来检测死锁的发生,如jstack、jconsole等,及时发现并解决死锁问题。

封装、继承、多态?

  • 封装:它指的是将数据和方法包裹在类中,并对外部隐藏具体实现细节。
  • 继承:通过继承,子类可以扩展或修改从父类继承而来的属性和方法,实现代码的重用和扩展。
  • 多态是指同一种类型的对象,在不同情况下可以表现出不同的行为,它包括编译时多态(重载)和运行时多态(重写)两种形式。

jdk8的新特性?

  • Stream API:(集合、或者数组创建stream,中间操作,过滤、map,终止操作)

            1.根据List获取流
    
              2.根据Set获取流
    
              3.根据Map获取流
    
                      3.1根据Map集合的键来获取流
    
                      3.2根据Map集合的值获取流
    
                      3.3根据Map集合的键值对对象获取流
    
              4.根据数组获取流
    

在这里插入图片描述

  • 新时间日期API:LocalDateTime

Java8新增的日期类主要有三个:

LocalDate:表示日期(年月日)

LocalTime :表示时间(时分秒)

LocalDateTime:表示时间+ 日期 (年月日时分秒),是java8最常用的日期类

  • Lambda表达式:代码更少只有确保接口中仅有一个抽象方法
    在这里插入图片描述
  • 函数式接口:有且仅有一个抽象方法的接口(体现在lambda表达式)
  • HashMap:底层转化为数组+链表+红黑树。
  • 接口的默认方法:在接口中可以有方法的实现,default默认关键字。

为什么需要包装类?包装类的值比较要使用什么方法?包装类有哪些功能?

包装类是将基本类型转化为对象的机制,基本数据类型不具备对象的特性,不能直接调方法或者参与面向对象的操作。所以需要使用包装类。

可以直接使用equals方法进行比较,因为包装类是对象,对象之间比较值应该用equals方法。

功能:1.将基本类型转化为包装类 2,提供了和基本数据类型相对应的静态常量和方法

3,支持自动拆箱和装箱 4,提供一些额外的功能方法,如对数字进行格式化,转化

Java中的类型有哪些?

基本类型,引用类型(对象,接口,数组,字符串)

什么是字符串常量池?

是java提供对频繁创建字符串的一种解决方案,同一个对象创建多次,占用多个内存空间。
所有在创建一个字符串时,会先判断字符串常量池是否已经存在该字符串,不存在则创建,存在则返回这个对象的地址。

线程中的 start() 和 run() 有那些区别?

start():线程启动时调用,线程处于就绪状态;
run():线程运行时调用,线程处于运行状态;

ThreadLocal 有什么用?

可以保证线程安全,每个线程都会创建一个线程副本,set和get的值是同一个;

String、StringBuffer、StringBuilder 的区别?

string类是不可变的(也就是说一旦创建了一个字符串对象,就不能再修改它的值。因此,每次对字符串进行操作时,都会创建一个新的字符串对象,这样会产生大量的临时对象,影响程序的性能。)

stringBuffer,可变的,它们可以更改已有对象中的字符内容,而不必创建新的对象,线程安全(使⽤ synchronized 来保证线程安全);

stringBuilder是可变的,它们可以更改已有对象中的字符内容,而不必创建新的对象,线程不安全;

String 对象的 intern() 有什么作用?

1,字符串的重用(通过调用intern()方法,可以将字符串对象放入字符串常量池中,并返回常量池中的引用。这样可以避免创建多个相同内容的字符串对象,节省内存空间。),2,字符串的比较和优化(由于字符串常量池中的字符串是唯一的,所以可以使用==运算符来比较字符串对象的引用是否相等,而不需要使用equals()方法进行内容比较,提高比较的效率。)

Cookie、Session和Token的区别?

  • cookie和session都是浏览器的会话跟踪技术,解决http无状态的问题;
    Cookie:放在客户端,只能放字符串,大小有限制,不安全,会根据域名自动携带;
    Session:放在服务端,数据大小,类型没有限制,占用服务器资源,相对安全
    Token:不局限域浏览器,没有客户端限制,可以实现单点登录,可以揉入一些数据

什么是反射?

反射是java提供的一种机制,这个机制可以动态的获取一个类或对象的内部结构(属性,方法,接口,父类),还可以调用方法和修改属性。

什么地方用到反射?

自己写的工具类,框架
常用API
1,Class:表示字节码的文件对象
2,Method:对方法的封装
3,Field:对属性的封装
4,Parameter:方法形参的封装
5,Constructor:获取构造函数

接口和抽象类的区别?

  • 接口是一组抽象方法的集合,没有具体实现。接口定义了一个规范,要求实现该接口的类必须提供对应的方法实现。接口中的所有方法默认都是public,而且不能包含成员变量。一个类可以实现多个接口,从而实现多重继承。

  • 抽象类是一个类,它可以包含抽象方法和具体方法。抽象方法是没有具体实现的方法,需要由子类来实现。抽象类可以包含成员变量,可以有构造方法和非抽象方法。一个类只能继承一个抽象类,但是可以同时实现多个接口。

1、接口只定义了抽象方法,没有具体实现,而抽象类可以包含抽象方法和具体方法。
2、一个类可以实现多个接口,但只能继承一个抽象类。
3、接口中的所有方法默认都是public,而抽象类可以有不同的访问控制符。

值传递和引用传递的区别?

值传递:在方法调用时,将实际参数的副本传递给方法,当你在方法内部修改参数的值时,只会影响副本,不会影响原始的变量。(基本类型的传递)
引用传递:在方法内部操作会影响到原始数据,但如果重新分配一个新的对象,原始对象不会改变。(对象的传递)

重载和重写的区别?

重载:方法名称相同,参数列表不同,和返回值没有关系;
重写:方法名称相同,参数列表相同,返回值相同;

JAVA中sleep()和wait()方法的区别?

sleep属于Thread类,wait属于object类
sleep()睡眠时不会释放锁,wait会
sleep()睡眠指定时间会自动唤醒,wait()需要手动唤醒

JAVA单例模式的区别?

懒汉式:在第一次调用获取实例的方法才创建,可能存在线程安全问题,(非原子操作懒汉式在第一次获取实例时才进行实例化操作,然而实例化操作通常不是原子操作,而是包括了对变量的初始化、内存分配和赋值等多个步骤。在多线程环境下,如果两个线程同时通过了实例是否为空的判断,然后都尝试去实例化对象,就有可能导致创建多个实例的情况。)
饿汉式:在类加载的时候就会创建,不存在线程安全问题

什么是悲观锁和乐观锁?

悲观锁:的基本思想是,在整个数据处理过程中,将数据加锁,防止其他事务同时修改数据。
当一个事务访问数据时,悲观锁会认为其他事务可能会对数据进行修改,因此会直接对数据进行加锁,使其他事务无法访问或修改数据,直到当前事务完成。
悲观锁适用于并发写入较多、冲突概率较高的场景,但它的缺点是会导致其他事务等待,并发性能相对较低。

乐观锁的基本思想是,假设在整个数据处理过程中,不会有其他事务修改数据,因此不进行加锁操作。
当一个事务要对数据进行修改时,乐观锁不会立即加锁,而是在提交时检查是否有其他事务修改过数据。如果有冲突,则放弃当前事务的修改,重新尝试,直到成功或达到一定的尝试次数。(一般用数据版本机制或者CAS:比较并交换)。
乐观锁适用于并发读取较多、冲突概率较低的场景,它不会对数据进行加锁,因此并发性能相对较高,但需要增加冲突检测和重试机制。

HashMap底层原理?

数组+链表+红黑树,先通过key计算出hascode值,通过hash函数算出对应在数组的下标,
不同的key可能算出相同的hashcode。所以当发生hash冲突时,hashmap采用链表法,当超过一定的阈值时,自动转为红黑树。(当元素超过数组的0.75倍会扩容成原来2倍)

方法区、栈区、堆区?

在这里插入图片描述
方法区放静态方法,静态变量,字符串常量
堆区:放对象
栈区:放变量

synchronized和lock的区别?

1,synchronized是一个关键字,而lock是一个接口。
发生异常时synchronized会自动释放锁,而lock需要手动释放。如果没有释放容易造成死锁问题,所以需要在finally里调用unlock方法释放。
2,lock是可中断锁,而synchronized不是。
3,synchronized是重量级锁
4,Lock 获取锁和释放锁都是显式的,不像 synchronized 是隐式的。所以 synchronized 会在抛异常时自动释放锁,而 Lock 只能是主动释放,加解锁都必须有显式的代码控制。

volatile和synchronized有什么区别?

volatile关键字保证了线程的可见性,就是说当一个修改volatile关键字的变量的值,其他线程立马可以看见。同时volatile关键字还有防止指令重排序。轻量级性能更快,只能保证单个读/写操作的原子性,无法保证整个操作序列的原子性。

==和equals的区别?

==比较基本类型的时候是比较值是否相同,比较对象时是比较地址。
equals是对内容的比较,需要重写equals方法。

get 和 post 请求有哪些区别?

  • get请求一般用来获取数据的,post请求一般是用来传递数据到后端;
  • get请求传递数据一般在地址栏传递,post请求在请求体传递数据(url中也可以传参,一般不用);
  • get请求刷新浏览器或回退没有影响,post请求刷新会重新请求一遍;
  • get请求可以缓存在浏览器记录中,post请求不会缓存在浏览器记录中;

如何防止表单重复提交?

接口幂等性问题,后端第一接收到提交请求时,后端生成唯一标识,存储在缓存或者会话中返回给前端,当后续请求到达时,将唯一标识一起携带,后端先检测是否携带有唯一标识,有就拒绝,没有就处理。

list和linklist区别?

  • list是一个接口,而linklist实现了这个接口。

  • List 使用数组作为底层数据结构,可以通过索引快速定位元素,因此在查询和搜索元素时性能更好。但在插入和删除元素时,需要移动其他元素来维持顺序,因此性能较差。(查询快,修改慢)

  • LinkedList 使用双向链表作为底层数据结构,插入和删除元素只需要修改相邻节点的指针,因此性能更好。但在查询和搜索元素时需要遍历整个链表,性能较差。(修改快,查询慢)

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

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

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

相关文章

STM32学习笔记(7_1)- ADC模数转换器

无人问津也好,技不如人也罢,都应静下心来,去做该做的事。 最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com 本期开…

QGIS开发笔记(一):QGIS介绍、软件下载和加载shp地图数据Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136888334 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第三、四章

概述 本文主要提供《C语言程序设计》(浙大版) 第三、四章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第五、六章节课后习题解析,如想了解更多,请持续关注该专栏。 专栏直达链接:《C语言程序设计》(浙大版)_孟…

【Python】进阶学习:pandas--describe()函数的使用介绍

🐍【Python】进阶学习:pandas——describe()函数的使用介绍 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&am…

抖音弹幕游戏开发:打造全新互动体验,引领潮流风尚

在数字科技迅猛发展的时代,抖音作为一款领先的短视频平台,始终走在创新的前沿。为了满足用户日益增长的互动需求,我们投入大量研发力量,成功推出了抖音弹幕游戏开发项目,旨在为用户带来一种全新的、沉浸式的互动体验。…

鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?

场景介绍 应用在不同屏幕大小的设备上运行时,往往有不同的UI适配,以聊天应用举例: 在窄屏设备上,联系人和聊天区在多窗口中体现。在宽屏设备上,联系人和聊天区在同一窗口体现。 要做好适配,往往需要开发…

Alpha律所管理系统,助力律师团队管理提效再升级

律师团队管理,是律所成长与发展经久不衰的议题。无论是律所的创办还是扩张,管理者首先要考虑的就是管理模式的选择与更新问题,这几乎成为一个律所能否长远发展的关键“七寸”。那么,到底为什么团队管理如此重要,做好管…

【实现100个unity特效之7】unity 3d实现各种粒子效果

文章目录 先看最终效果下雨效果萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合其他特效爆炸、闪电、火焰、雷雨特效(2023/7/5更新)源码完结 先看最终效果 下…

冰岛人[天梯赛]

文章目录 题目描述思路AC代码 题目描述 输入样例 15 chris smithm adam smithm bob adamsson jack chrissson bill chrissson mike jacksson steve billsson tim mikesson april mikesdottir eric stevesson tracy timsdottir james ericsson patrick jacksson robin patrickss…

图片如何做成二维码?手机扫码看图的制作方法

现在用二维码来展示图片、照片时很常用的一种方式,通过扫秒二维码就能够在手机上预览图片,更加的方便快捷。在制作图片二维码的时候,有些情况下需要不定时的在二维码图案不变的情况经常性的修改内容,或者除了图片之外还要加入其它…

【数据结构】受限制的线性表——队列

🧧🧧🧧🧧🧧个人主页🎈🎈🎈🎈🎈 🧧🧧🧧🧧🧧数据结构专栏🎈🎈🎈&…

最新版CleanMyMac X4.15.2有哪些亮眼的更新?

CleanMyMac X是一款专为macOS系统设计的清理和优化工具,它集成了多种功能来帮助用户保持Mac系统的整洁、高效和安全。 首先,CleanMyMac X具备智能扫描和清理功能,能够自动识别并清理Mac上的各种垃圾文件,包括重复文件、无用的语言…

《AI绘画与修图实战:Photoshop+Firefly从入门到精通》

关键点 1.自学教程:内容安排由浅入深、循序渐进,130多个经典AI案例案例助你在实战中掌握技巧 2.技术手册:透彻讲解PSAI、Firefly+AI的绘画和修图实战技巧,高效率学习 3.老师讲解:赠送170分钟频教程和数百个…

企业内推平台招聘信息采集与分析在线项目实习

师傅带练 项目背景 为了实现有效的招聘,企业需要制定明确的招聘需求,根据业务发展需求和市场变化,精准定位所需人才的类型和层次,提高招聘效率和质量。而招聘网站需要积极满足企业的需求,提供针对性的服务&#xff0…

c语言--跳出continue、break

C 语言中的 continue 语句有点像 break 语句。但它不是强制终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。 对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句重新…

【面试题】数据底层原理:Elasticsearch写入流程解析

前言:本篇博客将介绍Elasticsearch的数据底层原理,涉及数据写入的过程以及相关概念。我们将深入探讨buffer、translog、refresh、commit、flush和merge等核心概念,帮助您更好地理解Elasticsearch的数据存储机制。 写入数据的基本过程 Elast…

【牛客】【刷题节】美团2024届秋招笔试第一场编程真题

1.小美的外卖订单【简单题】 题意理解: 这道题是简单题,主要是一个逻辑实现和判断的问题。但是简单题一般喜欢加一点小障碍,所以读题的时候就要比较注意一些约束条件。就比如这道题:过了15/20个测试用例,出现error, 当…

蓝桥杯小白月赛3.23

题目描述&#xff1a; AC代码&#xff1a; #include <iostream> #include<cstring> #include<algorithm>using namespace std;const int N 2e510; string str[N]; //写上&会速度更快一些 bool cmp(const string &s1,const string &s2) {//例…

金色传说:SAP-PP-CO01/CO02生产订单释放时增强:检查并显示下层组件在不合格库存地库存

文章目录 需求场景一、实现的效果二、实现步骤1.创建自建表2.增强代码 三、重磅福利 需求场景 计划员释放订单时,如果下层组件在不合格库存中有库存时,应先确认不合格库存地库存是否可用,已避免重复生产和库存积压. 因此,提出此需求: 在生产订单下达(释放)时,要提示下层组件在…

七段码(蓝桥杯)

文章目录 七段码题目描述答案&#xff1a;80分析编程求解&#xff1a;有多种方法方法一&#xff1a;状态压缩枚举构图&#xff08;以二极管为顶点&#xff09;DFS判断连通代码方法二&#xff1a;bfs 七段码 题目描述 小蓝要用七段码数码管来表示一种特殊的文字。 上图给出了…