当前位置: 首页 > news >正文

痛失offer的八股

java面试八股

mysql篇:

事物的性质:

事物的性质有acid四特性。

 a:automic,原子性,要么全部成功,要么全部失败,mysql的undolog,事物在执行的时候,mysql会进行一个快照读,如果失败,那么久进行回滚。

c:一致性,能够保留数据库的完整性约束条件。

i:隔离性:事物在并发执行的时候是互相不干扰的。

d:持久性:mysql能够将数据持久化到磁盘中。

事物的隔离级别

能够读取未提交的数据: (读未提交): 对于同一个数据页, 该事物能够读取到其他事物对数据页未提交的数据。可能会出现脏读,不可重复读、幻读

读已提交(read-committed):对于这个数据页  , 只能够读取到已经提交的数据。但是可能造成不可重复读,幻读。

可重复读(repeattable-read):对同一个字段多次读取的结果是一致的,除非本身的事物修改,但是可能造成幻读。

可串行化: 加锁的方式,可以避免脏读、不可重复读、幻读。

脏读,幻读,不可重复读

脏读:  当一个事物正在访问数据并且对其进行修改,但是还没有提交事物,这个时候另一个事物访问了这个数据,然后使用了这个数据, 但是此时数据库中还没有这个数据,被访问出来的数据就是脏数据。

修改丢失:一个事物读取数据,另一个数据也访问了该数据,那么第一个事物修改了这个数据之后,另一个事物也修改了这个数据  。那么第一个事物修改的数据就没了,这就是数据的修改丢失。

不可重复读: 事物内多次读取同一个数据,在这个事物还没有结束的时候,另一个事物也访问了这个数据并对这个数据进行了修改,那么第一个事物在之后的读取这个数据的时候就出现了不一致,这种就是不可重复读。

幻读:与他类似,反复读同一个数据页,在反复读的时候,另一个事物对这个数据页进行了插入数据,导致第一个事物读取到的数据就会比上一次读到的数据多。

不可重复读和幻读最大的区别就是,在一个事物进行重复读某个数据页的时候出现了,另一个事物进行修改或者是增加。

mysql的锁的优缺点,平常使用什么锁:

锁的详解:常见的锁大致可以分为三种:全局锁,表锁,行锁

全局锁,就是给整个数据库加个锁。全局读锁: Flush tables with read lock。除了read外,其他的都会被阻塞。 

使用的场景:一般使用来做全库的逻辑备份,对所有的表进行锁定。

表锁: 锁顶的粒度大,容易发生冲突。

     共享读锁: 其他的事物能够进行读取。但是不能够进行修改。

     lock table  read/write 。 unlock table /客户端断开连接

     表独占写锁 :加上这个锁之后,其他的客户端的请求全部堵死。

行锁

     共享锁:s锁  多个事物对于同一组数据能够共享一把锁,能够read  ,不能修改。同时能够阻止之后想对这个数据组进行加上排他锁

     排他锁:x锁: 就是只能够一个事物获取到对与当前的数据组的read,  修改。如果之后还有其他事物对她进行加锁,那么全部阻止。

      

        间隙锁:锁住当前数据之间的间隙, 确保当前的索引,防止其他的事物进行jinsert, 防止幻读。。

        临键锁: 锁住了数据,同时锁住了数据之间的间隙,防止插入数据和修改数据

spring和springboot的缺点和区别:ioc和aop具体的什么原理

springcloud的nacos:如何进行路由的转发,默认心跳的时间 ,gateway等

jvm的具体对象的具体流程

jvm双亲委派机制

jvm的gc垃圾回收流程

jvm的gc垃圾回收的算法有哪些?

jvm的类加载器?

下次要将自己会使用平常的sdk,人脸识别等等。

jvm垃圾回收

jvm将字节码文件 转到操作系统。

jvm里面的垃圾 

像是c和c++必须进行手工的回收。java中youjvm进行自动回收。golang

