JAVA EE (计算机是如何工作的)

学前注意事项

出去面试的时候java岗位不需要懂前端(会少量讲解)

但是我们做项目的时候多少回用到一些前端的东西

1.什么是计算机

1.1前情提要

不仅仅只有电脑是计算机

计算机还不仅仅是电脑手机和平板 路由器 智能洗衣机 刷脸打卡机都可以说是计算机

1.2计算机分类

1.更通用

(1)终端设别(台式机,笔记本,手机,ipad)手机

(2)服务器 日常普通用户是见不到的,以后我们作为开发人员还是经常和服务器打交道的

2.不是特别通用

(3)嵌入式设备,主体功能不是用来计算而是针对一些特定专属常见,量身定做的(专用计算机)

1.3冯诺依曼体系结构

(1)1.2中的所有设备都遵循冯诺依曼体系结构

(2)冯诺依曼和图灵是计算机的祖师爷

         冯诺依曼在成为计算机之父之前就是物理化学专家,博弈论之父,还参与过“曼哈顿计划”,是奥本海默的技术顾问,被评为20世纪的全才!!!!!!!!

         他在火车上遇到了普林斯顿大小研究员,这个研究员在参与计算机设计,然后互留联系方式,后面冯诺依曼就参与了“艾尼阿克”第一台计算机的开发

        然后提出了冯诺依曼体系,并对第一代计算机进行改进。

        冯诺依曼体系定义了二进制表示的存储数据。

(3)冯诺依曼体系结构大致就是说

       一个计算机要有(目前市面上有的计算机的结构)

         CPU(控制器 运算器)

         存储器(内存 外存)

         输入设备

         输出设备

         有的硬件设备可能是输入设备也可以是输出设备

(4)计算机一开始是为了军事用途

      最早是用来计算弹道轨迹

1.3.1CPU

  (1)cpu主要功能是进行各种算数运算

(2)进行各种逻辑判断

我们的每一个程序都是通过cpu来进行执行的

(3)一个打工人一天可能工作8小时

  可能一个人花4小时把活干了

   这时候就可以把CPU占用率成为百分之50

  一个计算机上同时运行横夺程序,这些程序有些全力工作有些不全力工作,最终算出的总占用率

(4)现在的计算机有多核,假如16个核心,就代表一个核心是一个cpu

(5)linux中式把每个cpu的核心加在一起

(6)CPU的频率就代表这CPU的效率,数字越大,干活越快,我们可以理解为1s中cpu运算了多少次,执行了多少个指令。

(7)CPU认识知道的指令就是汇编语言。

         你让计算机算一个1+1 = 2其实这背后有非常多的机器指令

(8)如何让一个CPU核心更快

        让CPU中的集成基础原件更多,也就是更加的小目前极限是4nm工艺

        最近台机电在冲击1nm工艺

        小到足够小的时候这其中就涉及到量子力学emmmmm

(9)既然多核心难以更nb,那么不妨往多核心发展

         英特尔最近还有啥大小核心的,大核一个顶两,小核还是一对一。英特尔公司还提出了超线程技术,一个cpu一个核中有两个线程,也就是一个物理核心顶2个核心使用。

        引入更多的核心本质上相当于干活的人读了,所以要想程序跑的更快,就需要在设计程序的时候考虑这一点,我们需要将问题拆分成更多的部分,交给多个不同的核心来进行处理。

       不能单核全干,其他核看戏

(10)所以现在多线程编程,才成为了我们当前研究的重点内容。

底层就是数电emmm

1.3.2指令表(重要的)

(1)指令可以仍未CPU被设计的时候,给程序员提供的一些程序接口。

(2)不同的CPU提供的哪些指令是不一样的,虽然不一样但是也是有几套标准的。(x86)现在更多的是(酷睿一种x86的继承)amd为了和intel兼容,也高搞了了x86,还有一个交arm架构,像我们的平板手机各种嵌入式系统,m1,m2芯片也是arm架构,论性能不及x86,但是功耗比较低,所以比较适合移动设备。还有一些冷门架构emmm不多说了

总的来说CPU其实有很多不同的架构,同一个程序在这个机器上的cpu上面可以运行但是另一个机器就不行,就像我们的手机和电脑应用要区分开。

(3)cpu是如何执行指令啊?

所谓的指令都是先加载到内存中,然后才被cpu读取并执行。

比如一个java程序,写出来时一个java源文件程序,编译得到class二进制文件,运行jvm时就会把这个class文件加载到内存中,再进一步翻译成cpu能够识别的二进制指令

比如一个c程序写出来是一个c源文件代码,编译得到exe二进制文件,操作系统是吧这个exe加载到内存中,在进一步的由cpu执行。

(4)因此CPU执行程序大概就是经历三个阶段

    读指令(把内存中的治理数据读取到cpu的寄存器中,存储数据的模块称之为寄存器,速度比内存快,但是内存空间更小也更贵)

     解析指令,(理解放弃指令要做啥)

     执行指令

上述是一个简化的模板,他还会有流水线啊啥的(计算机体系结构这个课里面会讲,大家自己去找找感兴趣的)

(5)指令表的引入

1.3.3后端程序员以后可能会遇到的计算机问题解决方式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习-06】线性回归(LinearRegression)的手动建模实验

