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、鸿蒙
相关推荐
蛋蛋的就会顺顺的5 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8265 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡5 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
伯恩bourne7 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_8 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs8 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲8 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
用户21296835261689 小时前
开源了一个 Java 多智能体 LLM 框架 Baton:一个依赖,把 Agent 循环、工具调用、记忆、编排全配齐
java·llm
helmsail9 小时前
05 管理活动与选品
java