自动化回收,在分配内存之后,会自动回收内存。  1个对象有

没用的东西回收。垃圾回收器有10种。

parallel 和po  Gone   

gc root: root searching(根可达)

如果说线每段的有断了。

怎么找垃圾:root searching(跟可达方法找垃圾)

垃圾回收的算法:标记清除,标记压缩,拷贝。

标记删除:标记之后将他清除,内存会变成碎片化。

拷贝:一个内存只能够使用一半,不能够全部使用,将有用的复制到另外一个地方。然后将原本的一般全部清掉。

标记拷贝就是:在标记删除之后,整理内存留下的数据,达到一个内存不再碎片化。

gc演化:1.8分代管理内存逻辑

新生代                 老年代

1:2 比例。

8:1:1.这个比列就是jvm调优

新生的 对象一般在新生代,新生代装满之后gc。gc发现有些对象一值有用,进行标记次数,多了就放到老年代。老年代满了之后就删除。

伊甸ygc:新生的对象满了之后 ygc。把活着的对象,放到survivor中,然后进行整块清空

和两个幸存者的 处置清除两个 ,然后幸存的复制到其中的一个空的survivor中。

最后survivor装不下了,到老年代。

 

相关文章:

痛失offer的八股

java面试八股 mysql篇: 事物的性质: 事物的性质有acid四特性。 a:automic,原子性,要么全部成功,要么全部失败,mysql的undolog,事物在执行的时候,mysql会进行一个快照读…...

【Git】第一课:Git的介绍

简介 什么是Git? Git是一个开源的分布式版本控制系统,用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现已成为开源软件开发中最流行的版本控制系统,没有之一。Git允许多人同时在不同的分支上工作&…...

知识蒸馏——深度学习的简化之道 !!

文章目录 前言 1、什么是知识蒸馏 2、知识蒸馏的原理 3、知识蒸馏的架构 4、应用 结论 前言 在深度学习的世界里,大型神经网络因其出色的性能和准确性而备受青睐。然而,这些网络通常包含数百万甚至数十亿个参数,使得它们在资源受限的环境下&…...

【爬虫】Selenium打开新tab页截图并关闭

如果说 你曾苦过我的甜 我愿活成你的愿 愿不枉啊 愿勇往啊 这盛世每一天 山河无恙 烟火寻常 可是你如愿的眺望 孩子们啊 安睡梦乡 像你深爱的那样 🎵 王菲《如愿》 在自动化测试和网页抓取中,Selenium WebDriver 是一个强大的工具&…...

09 事务和连接池

文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …...

P4344 [SHOI2015] 脑洞治疗仪 线段树+二分

主要是维护一个连续区间,比较经典的题目,还要考虑一下二分的情况,否则很难处理,比较有难度。这里和序列操作一题的区别是不需要考虑1的个数,因为不需要取反。传送门https://www.luogu.com.cn/problem/P4344 #include&…...

解决大型语言模型中的幻觉问题:前沿技术的综述

大型语言模型中的幻觉问题及其解决技术综述 摘要 大型语言模型(LLM)如GPT-4、PaLM和Llama在自然语言生成能力方面取得了显著进步。然而,它们倾向于产生看似连贯但实际上不正确或与输入上下文脱节的幻觉内容,这限制了它们的可靠性和安全部署。随着LLM在…...

机器学习流程—AutoML

文章目录 机器学习流程—AutoMLAutoML工具Auto-SKLearnMLBoxTPOTRapidMinerPyCaretAuto-KerasH2OAutoML谷歌AutoML云Uber LudwigTransmogrifAIAutoGluonAutoWekaDataRobot...

Ubuntu 23.10 tar包安装和配置Elasticsearch kibana 7.13.3

