小轩砌站 - 计算机基础知识分享
xx7z.com | 专注于计算机基础知识普及,为入门者提供系统、易懂的编程、网络、硬件、数据结构、数据库等核心知识,助力新手快速入门计算机领域
计算机基本组成
计算机由硬件系统和软件系统协同工作,核心硬件决定运算能力,软件赋予硬件实际功能:
- CPU:制程工艺影响性能,主流有Intel/AMD两大厂商
- 内存:DDR4/DDR5为当前主流,频率越高读写速度越快
- 硬盘:SSD(固态硬盘)比HDD(机械硬盘)速度快10倍以上
- 主板:决定硬件兼容性,分ATX/M-ATX/ITX等版型
- 显卡:集成显卡满足日常使用,独立显卡适合游戏/设计
常见编程语言
不同编程语言有明确的应用领域,选择合适的语言能提升开发效率:
- Python:生态丰富,第三方库超10万个,入门门槛低
- Java:企业级开发首选,Spring框架占后端开发70%以上
- JavaScript:前端必备,ES6+语法大幅提升开发体验
- C/C++:底层开发核心,Linux内核基于C语言开发
- Go语言:谷歌开发,高并发特性适合云原生开发
计算机网络基础
网络是数据传输的基础,理解核心协议能解决日常网络问题:
- IP地址:私网IP(192.168/172.16/10段)无法直接访问公网
- 端口:8080/8000为常用自定义Web服务端口
- HTTP:1.1版本支持长连接,2.0支持多路复用
- DNS:本地缓存可通过ipconfig/flushdns刷新
- 路由器:NAT技术实现多设备共享公网IP
主流操作系统
操作系统管理硬件资源,不同系统适配不同使用场景:
- Windows:支持exe格式,注册表是系统核心配置库
- macOS:基于Unix,访达(Finder)是文件管理核心
- Linux:CentOS停更后,Rocky Linux/AlmaLinux成替代
- Android:基于Linux内核,APK是应用安装包格式
- iOS:沙盒机制保障应用安全,无法随意安装第三方应用
数据结构基础
数据结构是程序的基础,合理选择能大幅提升程序效率:
- 数组:随机访问快,插入删除慢,适合固定长度数据
- 链表:插入删除快,访问慢,适合频繁修改的数据
- 栈:先进后出,用于表达式求值、函数调用栈
- 队列:先进先出,用于任务排队、消息队列
- 哈希表:平均O(1)查询效率,用于缓存、字典
数据库基础
数据库是数据存储的核心,分关系型和非关系型两大类:
- MySQL:开源关系型数据库,Web开发使用率超80%
- Redis:内存数据库,常用于缓存、计数器、分布式锁
- MongoDB:文档型数据库,适合存储非结构化数据
- SQL:结构化查询语言,CRUD是核心操作
- 索引:B+树索引是数据库默认索引类型,提升查询速度
计算机基本组成
一、硬件系统(五大核心部件)
1. 运算器(ALU)
运算器是CPU的核心模块,负责执行算术运算(加减乘除)和逻辑运算(与、或、非、异或),运算速度由CPU主频和核心数决定。例如,酷睿i7-13700K拥有16核心(8性能核+8能效核),主频最高5.4GHz,能同时处理大量运算任务。
2. 控制器
控制器负责协调计算机各部件工作,通过读取内存中的指令,解析后向其他部件发送控制信号。指令周期分为取指、译码、执行、写回四个阶段,流水线技术可让CPU同时处理多个指令阶段,提升执行效率。
3. 存储器
存储器分为内存和外存:
- 内存(RAM):DDR5内存主流频率为5200MHz/6000MHz,容量常见8GB/16GB/32GB,断电后数据丢失,用于临时存储运行中的程序和数据;
- 外存:SSD采用NAND闪存颗粒,读取速度可达7000MB/s(NVMe协议),HDD依赖磁头旋转,速度约100MB/s,用于长期存储数据。
4. 输入设备
输入设备将外部信息转换为计算机能识别的电信号,除了常见的键盘、鼠标,还包括扫描仪(分辨率单位DPI)、摄像头(帧率单位FPS)、麦克风(采样率单位kHz)等,不同设备有不同的接口类型(USB、Type-C、HDMI)。
5. 输出设备
输出设备将计算机处理结果转换为人类可识别的形式,显示器的核心参数包括分辨率(如2K/4K)、刷新率(60Hz/144Hz)、色域(sRGB/Adobe RGB);打印机分喷墨(适合彩色)和激光(适合黑白),打印速度以PPM(页/分钟)为单位。
二、软件系统
1. 系统软件
系统软件是计算机运行的基础,包括:
- 操作系统:负责进程调度、内存分配、文件管理,Windows采用NT内核,Linux采用宏内核架构;
- 驱动程序:硬件与操作系统的接口,如显卡驱动决定显示效果,声卡驱动决定音频输出;
- 编译/解释器:将高级语言转换为机器语言,如Python解释器、Java编译器(javac)。
2. 应用软件
应用软件满足特定使用需求,按领域可分为:办公软件(Office/WPS)、设计软件(PS/AI/CAD)、开发软件(VS Code/IDEA)、娱乐软件(游戏/视频播放器)等,不同软件依赖不同的运行环境(如.NET Framework、Java Runtime)。
三、硬件与软件的关系
硬件是软件运行的物理基础,软件赋予硬件具体功能。例如,没有操作系统的计算机(裸机)无法直接使用,而没有硬件的软件只是一堆代码,无法执行。硬件性能决定软件运行效率,如高性能显卡能流畅运行3A游戏,低性能显卡则会卡顿。
常见编程语言
一、脚本语言/解释型语言
1. Python
Python由Guido van Rossum于1991年发布,设计哲学是“优雅、明确、简单”,强制使用缩进划分代码块,避免了大括号的混乱。其核心优势在于丰富的第三方库:
- 数据分析:NumPy(数值计算)、Pandas(数据处理)、Matplotlib(可视化);
- 人工智能:TensorFlow/PyTorch(深度学习)、Scikit-learn(机器学习);
- Web开发:Django(全栈框架)、Flask(轻量级框架)、FastAPI(高性能API);
- 自动化:Selenium(网页自动化)、PyAutoGUI(桌面自动化)。
Python的缺点是运行速度较慢,可通过Cython、Numba等工具提升性能,或使用CPython之外的解释器(如PyPy)。
2. JavaScript
JavaScript是前端开发的唯一语言,由Brendan Eich在1995年仅用10天开发完成,最初名为LiveScript。ES6(2015)为其带来了质的提升,新增箭头函数、类、模块化、Promise等特性:
- 前端框架:React(组件化)、Vue(易用性)、Angular(企业级);
- 后端开发:Node.js基于V8引擎,实现“JavaScript全栈开发”;
- 移动端:React Native/uni-app可将JS代码编译为原生应用;
- 小程序:微信/支付宝小程序均基于JS语法开发。
二、编译型语言
1. Java
Java由Sun公司(后被Oracle收购)于1995年发布,核心特性是“一次编写,到处运行”,通过JVM(Java虚拟机)实现跨平台。Java的垃圾回收机制(GC)自动管理内存,减少内存泄漏问题:
- 企业级开发:Spring Boot/Spring Cloud是微服务开发主流框架;
- 安卓开发:Android Studio基于Java/Kotlin(Java的升级版);
- 大数据:Hadoop/Spark/Flink核心代码均为Java编写;
- 性能优化:JIT(即时编译)可将热点代码编译为机器码,提升运行速度。
2. C/C++
C语言由Dennis Ritchie于1972年在贝尔实验室开发,是结构化编程语言的代表,Linux内核、MySQL、Redis等核心软件均基于C语言开发。C++由Bjarne Stroustrup在C基础上扩展,增加了面向对象、泛型编程等特性:
- C语言:适合操作系统、驱动程序、嵌入式开发,执行效率接近机器语言;
- C++:适合游戏开发(Unreal Engine)、高性能服务器、图形学开发;
- 优势:直接操作内存,运行效率极高;缺点:手动管理内存易出现内存泄漏、野指针问题。
三、其他常用语言
1. Go语言
Go语言由谷歌在2009年发布,专为多核时代设计,内置协程(Goroutine)支持高并发,内存占用远低于线程,适合云原生、微服务、区块链开发,Docker、Kubernetes均基于Go开发。
2. 标记语言(HTML/CSS)
HTML负责网页结构,通过标签定义内容(如<h1>标题、<p>段落、<img>图片);CSS负责样式,可通过选择器精准控制元素样式,Flex/Grid布局是现代网页布局的核心。
计算机网络基础
一、IP地址体系
1. IPv4
IPv4由32位二进制数组成,通常转换为4个0-255的十进制数(点分十进制),如192.168.1.1。IPv4地址分为五类:
- A类:1-126段,默认子网掩码255.0.0.0,用于大型网络;
- B类:128-191段,默认子网掩码255.255.0.0,用于中型网络;
- C类:192-223段,默认子网掩码255.255.255.0,用于小型网络;
- D类:224-239段,用于组播;E类:240-255段,保留用于科研。
私网IP范围:10.0.0.0-10.255.255.255、172.16.0.0-172.31.255.255、192.168.0.0-192.168.255.255,这些IP无法直接被公网访问,需通过NAT转换。
2. IPv6
IPv6由128位二进制数组成,分为8组4位十六进制数,如2001:0db8:85a3:0000:0000:8a2e:0370:7334(可省略前导零,连续零段用::代替,如2001:db8:85a3::8a2e:370:7334)。IPv6解决了IPv4地址耗尽问题,全球每个设备可分配唯一公网IP,无需NAT转换,提升网络安全性和访问效率。
二、端口与服务
端口是应用层与传输层的接口,TCP/UDP协议通过端口区分不同服务,范围0-65535:
- 知名端口(0-1023):由IANA分配,80(HTTP)、443(HTTPS)、21(FTP)、22(SSH)、25(SMTP)、110(POP3);
- 注册端口(1024-49151):用户可注册使用,如3306(MySQL)、6379(Redis)、8080(Tomcat);
- 动态端口(49152-65535):客户端临时使用,如浏览器访问网页时随机分配。
可通过netstat/telnet命令检测端口是否开放,如telnet 127.0.0.1 80可检测本地80端口是否开放。
三、核心网络协议
1. HTTP/HTTPS
HTTP是无状态的应用层协议,基于TCP传输,请求-响应模式:
- HTTP 1.0:短连接,每次请求需建立新TCP连接,效率低;
- HTTP 1.1:长连接(Connection: keep-alive),管线化请求,提升效率;
- HTTP 2.0:多路复用、二进制帧、服务器推送,大幅提升并发性能;
- HTTP 3.0:基于QUIC协议(UDP),解决TCP队头阻塞问题。
HTTPS = HTTP + SSL/TLS,通过数字证书验证服务器身份,数据传输加密(对称加密+非对称加密),防止中间人攻击,Chrome/Firefox等浏览器已默认优先使用HTTPS。
2. DNS协议
DNS(域名系统)将域名(如xx7z.com)转换为IP地址,采用分层结构:根服务器→顶级域服务器(.com/.cn)→权威服务器→本地DNS服务器。本地DNS缓存有效期由TTL(生存时间)决定,可通过nslookup/dig命令查询域名解析结果,如nslookup xx7z.com。
四、网络设备与技术
1. 路由器
路由器工作在网络层,核心功能是路由选择(通过路由表)和数据转发,支持静态路由/动态路由(RIP/OSPF/BGP)。家用路由器内置NAT功能,将私网IP转换为公网IP,实现多设备共享上网;同时支持DHCP(自动分配IP)、WiFi(802.11a/b/g/n/ac/ax)、防火墙等功能。
2. 交换机
交换机工作在数据链路层,基于MAC地址转发数据,分为二层交换机(接入层)和三层交换机(核心层,支持IP转发),相比集线器(HUB),交换机避免了数据冲突,提升网络带宽利用率。
主流操作系统
一、桌面操作系统
1. Windows
Windows是微软开发的闭源操作系统,市场占有率超70%,最新版本为Windows 11:
- 核心特性:图形化界面、注册表(系统配置数据库)、任务管理器(监控进程/性能)、组策略(批量配置);
- 文件系统:NTFS(支持权限、加密、压缩),兼容FAT32(最大单文件4GB);
- 常用工具:CMD/PowerShell(命令行)、设备管理器(硬件管理)、控制面板(系统设置);
- 版本区别:家庭版(普通用户)、专业版(支持域加入/组策略)、企业版(面向企业)。
2. macOS
macOS是苹果基于Unix开发的闭源系统,仅运行在Mac硬件上,最新版本为macOS Sonoma:
- 核心特性:访达(Finder)、隔空投送(AirDrop)、接力(Handoff)、聚焦搜索(Spotlight);
- 文件系统:APFS(优化闪存,支持快照、加密);
- 终端:基于bash/zsh,可直接运行Unix命令,兼容Homebrew包管理器;
- 优势:稳定性高、界面美观、对设计/开发软件优化好,适合创意工作者。
3. Linux
Linux是开源类Unix系统,内核由Linus Torvalds维护,发行版超300种:
- 服务器主流:CentOS(停更)、Rocky Linux、AlmaLinux、Ubuntu Server、Debian;
- 桌面版:Ubuntu Desktop、Fedora、Manjaro、Deepin(深度);
- 核心特性:多用户、多任务、命令行(Shell)、包管理器(yum/apt/dnf);
- 权限管理:UGO模型(用户/组/其他),chmod/chown命令管理权限,root为超级用户。
Linux占服务器市场超90%,阿里云/腾讯云等云服务器默认使用Linux系统。
二、移动端操作系统
1. Android
Android由Google主导,基于Linux内核的开源系统,市场占有率超85%:
- 版本迭代:从Android 1.0到Android 14,代号从甜点(Cupcake)改为数字;
- 应用格式:APK(安装包),Android Studio是官方开发工具;
- 定制系统:MIUI(小米)、EMUI/HarmonyOS(华为)、ColorOS(OPPO)均基于Android定制;
- 权限管理:Android 6.0后需动态申请权限(如存储/相机/位置),提升隐私安全。
2. iOS
iOS是苹果闭源移动端系统,仅运行在iPhone/iPad上:
- 生态封闭:仅能通过App Store安装应用,审核严格,安全性高;
- 沙盒机制:每个应用只能访问自己的目录,无法访问其他应用数据;
- 开发语言:Objective-C→Swift,Xcode是官方开发工具;
- 更新策略:支持5-6年系统更新,远长于Android设备。
三、操作系统核心功能
无论何种操作系统,核心功能均围绕硬件资源管理:
- 进程管理:通过进程调度算法(RR/FCFS/优先级)分配CPU时间片,Linux的CFS调度器是主流;
- 内存管理:虚拟内存技术(硬盘模拟内存),分页/分段存储,防止地址越界;
- 文件管理:树形目录结构,文件系统负责数据存储与读取;
- 设备管理:通过驱动程序抽象硬件,统一接口(如Windows的WDM、Linux的设备文件);
- 用户界面:CLI(命令行)/GUI(图形界面),提升用户操作体验。
数据结构基础
一、线性结构
1. 数组
数组是连续的内存空间,存储相同类型数据,核心特性:
- 访问:通过下标O(1)随机访问,如arr[0]、arr[5];
- 插入/删除:需移动元素,平均O(n)时间复杂度,如在数组中间插入元素需移动后续所有元素;
- 分类:静态数组(长度固定)、动态数组(如Python的list、Java的ArrayList,自动扩容);
- 应用:存储固定长度数据、矩阵运算、哈希表底层。
数组扩容通常按1.5/2倍扩容,如Java ArrayList初始容量10,扩容后15/20,避免频繁扩容影响性能。
2. 链表
链表由节点组成,每个节点包含数据和指针(指向下一节点),核心特性:
- 访问:需从头节点遍历,O(n)时间复杂度;
- 插入/删除:仅需修改指针,O(1)时间复杂度(已知节点);
- 分类:单链表(仅指向下一节点)、双链表(前后指针,如Java的LinkedList)、循环链表(尾节点指向头节点);
- 应用:LRU缓存、消息队列、频繁插入删除的场景。
链表缺点是内存占用比数组高(需存储指针),且不支持随机访问。
3. 栈与队列
栈(Stack)是先进后出(FILO)结构,队列(Queue)是先进先出(FIFO)结构:
- 栈操作:push(入栈)、pop(出栈)、peek(查看栈顶),均O(1);应用:表达式求值、括号匹配、函数调用栈;
- 队列操作:enqueue(入队)、dequeue(出队)、peek(查看队首),均O(1);应用:任务排队、消息队列、BFS算法;
- 变种:双端队列(Deque,两端可入队出队)、优先级队列(按优先级出队,底层堆实现)。
二、非线性结构
1. 哈希表
哈希表(散列表)通过哈希函数将键映射到数组下标,核心特性:
- 查询/插入/删除:平均O(1),最坏O(n)(哈希冲突严重);
- 哈希函数:如取模法(key % 数组长度)、乘法哈希、MD5哈希;
- 哈希冲突解决:链地址法(冲突节点组成链表,如Java的HashMap)、开放寻址法(线性探测/二次探测);
- 应用:缓存、字典、用户信息存储、Redis的Hash结构。
Java HashMap默认加载因子0.75,数组长度超过75%时扩容,减少哈希冲突。
2. 树结构
树是分层结构,根节点→子节点,核心类型:
- 二叉树:每个节点最多2个子节点,满二叉树(所有节点都有2个子节点)、完全二叉树(除最后一层外均满);
- 二叉搜索树(BST):左子树<根<右子树,中序遍历有序,查询/插入/删除平均O(logn);
- 平衡二叉树(AVL):左右子树高度差≤1,解决BST退化为链表的问题;
- 红黑树:近似平衡,插入/删除调整次数少,Java的TreeMap、HashMap(JDK8+)底层使用。
树的遍历方式:前序(根-左-右)、中序(左-根-右)、后序(左-右-根)、层序(按层遍历)。
三、数据结构选择原则
选择数据结构需结合使用场景:
- 频繁访问、少修改:选数组;
- 频繁插入删除、少访问:选链表;
- 先进后出场景:选栈;
- 先进先出场景:选队列;
- 快速查询键值对:选哈希表;
- 有序数据存储:选二叉搜索树/红黑树。
数据结构是算法的基础,如排序算法(快速排序/归并排序)依赖数组,最短路径算法(Dijkstra)依赖优先级队列。
数据库基础
一、数据库分类
1. 关系型数据库(RDBMS)
关系型数据库基于关系模型(二维表),支持SQL,ACID事务特性:
- ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability);
- 主流产品:MySQL(开源)、Oracle(商用)、SQL Server(微软)、PostgreSQL(开源,功能丰富);
- 存储结构:数据库→表→行(记录)→列(字段),通过主键(唯一标识)、外键(关联表)建立关系;
- 优势:数据结构化、事务安全、支持复杂查询(JOIN);缺点:高并发下性能瓶颈、扩容复杂。
MySQL默认存储引擎InnoDB支持事务和行级锁,MyISAM不支持事务但查询速度快(已逐步淘汰)。
2. 非关系型数据库(NoSQL)
非关系型数据库不遵循关系模型,灵活存储非结构化数据:
- 键值型:Redis(内存数据库)、Memcached,适合缓存、计数器;
- 文档型:MongoDB、CouchDB,存储JSON/BSON格式,适合电商、内容管理;
- 列族型:HBase、Cassandra,适合大数据存储、时序数据;
- 图形型:Neo4j、ArangoDB,适合社交网络、知识图谱。
NoSQL优势:高并发、易扩容、灵活存储;缺点:不支持复杂JOIN、事务支持弱。
二、SQL核心操作
SQL(结构化查询语言)是关系型数据库的标准语言,核心操作CRUD:
- 创建(Create):CREATE DATABASE(库)、CREATE TABLE(表);
- 读取(Read):SELECT * FROM table WHERE condition(查询),支持GROUP BY(分组)、ORDER BY(排序)、JOIN(联表);
- 更新(Update):UPDATE table SET column=value WHERE condition;
- 删除(Delete):DELETE FROM table WHERE condition。
示例:查询用户表中年龄大于18的用户,按注册时间排序:
SELECT id, name, age FROM user WHERE age > 18 ORDER BY create_time DESC LIMIT 10;
三、数据库性能优化
1. 索引
索引是提升查询速度的核心,底层为B+树(MySQL)/哈希表:
- 类型:主键索引(唯一非空)、普通索引、唯一索引、联合索引(多列)、全文索引;
- 原则:索引提升查询速度,但降低插入/删除速度(需维护索引);联合索引遵循最左匹配原则;
- 避免:过度索引、对频繁修改的列建索引、用SELECT *(无法使用覆盖索引)。
2. 其他优化
- 分库分表:水平分表(按用户ID拆分)、垂直分表(按字段拆分),解决单表数据量大问题;
- 读写分离:主库写、从库读,提升并发能力;
- 缓存:Redis缓存热点数据,减少数据库查询;
- SQL优化:避免SELECT *、减少JOIN、使用EXPLAIN分析执行计划。
关于小轩砌站
一、本站简介
小轩砌站(xx7z.com)创立于2026年,是一个专注于计算机基础知识普及的个人技术博客,旨在为计算机入门者提供系统、易懂、实用的核心知识,帮助新手快速跨越入门门槛,建立完整的计算机知识体系。
本站内容覆盖计算机组成、编程语言、网络基础、操作系统、数据结构、数据库六大核心领域,所有内容均由作者结合自身学习和实践经验编写,力求用通俗的语言解释专业概念,避免晦涩难懂的理论,让零基础用户也能轻松理解。
二、建站初衷
作者在初学计算机知识时,发现很多入门资料要么过于浅显,缺乏系统框架;要么过于专业,新手难以理解。因此希望搭建一个“中间态”的知识平台:
- 系统全面:覆盖计算机入门必备的核心知识点,形成完整的知识网络;
- 通俗易懂:用生活化的例子解释专业概念,避免堆砌术语;
- 实用导向:聚焦实际应用,讲解知识点的使用场景和解决的问题。
三、内容更新计划
本站将持续更新以下内容:
- 基础进阶:在现有基础知识点上,逐步增加进阶内容,如Linux命令实战、Python项目案例、MySQL优化实战;
- 实战教程:推出零基础入门项目,如简易网页开发、Python爬虫、小型管理系统;
- 问题解答:收集新手常见问题,整理成问答专栏,帮助用户解决学习中的痛点。
四、联系方式
如果您在学习过程中有任何问题,或对本站内容有建议,可通过以下方式联系:
- 邮箱:contact@xx7z.com
- 微信:xx7zonly(添加请备注“学习交流”)
五、免责声明
1. 本站内容仅用于学习交流,请勿用于商业用途;
2. 本站内容基于作者个人经验编写,如有错误欢迎指正;
3. 本站引用的第三方资料均标注来源,如有侵权请联系删除。