【后端开发】JavaEE初阶——计算机是如何工作的???
前言:
🌟🌟本期讲解计算机工作原理,希望能帮到屏幕前的你。
🌈上期博客在这里:【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解)
🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客

目录
📚️1.引言
📚️2冯诺依曼体系
📚️3.CPU
3.1CPU的组成
3.2多核CPU
3.3指令
3.4缓存和流水线
1.缓存
2.流水线
3.5总结
📚️4.操作系统
4.1进程、任务
4.2进程的管理
1.先描述
2.再组织
4.3PCB的核心属性
1.pid进程标识
2.内存指针
3.文件描述附表
4.4进程的调度
1.状态
2.优先级
3.记账信息
4.上下文
4.5内存的分配-内存的管理
4.6进程间通信
4.7缺点
📚️5.总结

📚️1.引言
Hello!!!家人们,小编又回来啦,上期讲解了关于JDBC编程,那么mysql部分就基本上结束撒花咯🎉🎉🎉接下来,就开启后端开发JavaEE初阶的学习了,本期就开始基础的计算机是如何工作的,开始发车了。加油加油~~~🥳🥳🥳
且听小编讲解,包你学会!!!
📚️2冯诺依曼体系
图片展示:

很明显可以看出:
CPU:是进行数据的算术运算和逻辑运算
存储器:由外存和内存组成,主要是用来进行数据的存储(这数据以二进制的方式进行存储)
输入设备:顾名思义即用户给计算机发送指令的部分
输出设备:顾名思义就是计算机进行数据处理后返回展示给用户的部分
按照内存大小:硬盘>内存>>CPU
运行速度:CPU>>内存>硬盘
📚️3.CPU
3.1CPU的组成
CPU是由:
门电路=>半加器=>全加器=>加法器=>ALU运算器=>构成了CPU
虽然后端开发不用全部了解每个部分的工作原理,但是计算机的重要部分例如:内存,硬盘,CPU这些重要的部分还是要了解到的;
门电路是由晶体管构成,这是一个非常小的单元,级别为nm级别;CPU能无限小吗???
答案是不能,太小了经典物理学就不管用了,还有制作工艺大大增加,过大也不行:太大了会造成良品率大幅度下降;
此时就有了多核CPU的概念
3.2多核CPU
即软件将任务分成部分小块,合理的分给多个CPU(即一个活有多个人来干)(并发编程),那么此时的效率就大大提升了,那么还有一种情况,就是一个CPU可以干两个人的活那么就有了(超线程技术)
即4个CPU可以干8个人的活;4:为物理核心;8:为逻辑核心;
其实我们的电脑即时运用了超线程技术的:打开任务管理器;

打开性能栏目:可以看到小编这个电脑是内核为6(物理核心),逻辑处理器为12(逻辑核心)这就运用了超线程技术;
当然不是核心越多越好,像有的CPU核心很多,但是单核的频率不高,也是不行的;
频率:描述CPU核心工作的速度;
例如:小编这里的速度:3.01GHz表示的是一秒钟执行30.1亿次;
这里的单位换算:
1KHz=1024Hz 1MHz=1024KHz 1GHz=1024MHz
注意描述一个CPU的性能好坏是看最低执行频率(基础频率)和上限(最大睿频);
3.3指令
指令表:

这里的RAM即是:内存
所谓的寄存器就是由于CPU的存储数据少,而为了支持CPU的计算,而保存中间结果的一个空间
下面小编就来模拟一下程序的执行过程

3.4缓存和流水线
随着啥时间的发展,cpu执行的速度越来越快,而CPU的执行需要从内存中读取数据,那么就会发现内存读取跟不上CPU的执行速度了;
1.缓存
例如:在表演的时候,演员家里表演的地方很远时,隔天表演,那么演员就会在附近的宾馆住宿,那么就不会回自己的家,而CPU执行也是一样的;
那么需要用的数据存储在一个空间(集成在CPU上),虽然空间不大,但是里CPU近。就解决了从内存中读取数据太慢的问题;
2.流水线
例如:一次表演,当A上台进行表演时,就要把接下来表演的B接到舞台附近,依次进行;
同理:当CPU在执行的时候,就将内存中的数据读出来,准备下一个数据的执行;
3.5总结
1.CPU执行的指令都存储在内存中
2.要想执行指令,就要从内存中取出指令,解析只能,最后执行指令
3.取指令需要从内存中读取指令到CPU寄存器中,由于取指令这一步很消耗时间,引入了流水线和缓存机制
4.CPU解析指令时要用到指令表,不同CPU架构的指令表是不同的
5.指令在执行过程中带有的操作数,不同的操作数的作用是不同的
6.CPU主要的参数是主频,代表这CPU一秒中执行的次数
📚️4.操作系统
目前的操作系统:Windows,Linux,iOS,Android,Mac;
操作系统是一个软件~~~(由程序编写而成)
作用:
1.管理各种硬件设备
2.为软件提供稳定的运行环境
而JVM又是对其系统进行封装,所以我们JAVA程序员,就只用掌握JVM提供的API就可以实现各个操作系统的操作;
为啥我们要有操作系统???
就拿各种硬件设备来看,不同的鼠标有不同的功能,键盘也是一样的,那么程序员需要针对不同的硬件设定不同的代码吗,这样就太麻烦,所以就引入了操作系统,这样就可以管理各种硬件设备,给软件提供统一的API;
图例如下:

