【Java面试/24春招】技术面试题的准备

Spring MVC的原理
Mybatis的多级缓存机制
线程池的大小和工作原理
在这里插入图片描述

上述问题,我们称为静态的问题,具有标准的答案,而且这个答案不会变化!

如果没有Spring,会怎么样?IOC这个思想是解决什么问题?
如何设计一个支持1000万用户访问的系统
如何设计一个秒杀系统
如果让你设计一个集团层面的全局ID生成器,你怎么做?
。。。【变化↓】
1.没有标准答案,
2.需要你去基于自己的技术积累,总结成自己的理解去回答。(知识积累),判断更加客观
如果单纯是基于面试题来准备面试,99%的概率是无法通过
简历塑造——外在和内在要保持一致

基于技术的理解层次来提高技术思维

@Content 注解的作用,volatile关键字的原理,伪共享问题的原理和解决思路,cpu的多级缓存设计的目的。。。

产生背景
解决问题的方案

不同的作者在解决特定问题的时候,它设计的技术方案以及思考的维度
曾经参与过类似的设计(经验),曾经在某些源码中读过类似的设计思路(见过)

  • [ @Content注解是解决伪共享问题,而伪共享其实是CPU层面多核心设计下存在的一个问题!]

CPU层面的工作原理

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

CPU的迭代发展的目标,提高计算机处理程序的性能
1.多核CPU
2.CPU缓存行,减少内存IO的耗时,带来缓存一致性问题
3.MESI协议,缓存一致性协议,解决缓存一致性问题
4.再优化,引入空间局部性原理(指令预加载)带来伪共享问题
5.采用缓存行填充来解决,@Contend、或者变量的填充,64个字节
核心:提高CPU利用率,增加CPU性能

价值思考:(技术的设计思想)
空间换时间(Mysql-StoreBuffer,Redis,多级缓存【Mybatis,减少sql和数据库的交互】,Eurekas【多级缓存设计,减少读和写】)
空间局部性原理(Mysql预加载机制)
异步化的数据同步(StoreBuffer。。)
多CPU核心(分布式思想)
锁(缓存锁,总线锁)MESI协议

晶体管2进制的计算体系里面,只要没有超脱这个范围,所有上游的思想基本上相同
如何提升内存的使用效率

把一些热点数据放在内存
内存的淘汰机制
内存的释放(JVM垃圾回收器,CMS,G1。。。)

如何提升CPU利用率

如果做架构、技术经历 遇到下面人员不懂的,怎么办?

经验+见过

  • [学习层面 ]
  • [ 知识理解层面]
  • [ 解决问题能力的层面]

思想的沉淀

项目问题、场景问题

  • 空间换时间

  • 预加载机制

  • 异步化

  • 加锁。。。

  • 工作年限

  • 技术的范围

  • 如何在短期内把需要圈定的技术范围,转化为可以表达的能力

面试面什么

  • 面试(3年,5年,项目维度,表达维度,技术维度,深度的思考和技术积累的维度)
  • 弥补短板,针对短板制定一个月的规划
  • 学的东西表达出来
  • 简历/复盘/录音
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

【牛客】VL65 状态机与时钟分频

描述 题目描述: 使用状态机实现时钟分频,要求对时钟进行四分频,占空比为0.25 信号示意图: clk为时钟 rst为低电平复位 clk_out 信号输出 Ps 本题题解是按照1000的状态转移进行的,不按照此状态进行,编译器…

蓝桥杯练习系统(算法训练)ALGO-985 幸运的店家

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱。有趣的是,世界上只有面值…

剑指offer 二维数组中的查找 C++

目录 前言 一、题目 二、解题思路 1.直接查找 2.二分法 三、输出结果 前言 最近在牛客网刷题,刷到二维数组的查找,在这里记录一下做题过程 一、题目 描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照…

微信小程序开发:记一次提审失败的反馈重审

我在第一次提审小程序的时候很明确说了我这个是接入的阿里云的人像动漫化接口,但是还是给我不通过: 说我涉及AI合成,个人是做不了一点AI相关的东西,一点都不行: 我肯定不接受了,反馈说: 还把…

2024.3.6

作业1&#xff1a;使用C语言完成数据库的增删改 #include <myhead.h>//定义添加员工信息函数 int Add_worker(sqlite3 *ppDb) {//准备sql语句printf("请输入要添加的员工信息:\n");//从终端获取员工信息char rbuf[128]"";fgets(rbuf,sizeof(rbuf),s…

ArrayList的扩容机制

ArrayList 的底层操作机制源码分析 ArrayList中维护一个Object类型的数组elementData transient Object[] elementData; //transient表示瞬间 短暂的&#xff0c;表示该属性不会被序列化当创建ArrayList对象时&#xff0c;如果使用的是无参构造器&#xff0c;则初始elementDa…

C#知识点-22(ADO.NET五个对象,SQL漏洞注入攻击)