目录 一、环境说明 二、准备工作 三、安装elasticsearch 3.1 安装elasticsearch 3.2 添加服务和设置开机启动 四、安装kibana 4.1. 安装kibana 4.2 添加服务和设置开机启动 出于工作需要,需要在Ubuntu 23.10系统上通过tar包方式安…...

glibc内存管理ptmalloc

1、前言 今天想谈谈ptmalloc如何为应用程序分配释放内存的,基于以下几点原因才聊它: C/C 70%的问题是内存问题。了解一点分配器原理对解决应用程序内存问题肯定有帮助。C也在用ptmalloc. 当你在C中new一个对象时,底层还是依赖glibc中的ptma…...

HarmonyOS入门学习

HarmonyOS入门学习 前言快速入门ArkTS组件基础组件Image组件Text组件TextInput 文本输入框Buttonslider 滑动组件 页面布局循环控制ForEach循环创建组件 List自定义组件创建自定义组件Builder 自定义函数 状态管理Prop和LinkProvide和ConsumeObjectLink和Observed ArkUI页面路由…...

【Mock|JS】Mock的get传参+获取参数信息

mockjs的get传参 前端请求 const { data } await axios("/video/childcomments", {params: {sort: 1,start: 2,count: 5,childCount: 6,commenIndex: 0,},});后端获取参数 使用正则匹配url /*** # 根据url获取query参数* param {Url} urlStr get请求获取参数 eg:…...

spring cloud gateway k8s优雅启停

通过配置readiness探针和preStop hook,实现优雅启动和停止(滚动部署) 1. k8s工作负载配置 readinessProbe:httpGet:path: /datetimeport: 8080scheme: HTTPinitialDelaySeconds: 30timeoutSeconds: 1periodSeconds: 30successThreshold: 1fa…...

嵌入式软件面试-linux-中高级问题

Linux系统启动过程: BIOS自检并加载引导程序。引导程序(如GRUB)加载Linux内核到内存。内核初始化硬件,加载驱动,建立内存管理。加载init进程(PID为1),通常是systemd或SysVinit。init…...

css禁用元素指针事件,鼠标穿透,点击下层元素,用`pointer-events:none;`

pointer-events: 对鼠标事件的反应 MDN pointer-events 英文 https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events 菜鸟教程 CSS pointer-events 属性 https://www.runoob.com/cssref/css3-pr-pointer-events.html 常用取值 auto 和 none pointer-events: aut…...

Eureka的介绍和作用,以及搭建

一、Eureka的介绍和作用 Eureka是Netflix开源的一种服务发现和注册工具,它为分布式系统中的服务提供了可靠的服务发现和故障转移能力。Eureka是Netflix的微服务架构的关键组件之一,它能够实时地监测和管理服务实例的状态和可用性。 在Eureka架构中&…...

shell和linux的关系

Shell 和 Linux 之间存在密切的关系,但它们并不是同一个东西。让我们分别了解一下它们: Linux: Linux 是一个自由和开放源代码的类UNIX操作系统。 Linux 的内核由林纳斯托瓦兹(Linus Torvalds)于1991年首次发布&…...

数据在内存的存储

整数在内存中的存储 我们来回顾一下,整数在计算机是以补码的形式进行存储的,整数分为正整数和负整数,正整数的原码、反码和补码是一样的,负整数的原码、反码和补码略有不同(反码是原码除符号位,其他位按位取…...

JavaScript之ES中的类继承与Promise

类 ES5中的类及继承 //人function Person(name,age){this.name name;this.age age;}Person.prototype.eat function () {console.log(this.name "eat");}//程序员,继承,人function Programmer(name,age,language){//构造函数继承Person.…...

​浅析多模态大模型技术路线梳理

前段时间 ChatGPT 进行了一轮重大更新:多模态上线,能说话,会看图!微软发了一篇长达 166 页的 GPT-4V 测评论文,一时间又带起了一阵多模态的热议,随后像是 LLaVA-1.5、CogVLM、MiniGPT-5 等研究工作紧随其后…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...