此所谓上至软件应用程序,下至各种硬件设备
4.1进程、任务
所谓的进程就是操作系统提供一种软件资源,我们运用的系统就是“多任务操作系统”;
这里的每个电脑打开的后台,和最小化就是多个任务,一个任务可以理解为一个进程;
注意:任务在执行的过程会消耗一定的硬件资源,换而言之就是进程执行时都要分配一定的系统资源;进程是系统资源分配的基本单位;

可以猜测这个截图时运用微信进行裁剪的~~~嘿嘿
4.2进程的管理
1.先描述
一般是通过类/结构体这样的方式,将实例所属性描述出来,由于操作系统是c++写的,所以可以使用结构体来表示进程的结构体,叫做PCB(进程控制块)
2.再组织
在使用数据结构将这些类或者结构体串起来;
当我们看到任务管理器里的进程信息的啥时候,就意味着系统内部在进行链表的遍历,并进行每个节点的打印;
若果进行一个新的程序,那么就会创建一个新的进程,那么就要构造一个新的PCB,然后插入到链表上;
若果结束一个程序的运行,那么进程的PCB就要从链表中进行删除,对应的PCB就要进行销毁;
4.3PCB的核心属性
1.pid进程标识
系统会通过简单的不重复整数来进行区分,保证同一时刻,每个进程的pid是不同的;
2.内存指针
所谓的内存指针就是用来描述进程使用,内存的分配问题的;
例如:学校的寝室楼,每个同学都有自己的寝室,内存指针就像是每个学生所对应寝室号,指定这个学生的寝室是哪一个,而不是每个寝室学生都可以使用;
所以:内存指针就是表示进程能够使用哪些内存~~~,而指令和数据都是存在内存中的,进程的也需要知道能够使用哪些数据和指令;
3.文件描述附表
所谓描述了进程所使用的相关硬盘资源,操作系统会对这些硬盘资源封装=>文件;
进程想使用一个文件那么就要先打开文件,所以进程就会在文件描述附表中构建一个结构数据来表示文件的相关信息
4.4进程的调度
1.状态
描述某个进程能否进入CPU进行执行;
就绪状态:随时准备好进入CPU进行执行;
阻塞状态:指某个进程不方便进入CPU,不能进行调度(例如,等待IO,用户的输入与输出)
例如:
Scanner函数执行,就需要用户进行输如数据,否则程序就不会执行;
2.优先级
即指多个进程等待系统的调度,每个进程的被调度的先后顺序是不一样的;
例如:在游戏和QQ同时运行时,很明显游戏的进程优先级肯定大于QQ的优先级;
3.记账信息
即描述每个进程运行占CPU的时间的统计,会根据这个统计来进行调整进程占有CPU的时间;
4.上下文
PCB一种数据结构
1.存档
当要将进程调度出CPU时,那么就要将寄存器中的信息,单独存储在一个空间里(内存中)
2.读档
当该进程再次进入CPU时,就要将寄存器中的信息回复过来,即将内存中寄存器存储的数据加载到CPU中;
4.5内存的分配-内存的管理
对于内存的管理是一个非常复杂的问题,小编这里就不再讲解了(小编没有过多了解~~)
核心思想:每个进程的内存是互不干扰的,通常情况下进程A是不能访问进程B的;
作用:主要是为了当一个进程代码出现Bug的时候,保证其他的进程是不会受到干扰的;这也叫做进程的独立性;
4.6进程间通信
对于一些特殊的情况,需要多个进程相互配合,来合作完成某些工作
进程间通信是与进程独立性是不冲突的,系统会提供公共空间,来供多个进程进行数据之间的交换
4.7缺点
多任务操作系统,即多进程操作系统,希望系统同时进行多个程序的运行;
但是如果在频繁的创建和销毁进程的时候,多进程编程系统的开销就会很大(主要是在资源的申请和释放上);此时就要引入多线程编程了,小编下期开始讲解;
📚️5.总结
💬💬小编本期讲解了关于计算机的构成,主要讲解了关于CPU的相关知识,以及操作系统中最主要的进程控制块和进程的相关知识如状态,通信等问题。
🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!

💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。
😊😊 期待你的关注~~~
相关文章:
【后端开发】JavaEE初阶——计算机是如何工作的???
前言: 🌟🌟本期讲解计算机工作原理,希望能帮到屏幕前的你。 🌈上期博客在这里:【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解) 🌈感兴趣的小伙伴看一看小编主…...
Linux(Ubuntu)源码安装postgresql16.3
文章目录 Linux(Ubuntu)源码安装postgresql016.3下载程序包编译安装软件初次执行configure错误调试1:configure: error: ICU library not found再次执行configureBuild 设置环境初始化数据库启动数据库参考 Linux(Ubuntu)源码安装…...
Python 入门教程(7)面向对象 | 7.6、多态
文章目录 一、多态1、鸭子类型2、实现多态的机制2.1、鸭子类型2.2、继承与重写 3、Python多态的优势4、总结 前言: 在面向对象编程(OOP)中,多态(Polymorphism)是一种非常重要的概念,多态就是同一…...
Cilium + ebpf 系列文章-什么是ebpf?(一)
前言: 这篇非常非常干,很有可能读不懂。 这里非常非常推荐,建议使用Cilium官网的lab来辅助学习!!!Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…...
RabbitMQ08_保证消息可靠性
保证消息可靠性 一、生产者可靠性1、生产者重连机制(防止网络波动)2、生产者确认机制Publisher Return 确认机制Publisher Confirm 确认机制 二、MQ 可靠性1、数据持久化交换机、队列持久化消息持久化 2、Lazy Queue 惰性队列 三、消费者可靠性1、消费者…...
恶意Bot流量识别分析实践
1、摘要 随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此&am…...
Java2 实用教程(第6版)习题2 第四题
【源文件的命名与书中的不同】 四、阅读程序题 1、上机运行下列程序,注意观察输出的结果。 public class E2_1 {public static void main(String args[]){for(int i20302;i<20322;i){System.out.println((char) i);}} } 运行结果: 低 住 佐 佑 佒…...
HashMap和ConcurrentHashMap的区别
1.是什么 HashMap和ConcurrentHashMap都是Java集合框架中的成员,它们用于存储键值对,但它们在并发场景下的表现和行为有很大的不同。以下是它们之间的一些主要区别: 1. 并发安全性 HashMap: HashMap不是线程安全的。如果多个线程同时访问Has…...
css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释
代码如下: <template><div class"outer"><div class"left"></div><div class"aTest2"><div class"box">显示方框</div><div class"aTest3"></div></…...
spring装配笔记
spring装配是个大课题,能懂一点是一点吧。 关于代码链路,最后的方式就是倒序摸索,正序那么多逻辑,没有一百万也差不多少,所以就用倒序。 .(点号)和#井号是一个意思,下面代码可能不详细区分,复…...
vscode【实用插件】Notes 便捷做笔记
安装 在 vscode 插件市场的搜索 Notes点 安装 安装成功后,vscode 左侧栏会出现 使用 初次使用 需先选择一个本地目录 重启 vscode 后,得到 切换笔记目录 新建笔记 快捷键为 Alt N 默认会创建 .md 文件 配合插件 Markdown Preview Enhanced 预览 .md…...
中间件:maxwell、canal
文章目录 1、底层原理:基于mysql的bin log日志实现的:把自己伪装成slave2、bin log 日志有三种模式:2.1、statement模式:2.2、row模式:2.3、mixed模式: 3、maxwell只支持 row 模式:4、maxwell介…...
postman控制变量和常用方法
1、添加环境: 2、环境添加变量: 3、配置不同的环境:local、dev、sit、uat、pro 4、 接口调用 5、清除cookie方法: 6、下载文件方法:...
Spring Boot 中整合 Kafka
在 Spring Boot 中整合 Kafka 非常简单,Spring Kafka 提供了丰富的支持,使得我们可以轻松地实现 Kafka 的生产者和消费者。下面是一个简单的 Spring Boot 整合 Kafka 的示例。 1. 添加依赖 首先,在 pom.xml 中添加 Spring Kafka 的依赖&#…...
什么是开放式耳机?具有什么特色?非常值得入手的蓝牙耳机推荐
开放式耳机是当下较为热门的一种耳机类型。它具有以下特点: 设计结构: 呈现开放式的构造,不会完全堵住耳道。如此一来,外界声音能够较容易地被使用者听到,在使用耳机时可以保持对周围环境的察觉。比如在户外…...
编译 FFmpeg 以支持 AV1 编解码器以及其他硬件加速选项(如 NVENC、VAAPI 等)
步骤 1: 安装必要的依赖 sudo apt update sudo apt install -y \autoconf automake build-essential cmake git libass-dev libfreetype6-dev \libsdl2-dev libtool libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev \libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-…...
解释一下Java中的多线程。如何创建一个新的线程?
在Java中,多线程是一种机制,允许一个程序同时执行多个任务或处理。每个任务被称为一个线程。 这种并行执行可以极大地提高应用程序的效率和响应速度。 例如,在开发一个桌面应用程序时,你可以使用一个线程来更新用户界面…...
Java语言程序设计基础篇_编程练习题**18.30 (找出单词)
题目:**18.30 (找出单词) 编写一个程序,递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数: java Exercise18_30 dirName word 习题思路 (读取路径方法)和18.28题差不多,把找…...
MyBatis中 #{} 和 ${} 的区别
1. #{id}(参数占位符) 作用: 使用 #{id} 时,MyBatis 会将 id 参数绑定为 JDBC 的参数。这种方式能够有效防止 SQL 注入攻击,因为它会进行参数的预处理,将参数值作为数据类型的绑定,而不是直接插入到 SQL 语…...
Android Perfetto 学习
1、如何抓取性能日志 方式1、通过手机里的System Tracing抓取 1、点击Settings->System->Developer options->System Tracing->Record trace 打开 2、操作完成后,点击Settings->System->Developer options->System Tracing->Record trace…...
东北老牌央国企陪跑机构哪家实力强
在东北地区,众多求职者,特别是应届毕业生,将目光投向了工作稳定、发展前景广阔的央国企。在这一背景下,专业的求职服务机构应运而生,为求职者提供系统化的支持。辽宁优泰教育咨询有限公司便是其中一家专注于该领域的服…...
一本计算机专业,准大一,有什么忠告?
你现在大概处于一种很特别的状态。高考刚结束不久,录取通知书拿到了,专业是计算机。可能是你自己选的,也可能是家里建议的,也可能是分数刚好够就填了。不管哪种,你现在对”计算机专业到底学什么”的理解大概率是模糊的…...
P15800 [GESP202603 六级] 选数
[GESP202603 六级] 选数 https://www.bilibili.com/video/BV1nCAEz2E1q/ P15800 [GESP202603 六级] 选数-信息学奥赛GESP等级考试真题解析 https://www.bilibili.com/video/BV14PwXzEEWL/ 202603GESP六级C第题1选数 https://www.bilibili.com/video/BV19nAnzgEt5/ P15800 [GESP…...
深度解析 ConcurrentHashMap 1.8:put 与 get 核心流程全解
在 Java 并发编程中,ConcurrentHashMap 是线程安全的高频使用集合,相比线程不安全的 HashMap、效率低下的 HashTable(全锁),JDK 1.8 版本的 ConcurrentHashMap 做了底层结构重构和锁机制优化,成为高并发场景…...
嵌入式软件架构设计:硬件抽象层实践
嵌入式软件架构设计:建立硬件抽象层的工程实践 1. 嵌入式软件架构概述 1.1 架构设计的必要性 在嵌入式系统开发中,软件架构设计直接影响产品的可维护性、可扩展性和可移植性。良好的架构设计能够: 减少不必要的返工 建立宏观层面的开发规…...
JetBrains推出AI智能体管理平台Central
为了帮助开发者控制日益增长的AI编程智能体队伍,JetBrains正在推出JetBrains Central,这是一个面向团队的智能体开发平台,用于管理和维持对这些智能体的监督。JetBrains Central的早期访问计划将于2026年第二季度开始,将有限量的设…...
SpringBoot整合MQTT实战:手把手教你实现设备动态连接与主题订阅管理(附完整源码)
SpringBoot整合MQTT实战:动态连接与主题订阅管理的工程化实现 在物联网项目开发中,设备连接管理和消息路由的灵活性往往是系统设计的难点。想象这样一个场景:你的智慧农业系统需要随时接入新部署的土壤传感器,气象站设备可能因网…...
Qwen3.5-4B-Claude-Opus推理模型基础教程:Temperature/Top-P参数详解
Qwen3.5-4B-Claude-Opus推理模型基础教程:Temperature/Top-P参数详解 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型,特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该模型…...
避坑指南:如何在torch 2.4.0 + CUDA 12.1环境下成功安装llamafactory及其依赖
深度避坑:PyTorch 2.4.0与CUDA 12.1环境下的Llamafactory全栈部署实战 当开发者尝试在PyTorch 2.4.0和CUDA 12.1环境下部署Llamafactory时,往往会陷入依赖地狱——从Torch版本误装到vllm模块缺失,每个环节都可能成为耗时数小时的深坑。本文将…...