在此前的两节课程中,我们已经介绍了关于线性回归模型的基本概念,并且介绍了一个多元线性回归的损失函数求解方法——最小二乘法。在有了这一些列理论推导之后,本节我们将结合【机器学习-01】机器学习一般建模流程,并首先尝试在一个…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛(第三期) 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C学习笔记,常言道,不积跬步无以至千里&…

ubuntu20.04_PX4_1.13

说在前面:(最好找一个干净的Ubuntu系统)如果配置环境的过程中出现很多编译的错误或者依赖冲突,还是建议新建一个虚拟机,或者重装Ubuntu系统,这样会避免很多麻烦💐 , 安装PX4 1.13.2 …

SpringCloud Gateway工作流程

Spring Cloud Gateway的工作流程 具体的流程: 用户发送请求到网关 请求断言,用户请求到达网关后,由Gateway Handler Mapping(网关处理器映射)进行Predicates(断言),看一下哪一个符合…

室友打团太吵?一条命令断掉它的WiFi

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 ARP欺骗原理 1、arpspoof实现ARP欺骗1.1、主机探测1.2、欺骗…

深入理解Java并发工具包中的CyclicBarrier

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java的并发编程世界中,协调和管理多个线程的执行是一项复杂而关键的任务。为了简化这一挑战,Java并发包…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例应用

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

ubuntu 如何使用阿里云盘

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

算法---二分查找练习-2(寻找旋转排序数组中的最小值)

寻找旋转排序数组中的最小值 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:点这里 2. 讲解算法原理 首先,检查数组的最后一个元素是否大于第一个元素。如果是,说明数组没有进行旋转,直接返回第一个元素作为最小值…

yolo中RANK、LOACL_RANK以及WORLD_SIZE的介绍

在YOLO系列算法的分布式训练中,"rank"、"local-rank" 和 "world_size" 是三个相关的概念,它们在协调和管理分布式训练过程中起着关键作用。 1. 名词解释 Rank(排名):在分布式训练中&…

Django单表数据库操作

单表操作 测试脚本 当你只想测试django某一个py文件的内容,可以不用书写前后端的交互,直接写一个测试脚本即可 单表删除 数据库操作方法: 1.all():查询所有的数据 2.filter():带有过滤条件的查询 3.get():直接拿数据对象,不存在则报错 4.first():拿queryset里面的第一个元素…

个人商城系统开源(配置支付宝支付2)

原文地址:个人商城系统开源(配置支付宝支付2) - Pleasure的博客 下面是正文内容: 前言 在上一篇文章中我曾提到过关于网站支付宝支付的方法,接下来我们来介绍第二种。 个人博客地址:个人商城系统开源&…

xinference - 大模型分布式推理框架

文章目录 关于 xinference使用1、启动 xinference设置其他参数 2、加载模型3、模型交互 其它报错处理 - transformer.wte.weight 关于 xinference Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。 可用于大语言模型&#xff…

【Flask开发实战】配置python虚拟环境

python 虚拟环境是一种管理 Python 项目依赖的工具,它可以帮助你在不同的项目中使用不同的 Python 版本和库,避免了不同项目之间依赖冲突的问题。虚拟环境相当于一个抽屉,在这个抽屉中安装的任何软件包都不会影响到其他抽屉。并且在项目中&am…

线上教学平台|基于Spring Boot+ Mysql+Java+ B/S结构的线上教学平台设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

MapReduce框架原理

目录 前言一、InputFormat数据输入1.1 切片与MapTask并行度决定机制1.1.1 问题引出1.1.2 MapTask并行度决定机制1.1.3 数据切片与MapTask并行度决定机制 1.2 FileInputFormat切片机制1.2.1 切片大小参数配置1.2.2 切片机制 1.3 TextInputFormat1.3.1 FileInputFormat实现类1.3.…

ASPICE规范之系统追溯矩阵

系统追溯矩阵的需求来自 ISO26262 举例在描述系统追溯矩阵时:客户需求->系统需求;系统需求->客户需求;系统需求->软件需求;系统需求->硬件需求

Ollama 运行 Cohere 的 command-r 模型

Ollama 运行 Cohere 的 command-r 模型 0. 引言1. 安装 MSYS22. 安装 Golang3. Build Ollama4. 运行 command-r 0. 引言 Command-R Command-R 是一种大型语言模型,针对对话交互和长上下文任务进行了优化。它针对的是“可扩展”类别的模型,这些模型在高…

(简单成功)Mac:命令设置别名

案例:给"ls -l"命令,设置别名通过”ll“快速访问 1、在项目根目录底下查看有无.bash_profile文件,注意这个是个隐藏文件,需要使用ls -a命令查看: 没有.bash_profile新建一个文件, 在最后添加一行…

CMake笔记之GLOB和GLOB_RECURSE的使用方法

CMake笔记之GLOB和GLOB_RECURSE的使用方法 —— 杭州 2024-03-19 夜 文章目录 CMake笔记之GLOB和GLOB_RECURSE的使用方法1.GLOB使用方法2.GLOB对比GLOB_RECURSE 1.GLOB使用方法 在 CMake 中,file(GLOB ...) 命令用于将匹配特定模式的文件列表赋值给变量。这可以用…