JavaEE初阶——计算机工作原理

news2025/1/8 9:25:14

一、什么是JavaEE 

JavaEE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 3.0应用程序。

二、计算机是如何工作的

1.冯诺依曼体系(Von Neumann Architecture)

现代的计算机中,大多遵循冯诺依曼体系结构

结构包含:①CPU中央处理器(进行算术运算和逻辑判断);②存储器(分为外存和内存,用于存储数据,使用二进制存储);③输入设备(用户给计算机发号施令的设备);④输出设备(计算机给用户汇报结果的设备)

2.CPU基本工作流程

2.1 逻辑门电路

可以实现1位(bit)的基本逻辑运算,下面举几个常见的例子

(1)非门

(2)与门

(3)或门

(4)异或门

2.2算术逻辑单元ALU

ALU是计算机进行算数,逻辑运算的核心部件,是计算机的数学大脑

2.3寄存器和内存

寄存器:寄存器就是附着在CPU中的高速存储单元,是CPU的得力干将。它的特点是速度极快,容量较小(通常只有几十个到几百个字节的容量,只能存储少量的关键数据和控制信息)。它可以在CPU执行算术运算和逻辑运算时,用来暂时存储参与运算的操作数和运算结果的!

内存:内存是计算机主要存储数据的设备之一,用于暂时存储 CPU 需要处理的数据和处理后的结果,速度没有寄存器快,但是比外部存储快很多,容量较大(一般有4GB—16GB甚至更高),它可以进行数据的存储,多任务处理。(要区分的是这里是内存,不是人们常说的手机多大内存的内存,这是一个容易误导广大消费者的错误说法,之后为了区分发明了“运行内存”这样一说,其实也是不对的,可以说为“内存和外存”)。

2.4控制单元CU

通俗来讲,CU就是指挥官,ALU就是CU的士兵,让干什么就得干什么。也就是说CU可以驱动ALU进行具体的计算工作!

2.5CU如何驱动ALU进行工作的?

这里我们就提到指令

那什么是指令呢?

所谓指令就是指导CPU进行工作的指令,主要有操作码+被操作数组成!

操作码就是要做的事情,被操作数是要做操作的数据

指令本身是一种数据,二进制保存在内存的某个区域

下面是一张简化后的指令表,真正的指令表比这个复杂很多

说明:RAM是内存;规定LOAD_A是00;LOAD_B是01

opcode(操作码)=>>op(operation操作)code(码)

约定:一条指令=4位操作码(opcode)+4位操作数

这里我们演示一段指令是如何执行的呢?

以上过程就是CPU执行一段指令的简要过程!

3.编程语言

3.1程序

程序就是一组指令需要处理一些数据

程序=指令+指令要处理的数据

3.2编程

注意:高级语言的一条语句往往对应很多条指令才可以完成

4.操作系统

操作系统是⼀组做计算机资源管理的软件的统称。⽬前常⻅的操作系统有:Windows系列、Unix系
列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

操作系统可以对CPU的管理和应用

4.1进程

进程就是操作系统对正在运行的程序的一种抽象表示,也就是说,进程可以看作程序的一次运行过程

4.2进程控制块(PCB)

1.pid(进程id)进程的身份标识

2.内存指针(进程运行时,需要对内存的开销,占用资源)

3.文件描述表(需要硬盘也就是外存,进程读写文件需要open指定文件)

4.进程状态:就绪状态(随叫随到);阻塞状态(不运行)

5.进程优先级:哪一个优先级高一点,哪一个进程吃CPU多一点(也就是消耗内存资源多一些)

就好比如,打大型游戏,和运行其他小软件,无疑是大游戏吃内存更多

6.进程的上下文

进程调度,执行一会失去CPU,过一段时间后,继续执行,必须从上一次断开的位置开始,不能从头来。把中间值保存到寄存器中

也就是游戏中的存档!

7.进程的记账信息

就是在一段时间内统计哪个进程对CPU的消耗多少,要是有个进程长时间没有消耗太多进程,则就会给这个进程倾斜一点资源!

谢谢大家的支持!有任何表述错误的地方,请大家指出来,博主积极改正并认真修改学习!

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

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

相关文章

【Unity3D】AB包加密(AssetBundle加密)

