java基础 -----底层

1.计算机的底层:

c盘D盘:磁盘的分区

磁盘能做到数据的长期存储

核心组件及性能参数

  1. 运算单元
  • CPU(中央处理器):包含运算器和控制器,执行指令的核心部件,处理速度最快(0.2纳秒)
  • 内存:临时存储运行中的数据和指令,访问速度中等(20纳秒)
  • 存储设备:
    • 磁盘/固态硬盘:用于长期数据存储,访问速度较慢(30-50毫秒)
    • 时间单位换算:1秒=1000毫秒=10^9纳秒,1毫秒=10^6纳秒
  1. 程序执行流程(以Hello.java为例)
  1. 源代码编译为Hello.class二进制文件
  2. 二进制文件存储于磁盘分区(如D盘、C盘)
  3. 运行时将指令和数据加载至内存
  4. CPU执行内存中的指令
  1. 数据存储机制 通过启动程序等机制,实现内存与磁盘间的数据交换,确保数据的持久化存储。

2.磁盘如何存储数据:

一、磁盘数据存储与读取

  • 存储原理:利用磁体的南北极(S、N)来表示二进制数据(如 "1010"),通过这种磁信号的方式将数据长期存储在磁盘的磁道(同心圆结构)中。
  • 读取原理:磁盘读取数据时,先将磁信号转换为电信号,经转换器处理后获取数据。

二、内存数据存储特点

内存通过电容(类似电池的结构)来存储数据,其特点是电脑关机后数据会消失,这是因为电容存储的电荷在断电后无法保持,所以内存仅用于临时存储数据。

存储设备 存储原理 数据持久性
磁盘 磁信号(南北极) 长期存储
内存 电容(电荷) 关机后消失

3.java程序在内存当中的运行过程:

一、Java 程序的编译与加载流程

  • 编译阶段 :使用 javac 命令将 Hello.java 源代码文件编译为 Hello.class 字节码文件,该文件以二进制形式存储于磁盘
  • 加载阶段 :JVM 将 Hello.class 文件从磁盘加载到内存的方法区,保留完整的类二进制信息

二、数据的存储与编码

  • 源代码存储int a = 10;这样的源代码以utf-8编码存储在磁盘的Hello.java文件中,通过utf-8编码表将字符转换为二进制(如i对应01101001等)。
  • 内存中数据表示 :变量a在内存中以十六进制和二进制形式存储,a的数值10对应二进制00000000000000000000000000001010

三、Java 内存结构(运行时数据区)

内存分为方法区

  • :用于存储局部变量等运行时数据。
  • :用于存储对象等动态分配的内存。
  • 方法区:存储类的二进制信息、常量池等。
阶段 / 区域 内容 / 作用
编译 javac.java编译为.class
加载 .class文件加载到方法区
源代码编码 utf-8将字符转为二进制
内存数据表示 变量以十六进制、二进制在内存存储
存储局部变量
存储对象
方法区 存储类的二进制信息等

4.操作系统:

一、硬件与指令传输

  • 计算机硬件通过复杂的逻辑电路 (元器件 A、B)实现功能,导线中传输的是高低电压 ,以此表示二进制的 0 和 1,进而构成二进制指令(如机器语言中的0110: 加法1110: 移动等)。

二、编程语言的层级转换

  • 机器语言:由二进制指令组成,是计算机直接识别的语言。
  • 汇编语言 :通过汇编器将汇编指令(如add)转换为机器语言。
  • 高级语言(C 语言):通过编译器将 C 语言代码转换为汇编语言,再进一步转换为机器语言,最终在内存条中执行。

三、操作系统架构

  • 操作系统内核 :包含多个驱动器,计算机中每个硬件都对应一个驱动器,用于管理硬件资源。
  • 软件层:运行各类应用程序,市面上常见的操作系统有 Windows、Linux、MACOS、Android、鸿蒙等。
层级 / 部分 内容 / 作用
硬件逻辑电路 传输高低电压,表示二进制 0 和 1
机器语言 二进制指令,计算机直接执行
汇编语言 通过汇编器转换为机器语言
C 语言 通过编译器转换为汇编语言
操作系统内核 含多个驱动器,管理硬件
常见操作系统 Windows、Linux、MACOS、Android、鸿蒙
相关推荐
ekkcole5 小时前
java把word转pdf使用jar包maven依赖
java·pdf·word
Java小王子呀5 小时前
Java实现Excel转PDF
java·pdf·excel
得物技术5 小时前
从一次启动失败深入剖析:Spring循环依赖的真相|得物技术
java·后端
程序猿DD5 小时前
Jackson 序列化的隐性成本
java·后端
凤山老林5 小时前
SpringBoot 如何实现零拷贝:深度解析零拷贝技术
java·linux·开发语言·arm开发·spring boot·后端
程序员小假5 小时前
我们来讲一讲阻塞队列及其应用
java·后端
带刺的坐椅5 小时前
snack4-jsonpath v4.0.2 发布
java·jsonpath
W.Buffer6 小时前
Java并发工具类详解:Semaphore、CyclicBarrier与CountDownLatch
java·开发语言