计算机基础知识
1,计算机组成原理
如果你不是做操作系统/驱动程序的,直接和硬件打交道的机会很少,因为操作系统已经把他们屏蔽掉了,提供了抽象的API给我们使用。
但是还必须理解冯诺依曼体系的结构,CPU和内存,硬盘,各种外设之间的关系,寄存器、缓存等知识。CPU有哪些指令,如何执行这些指令,如果实现数组,结构体,函数调用,这就涉及到汇编的知识。像原码,反码,补码,定点数、浮点数的表示和运算也是编程中必备的知识,几乎每种语言都要涉及。
现在很多语言都是在虚拟机上运行的,你只要是了解了计算机的组成原理,再去看哪些虚拟机,就会发现概念都是相通的。另外CPU中的缓存,缓存一致性协议,DMA的异步思想都会在应用层中有所体现。《编码》是一个更加科普性,但是也更加有趣的讲组成原理的书。
2,操作系统
操作系统是比较枯燥的, 站在应用层的角度,我认为重点是掌握操作系统对外提供的抽象,包括进程、线程,文件,虚拟内存,以及进程间的通信问题。几乎所有的编程语言都会涉及到对多进程或者多线程编程的支持, 特别是多线程的并发编程,所以必须得搞明白他们的本质是什么,线程都有哪些实现方式。得真正地体会到“进程是资源分配的最小单位,线程是调度的最小单位。” 这句话的含义。
几乎所有的编程语言都会涉及到锁和死锁,最好在最底层理解锁是怎么实现的。需要理解虚拟内存和物理内存直接的关系,分段和分页,文件系统的基本原理。对于进程的调度,页面分配/置换算法,磁盘的调度算法,I/O系统,我认为优先级比较低。
3,计算机网络
必须要理解的是这些:
什么分组交换。
TCP可靠性传输原理,TCP/IP的协议细节, 三次握手,四次挥手,TCP状态转换。
几个重要的协议DHCP,UDP, ARP, DNS。
能够说出一个客户端如何在接入网络以后,通过这些协议,跨域网络和服务器通信的。
和应用层结合非常紧密的Socket知识和网络安全(对称加密,非对称加密,Hash, 数字签名,以及集大成者Https)
至于网络层的路由选择算法,链路层的各种协议,我认为优先级比较低。
以上这些知识,在你学习Redis ,Ngnix, Tomcat, LVS等软件时将有极大的帮助。
4,数据库
这个和日常工作结合极其紧密,不用我再多说,包括最基本的SQL,各种范式,事务及其隔离级别,事务的实现方式,索引及其实现方式,B+树等等。
5,编译原理
你一辈子也许都不会去写一个编译器,但是很有可能会利用现成的工具去生成/操作一个抽象语法树(AST),甚至可以会写一个DSL(领域特定语言)。所以你得理解词法分析、语法分析、语义分析,中间代码生成,代码优化这个基本编译的过程。
6,分布式的理论知识
由于现在的系统慢慢地变成了分布式, 所以又扩展出了很多相关基础知识需要学习:
6.1,数据复制与一致性:
CAP理论, BASE原则,幂等性, 2PC, TCC,Paxos , Raft , Gossip
6.2,数据分片和路由:
Hash分片:Hash取模(实际中非常常见的算法), 虚拟桶(Redis使用),一致性Hash(memcached使用)
7,最后想说的是,不能带着特别功利的目的去学习这些基础,不能想着立刻、马上就应用到实战中,从中获益。更重要的理解掌握它们背后的思想!
计算机组成
(一) 计算机硬件
计算机硬件从外观上看, 由主机和外部设备组成。具体由运算器、控制器、存储器、输入设备、输出设备五个逻辑部件组成。
1. 中央处理器———CPU
CPU 由运算器和控制器组成, 是计算机系统中必备的核心部件。CPU 品质高低,直接决定计算机系统的档次, CPU 的最重要指标是主频和数据传送的位数。主频越高,运算速度越快。数据传送位数是同一时间能同时并行传送的二进制信息位数, 即常说的16 位机、32 位机、64 位机。
2. 存储器
存储器分为内存和外存, 内存可分为随机存取存储器(RAM) 和只读存储器(ROM)。外存包括硬盘、软盘、光盘、优盘、移动硬盘等。
3. 输入设备
输入设备的主要作用是将信息输入计算机。常见的输入设备有:键盘、鼠标、扫描仪、摄像头等。
4. 输出设备
输出设备的主要作用是将结果反馈给人。常见的输出设备有:显示器、打印机、投影仪、绘图仪、扬声器等。
(二) 计算机软件
软件是为方便使用计算机和提高效率而组织开发的程序, 可分为系统软件和应用软件两大类。
1. 系统软件
系统软件是控制、协调计算机及外部设备, 支持应用软件开发和运行的软件。系统软件主要分为操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。
(1) 操作系统:dos, Windows 系列, Linux。
(2) 语言处理系统:又称翻译程序。人和计算机交流信息使用的语言称为计算机语言, 通常分为机器语言、汇编语言和高级语言三类。常用的高级语言有C、VB、VC、Foxpro、Delphi 等。
(3) 数据库管理系统:对数据库进行加工、管理的系统软件。包括ACCESS、SQL、SERVER 等。
2. 应用软件
应用软件是为解决各类实际问题而设计的程序软件。包含办公软件、互联网软件、多媒体软件等。
计算机基础操作入门知识
一、重命名文件或者文件夹的方法
1、选中--右键--重命名
2、选中--f2--重命名
二、新建文件夹的方法
选中合适的位置---右键---新建文件夹--输入名字--回车
三、鼠标的常用操作
移动 拖拽 双击 单击 滚动
四、启动记事本
1、程序--所有程序--附件--记事本
2、右键--新建--文本文档--回车
注:推荐使用第二种
记事本的作用
用于简单的文字编辑
光标:表示文字要输入的地方
五、切换输入法
输入法之间的切换:Ctrl+Shift中英文之间的切换:shift大小写之间的切换:Caps Lock暂时切换大小写:按住shift+输入字母
六、输入符号
按住shift+符号对应的键盘
七、插入文字
把光标移动到对应的地方,直接输入文字八、删除1、退格键删除:删除光标前面的内容2、delete删除:删除光标后面的内容九、撤销操作Ctrl+Z十、打空格使用空格键十一、换行Enter键十二、选中文字按住鼠标左键、拖动鼠标到想要的位置
十三、保存文件
1、Ctrl+S
2、文件--保存
3、文件---另存为--选择合适的位置--确定
十四、退出记事本
1、文件--退出
2、点×关闭
十五、调节字体格式--字体--调节大小、形状、字体---确定
十六、复制
1、选中--右键--复制
2、选中--ctrl+c
十七、剪切
1、选中--右键--剪切
2、选中--ctrl+x
十八、粘贴
1、选中合适位置---右键--粘贴
2、选中合适位置---ctrl+v注:复制后原来的文件保留,剪切后原来文件没有
河南高考排名195560左右排位理科可以上哪些大学,具体能上什么大学
吉林外国语大学和湘潭大学兴湘学院哪个好 附对比和区别排名
江西工商职业技术学院在黑龙江高考历年录戎数线(2024届参考)
甘肃高考排名5480左右排位理科可以上哪些大学,具体能上什么大学
四川文化艺术学院和天津城建大学哪个好 附对比和区别排名
江西高考排名71510左右排位理科可以上哪些大学,具体能上什么大学
最新年会主持词结束语模板五篇
高二上学期语文的教学计划范文
描写清明节的作文500字五篇
学习时代楷模拉护边员拉齐尼巴依卡事迹心得及感受五篇
关于电脑科技基础知识
IT程序员必备的基础知识有哪些
公共文化最新知识大全
怎样养狗知识大全
中华鲟鱼知识最新大全
貂皮知识大全最新
齐齐哈尔工程学院在新疆高考招生计划人数专业代码(2024参考)
宁夏工商职业技术学院在河南高考招生计划人数专业代码(2024参考)
河北高考排名184970左右排位历史可以上哪些大学,具体能上什么大学
湖北高考排名174600左右排位物理可以上哪些大学,具体能上什么大学
考福州外语外贸学院要多少分宁夏考生 附2024录取名次和最低分
湖南师范大学在云南高考招生计划人数专业代码(2024参考)
广东高考排名247430左右排位物理可以上哪些大学,具体能上什么大学
陕西青年职业学院在宁夏高考历年录戎数线(2024届参考)
安徽文达信息工程学院的审计学专业排名怎么样 附历年录戎数线
安徽高考排名263910左右排位理科可以上哪些大学,具体能上什么大学
考安顺学院要多少分广东考生 附2024录取名次和最低分
广东高考排名94120左右排位物理可以上哪些大学,具体能上什么大学
四川高考排名6710左右排位理科可以上哪些大学,具体能上什么大学
考洛阳科技职业学院要多少分甘肃考生 附2024录取名次和最低分
福建高考排名46830左右排位物理可以上哪些大学,具体能上什么大学
重庆机电职业技术大学的数控技术专业排名怎么样 附历年录戎数线
郑州升达经贸管理学院和辽宁工业大学哪个好 附对比和区别排名
赣州职业技术学院和扬州工业职业技术学院哪个好 附对比和区别排名
江西外语外贸职业学院在内蒙古高考历年录戎数线(2024届参考)
四川高考排名14260左右排位理科可以上哪些大学,具体能上什么大学
中华鲟鱼知识大全最新
狗场养狗知识最新大全
养狗知识大全最新
鹦鹉知识的资料大全最新
貂皮基本知识大全最新
茶文化相关知识最新大全
有关防骗安全教育小常识有哪些
防骗安全知识有哪些
有关中小学生防骗安全教案
关于中小学安全教育之防骗知识
关于增强安全防骗意识知识
关于中学生防骗安全知识有哪些
有关消防安全知识教育
关于小学消防安全知识内容
有关消防安全防火小知识