加密前: 加密后,直接无法加载ab,所以无法正常看到ab内容。 using UnityEngine; using UnityEditor; using System.IO; public static class AssetBundleDemoTest {[MenuItem("Tools/打包!")]public static void Build(){//注意:St…

数据库语句学习

WHERE AND: 请编写 SQL 语句,从 courses 表中,选取课程名为 Web 或者 Big Data 的课程信息,如果这两门课程存在,请将这两门课程的信息全部返回。 SELECT * FROM courses where name in (Web,Big Data) -- 等同于 -- WHERE name …

“AI智慧语言训练系统:让语言学习变得更简单有趣

大家好,我是你们的老朋友,一个热衷于探讨科技与教育结合的产品经理。今天,我想和大家聊聊一个让语言学习变得不再头疼的话题——AI智慧语言训练系统。这个系统可是我们语言学习者的福音,让我们一起来揭开它的神秘面纱吧&#xff0…

Postman接口测试05|实战项目笔记

目录 一、项目接口概况 二、单接口测试-登录接口:POST 1、正例 2、反例 ①姓名未注册 ②密码错误 ③姓名为空 ④多参 ⑤少参 ⑥无参 三、批量运行测试用例 四、生成测试报告 1、Postman界面生成 2、Newman命令行生成 五、token鉴权(“…

使用Locust对MongoDB进行负载测试

1.安装环境 pip install pymongo locust 2.设置测试环境 开启MongoDB服务 打开Navicat,新建MongoDB连接 新建test数据库和sample集合 3.编写脚本 load_mongo.py # codingutf-8 from locust import User, task, between, events from pymongo import MongoClie…

【微服务】3、配置管理

微服务配置管理 已掌握的微服务组件及配置管理问题引出 已掌握注册中心、Openfan、远程调用、负载均衡、网关等组件,具备微服务开发能力,但仍存在其他问题待解决。微服务和网关存在大量配置文件,其中包含很多重复配置,如数据库、日…

【Notepad++】Notepad++如何删除包含某个字符串所在的行

Notepad如何删除包含某个字符串所在的行 一,简介二,操作方法三,总结 一,简介 在使用beyoundcompare软件进行对比的时候,常常会出现一些无关紧要的地方,且所在行的内容是变化的,不方便进行比较&…

计算机网络——期末复习(7)期末试卷样例3

一、辨析题(共4小题,每小题5分,共20分) 1.差错检测是保障网络正常通信的一项重要措施,有多种差错检测算法(技术), (1)以太网和IP协议各自采用的差错校验算法…

STM32-笔记34-4G遥控灯

4G接线 一、项目需求 服务器通过4G模块远程遥控开关灯。 二、项目实现 复制项目文件夹38-wifi控制风扇项目 重命名为39-4G遥控点灯 打开项目文件 加载文件 main.c #include "sys.h" #include "delay.h" #include "led.h" #include "ua…

游戏引擎学习第77天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度,进行调试昨天代码的问题,主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏,但我们希望能够处理多层的房间,玩家…

STM32完全学习——使用定时器1精确延时

一、定时器的相关配置 首先一定要是递减定时器,递增的不太行,控制的不够准确,其次在大于10微秒的延时是非常准确的,小于的话,就没有那没准,但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…

aardio —— 虚表 —— 模拟属性框

写了个简单的属性框例程,抛砖引玉,期待你做出更丰富强大的功能。 本例演示:折叠子行、选择框、输入文本、输入数值、下拉选择、选择图片、选择颜色、选择字体等功能。 只有想不到,没有做不到,发挥你的想象力吧。 imp…

[微服务]redis主从集群搭建与优化

搭建主从集群 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。 1. 主从集群结构 下图就是一个简单的Redis主从集群结构: 如图所示,集群中有一个master节点、两个s…

设计模式 行为型 观察者模式(Observer Pattern)与 常见技术框架应用 解析

观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新。 一…

《Opencv》图像的旋转

一、使用numpy库实现 np.rot90(img,-1) 后面的参数为-1时事顺时针旋转,为1时是逆时针旋转。 import cv2 import numpy as np img cv2.imread(./images/kele.png) """方法一""" # 顺时针90度 rot_1 np.rot90(img,-1) # 逆时针90度…

Android Studio 安装配置(个人笔记)

Android studio安装的前提是必须保证安装了jdk1.8版本以上 一、查看是否安装jdk cmd打开命令行,输入java -version 最后是一个关键点 输入 javac ,看看有没有相关信息 没有就下载jdk Android studio安装的前提是必须保证安装了jdk1.8版本以上 可以到…

spicy.signal 报错解决

报错: ImportError: cannot import name ‘kaiser’ from ‘scipy.signal’ 解决办法 找到import的位置:将 from scipy.signal import kaiser 修改为 from scipy.signal.windows import kaiser

学习threejs,导入AWD格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AWDLoader AWD模型加…

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY(Do It For You)是一种自动化工具或服务,旨在帮助用户简化操作,减少繁琐的手动操作,提升工作效率。通过DIFY,用户能够快速完成任务、获取所需数据,并且可以…

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式),CSS样式表可以分为三大类: 1.行内样式表(行内式) 2.内部样式表(嵌入式) 3. 外部样式表(链接式) 5.2 内部样式表 …