当前位置: 首页 > 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 等研究工作紧随其后…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...