news 2026/8/3 20:28:50

计算机基础结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机基础结构

深入了解计算机基础结构

今天我们从以下方面进行理解

CPU:核心处理器

CPU,即中央管理器,是计算机的核心组件,它就好比与人的大脑,负责处理各种指令和数据。它的性能直接影响着计算机的运行速度和效率。

public class Main{ public static void main(String[] args){ int a=5; int b=3; int result=a+b; System.out.println("结果是:"+result); } }

CPU 会从内存中读取变量a和b的值,执行加法运算,再将结果存储到result变量中,最后输出结果。

内存(RAM):程序数据的栖息地

内存,也就是随机存取存储器(RAM),是计算机中用于临时存储数据的地方。当程序运行时,所有相关数据都会被加载到内存中。从物理结构来看,内存由电容组成。这些电容通过充电和放电来表示二进制的 0 和 1,从而存储数据。内存的读写速度相对较快,这使得 CPU 能够快速地读取和处理数据,保证程序的流畅运行。

public class Test { public static void main(String[] args) { int a = 10; int[] arr;//int是这个数组要存的元素的类型 //属性: 长度 //功能: 下标 int[][] arr2;// int[]是这个二维数组需要存储的元素类型 存储的元素就是一个个一维数组 // 行 列 // 一维数组的个数 arr2.length // 每个一维数组的长度 arr2[i].length int[][][] arr3; //数组格式: 所存储的元素的数据类型 数组的标识符号 数组名; System.out.println(a + 100); int[][] arr2T = {{0}, {1, 2}, {1, 2, 3}, {1, 2, 3, 3, 3}, {1, 2, 3, 3, 3, 3, 3, 3, 3}}; for (int i = 0; i <arr2T.length; i++) { for (int j = 0; j < arr2T[i].length; j++) { System.out.print(arr2T[i][j]+" "); } System.out.println(); } int[] tarr = arr2T[4]; for (int i = 0; i < tarr.length; i++) { System.out.print(tarr[i]+" "); } } }

IO 系统:数据的输入输出通道

IO 系统,即输入输出系统,负责计算机与外部设备之间的数据传输。它就像是计算机与外界沟通的桥梁,确保数据能够顺利地进出计算机。
以下是代码示例,通过Scanner类从键盘读取用户输入,再通过System.out.println()函数将数据输出到显示器:

import java.util.Scanner; public class IO { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入你的名字:"); String name = scanner.nextLine(); System.out.println("你好," + name + "!"); scanner.close(); } }

数据结构:数据的组织与管理方式

数据结构是计算机存储、组织数据的方式。它不仅定义了如何存储数据,还提供了一系列操作数据的方法,如查找、存储、删除、替换等。

public class ArrayExample { public static void main(String[] args) { // 创建一个数组 int[] numbers = {1, 2, 3, 4, 5}; // 向数组中添加元素(这里需要创建新数组,Java数组长度固定) int[] newNumbers = new int[numbers.length + 1]; System.arraycopy(numbers, 0, newNumbers, 0, numbers.length); newNumbers[numbers.length] = 6; // 查找元素的索引 int index = -1; for (int i = 0; i < newNumbers.length; i++) { if (newNumbers[i] == 3) { index = i; break; } } // 删除元素(同样需要创建新数组) int[] tempNumbers = new int[newNumbers.length - 1]; int j = 0; for (int i = 0; i < newNumbers.length; i++) { if (newNumbers[i]!= 4) { tempNumbers[j++] = newNumbers[i]; } } // 输出数组 for (int num : tempNumbers) { System.out.print(num + " "); } } }

变量:程序中的数据载体

int a=10;

这里定义了一个整型变量a,并将其初始值设为 10。变量在程序中起着非常重要的作用,它可以存储各种不同类型的数据,并且可以根据程序的运行情况进行修改。

符号表:编译器的 “小助手”

当我们编写代码时,编译器会将所有定义的变量整理成一个登记表,也就是符号表。
符号表中记录了变量的类型(如int[])、名称(如a)、长度(占用字节数,如 4 字节)以及数据在内存中存储的位置等信息。
符号表对于编译器来说至关重要,它帮助编译器更好地理解和处理我们编写的代码,确保程序能够正确地编译和运行。

内存:巨大的矩阵与地址编码

内存可以看作是一个巨大的矩阵,有行和列。内存中的每个存储单元都有一个唯一的地址,这个地址编码是根据行列计算出来的。在 32 位操作系统中,地址编码是 32 位的整数,总共可以寻址 4GB 的内存空间。而在 64 位操作系统中,地址编码是 64 位,理论上上限是 2^64 个字节的内存空间。如此庞大的内存空间,为计算机运行各种复杂的程序提供了保障。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/3 20:18:22

手搓视觉SLAM定位算法:第一章

手搓视觉SLAM定位算法&#xff1a;第一章 默认读者对视觉slam和视觉定位有一定的基础 没有的话可以参考《视觉十四讲》或者作者的另外一个专栏 有一点基础就行 文章目录手搓视觉SLAM定位算法&#xff1a;第一章前言一、理论基础二、代码实现2.1 设置参数2.2 匹配2.3 求解2.4 发…

作者头像 李华