ADO.NET 概念&#xff1a;ADO.NET就是一组类库&#xff0c;这组类库可以让我们通过程序的方式访问数据库&#xff0c;就像System.IO的类用类操作文件一样&#xff0c;System.Data这组类是用来操作数据库的&#xff08;不光是MSSql Server&#xff09;&#xff0c;它提供了统一…

【Windows 常用工具系列 14 -- windows 网络驱动映射】

文章目录 windows 网络驱动映射 windows 网络驱动映射 映射网络驱动器的意思是将局域网中的某个目录映射成本地驱动器号。 在windows上将服务器目录映射到本地盘&#xff1a; 进入到服务器执行下面命令既可以看到对应的 IP地址&#xff1a; 将对应的IP地址填入上图中。 映…

Synchronized(三:JVM中锁的优化)

简单来说在JVM中的monitorenter和monitorexit字节码依赖于底层的操作系统的Mutex Lock来实现的&#xff0c;但是由于使用Mutex Lock需要将当前线程挂起并从用户态切换到内核态来执行&#xff0c;这种切换的代价是非常昂贵的&#xff1b;然而在现实中大部分情况下&#xff0c;同…

C++ Floyd求最短路 Floyd算法(多源汇最短路)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 再给定 k 个询问&#xff0c;每个询问包含两个整数 x 和 y &#xff0c;表示查询从点 x 到点 y 的最短距离&#xff0c;如果路径不存在&#xff0c;则输出 impossible。 数据…

docker部署前后端分离项目

docker部署前后端分离项目 前提&#xff0c;服务器环境是docker环境&#xff0c;如果服务器没有安装docker&#xff0c;可以先安装docker环境。 各个环境安装docker&#xff1a; Ubuntu上安装Docker&#xff1a; ubuntu离线安装docker: CentOS7离线安装Docker&#xff1a; Cen…

类与对象-对象特性

师从黑马程序员 对象的初始化和清理 构造函数和析构函数 用于完成对象的初始化和清理工作 如果我们不提供构造和析构&#xff0c;编译器会提供编译器提供的构造函数和析构函数是空实现 构造函数&#xff1a;主要用于创建对象时为对象的成员属性赋值&#xff0c;构造函数由编…

什么是机器视觉?

什么是机器视觉 近年来&#xff0c;人工智能渐渐成为一个热点话题。作为人工智能领域的一个分支&#xff0c;图像处理技术也随之发展到了一个新的高度&#xff0c;各种新的软件工具、算法库、开源资料不断涌现&#xff0c;各行各业也渐渐开始进行技术变革。比较典型的例子是&a…

【论文笔记】Gemma: Open Models Based on Gemini Research and Technology

Gemma 日期: March 5, 2024 平台: CSDN, 知乎 状态: Writing Gemma: Open Models Based on Gemini Research and Technology 谷歌最近放出的Gemma模型【模型名字来源于拉丁文gemma&#xff0c;意为宝石】采用的是与先前Gemini相同的架构。这次谷歌开源了两个规模的模型&…

【2024】vue-router和pinia的配置使用

目录 vue-routerpiniavue-routerpinia进阶用法---动态路由 有同学在项目初始化后没有下载vue-router和pinia&#xff0c;下面开始&#xff1a; vue-router npm install vue-router然后在src目录下创建文件夹router&#xff0c;以及下面的index.ts文件&#xff1a; 写进下面的…

短剧小程序:掌中剧院,随时上演

在繁忙的生活节奏中&#xff0c;我们总渴望找到一片属于自己的休闲空间。短剧小程序&#xff0c;就是这样一处随时随地都能让你沉浸其中的掌上剧院。无论你在何处&#xff0c;无论何时&#xff0c;只要轻轻一点&#xff0c;精彩纷呈的短剧即刻上演。 一、掌中剧院&#xff0c;…

学习Java的第二天

如何使用文本文档在cmd里打印出HelloWorld 1、创建一个文本文档&#xff0c;并命名为HelloWorld&#xff0c;将后缀改为java&#xff08;需要自己去把后缀打开显示出来&#xff09; 2、打开编辑 也可以双击打开 3、在里面写出以下代码 上面红框里为你要打印的语句&#xff0c;…

MySql、Navicat 软件安装 + Navicat简单操作(建数据库,表)

一、MySql、Navicat 软件安装 及正常使用 MySql下载&#xff0b;安装&#xff1a; 检查安装情况&#xff1a; 配置环境变量&#xff1a; 搞定了&#xff01;&#xff01;&#xff01; 可以登陆试哈哈哈 连接navicat 开始创建数据库 二、 商品种类表 - commoditytype int …

【C++】102.二叉树的层序遍历

题目描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]]示例 2&#xff1…

自学Java的第二十一天(在学校版)

一&#xff0c;每日收获 类与对象 1.看一个养猫猫问题 2.使用现有技术解决 Object01.java 3.类与对象的关系示意图 4.快速入门 5.类和对象的区别和联系 6.对象在内存中存在形式 7.属性/成员变量/字段 8.如何创建对象 9.如何访问属性 二&#xff0c;新名词与小技巧 三…