计算机的三个根本性基础
1)计算机是执行输入、运算、输出的机器 2)程序是指令和数据的集合 3)计算机的处理方式有时与人们的思维习惯不同
计算机技术进步日新月异,进步的方向就是为了更好的贴合人类,为人类服务。这就需要他的思维习惯有更好的进步,这是如此,计算机还有很大的进步空间。(面向对象变成,是贴合人类的一种体现)
无论是刚入行的技术人员,还是有资历的老工程师,都应该由衷地欢迎技术的进化,坦率地接受新技术。
CPU
机器语言就是由二进制数字构成的程序(.class文件),CPU 可以直接对其解释、执行。
1.CPU 中的标志寄存器(Flags Register)有什么作用?
Flag的本意是“旗子”,这里引申为“标志”。一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生了 负数、是否有溢出(Overflow)等。
2.CPU内部有存储数据的地方。这种存储数据的地方叫作“寄存器”。虽然也叫寄存器,但是与I/O的寄存器不同,CPU的寄存器不仅能存储数据,还具备对数据进行运算的能力。(I/O的寄储器不能存取数据)
1.控制器
控制单元主要由时序控制和指令控制等组成,其中指令控 制协调指令译码器,完成读指令、分析指令、交给运算器执行指令等操作。指令寄存器中存储着指令集。
2.运算器
运算器的核心是逻辑运算单元,即 ALU,能够执行算术运算或逻辑运算等各种 命令,运算单元会从寄存器中提取或存储数据。
3.寄存器
基于执行指令和热点数据的时间局部性和 空间局部性,CPU 缓存部分指令和数据,以提升性能。但由于 CPU 内部空间狭小且 结构复杂,高速缓存远小于内存空间。
内存
越往 CPU 核心靠近,存储性能越高,但成本也更高。越往下,存 储越便宜、速度越慢,但容量更大。 云端存储使得应用更加安全,易于维护,不需要再去关心应用架构以及数据备份容灾的问题。
主存储器:CPU能够直接访问的存储器为主存储器,用以存放当前运行的程序和数据。由于它设在主机内部,又称内存储器,简称内存或主存。
辅助存储器:为了解决主存容量不足而设置的存储器,用以存放当前不参加运行的程序和数据。当需要运行放在辅存中的程序时,需要将所需内容成批地调入内存供CPU使用,CPU不能直接访问辅存。由于辅存是外部设备的一种,所以又称为外存储器,简称外存。
高速缓冲存储器:是一种介于主存与CPU之间,用于解决CPU与主存间速度匹配问题的高速小容量的存储器。它被用于存放CPU立即要运行或刚使用过的程序和数据。
程序像喝水一样流动着
事件驱动是什么:用户的操作等产生事件后,由事件决定程序的流程。Windows 应用程序的运行就是由事件驱动的。例如,选择“打开文件”菜单项就能打开一个窗口,在里面可以指定要打开文件的名称和存储位置。之所以能够这样是因为一旦触发了“选中了菜单项”这个事件,程序的流程就相应地流转到了处理打开窗口的那部分。
CPU 中有各种各样的各司其职的寄存器。其中有一个被称为 PC(Program Counter,程序计数器)的寄存器,负责存储内存地址,该地址指向下一条即将执行的指令。每解释执行完一条指令,PC寄存器的值就会自动被更新为下一条指令的地址。
(流程图的重要性,写代码前应该先出方案画流程图)
推荐一款工具:
和算法成为好朋友
“哨兵”指的是一种含有特殊值的数据,可用于标识数据的结尾等。字符串的末尾用0表示,链表的末尾用-1表示,像这 种特殊的数据就是哨兵。
算法就是“把解决问题的步骤无一遗漏地用“编程语言表达”,算法就变成了程序。且那就是“步骤必须是明确的并且步骤数必须是有限的”。
(本书作者推荐:可以作为算法辞典使用的书有《算法技术手册》)
最后介绍最为重要的一点,那就是思考算法的时候,要先在纸上 用文字或图表描述出解决问题的步骤,而不要立刻开始编写代码。 (算法推荐:LeetCode)
tips:如果说编程语言是程序员的外功,那么算法就是内功。
和数据结构成为好朋友
注:(后面会单独开博,点击关注,第一时间阅读)
成为会使用面向对象编程的程序员吧
OOP 是 Object Oriented Programming(面向对象 编程)的缩略语。
面向对象编程(OOP,Object Oriented Programming)是一种编写程 序的方法,旨在提升开发大型程序的效率,使程序易于维护 A。。其中所使用的主要编程技巧有继承、封装、多态三种。
面向对象与面向过程区别:
举例说明:面向过程和面向对象
有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择
1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
2、去饭店,张开嘴:老板!来一份鱼香肉丝!
看出来区别了吗?这就是1是面向过程,2是面向对象。
面向过程:
优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
缺点:不易维护、不易复用、不易扩展.
面向对象:
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。
缺点:性能比面向过程差
tips:“小步快跑,快速迭代”——互联网生存法测。面向对象带来的易扩展、易维护、易复用等优势天然满足这条法则。
一用就会的数据库
键和索引的区别?
键用于设定表和表之间的关系(Relationship),而索引是提升数据检索速度的机制。 其上每个值都能够唯一标识一条记录的字段称为主键。为了在表和表之间建立关系而在表中添加的、其他表主键的字段称为外键。而索引是与键无关的机制。
注:这个肯定要出专题了,从JDBC入门到SQL优化?五大范式?分库分表?事务?后面再整理吧。
XML究竟是什么
HTML 是用于编写网页的标记语言。XML 是用于定义任意标记语言的元语言。 通常把用于定义新语言的语言称作元语言。通过使用XML可以定义出各种各样的新语言。
xml是标记语言,是可扩展的标记语言。支持自定义标签
se负责监管计算机系统的构建
软件开发过程的模型有“瀑布模型”“原型模 型”“螺旋模型”等。
“瀑布模型”
在瀑布模型中,每完成一个阶段,都要书写文档(报告)并进行审 核。进行审核时还需要召开会议,在会上由SE为开发团队的成员、上司以及客户讲解文档的内容。
瀑布模型有点:1、让软件开发过程有序可控,可追溯。(文档的沉淀就是团队的沉淀)
2、让分工明确化,让协作变成可能。
瀑布模型的六个阶段对应现在的:项目经理,产品经理,架构师,软件工程师,测试工程师、运维工程师。
3、质量有保障
捞两下
链接:《网络基础》:计算机网络基础常见面试问题大全,这里涵盖了常见的网络基础相关面试题。网络七层模型,握手挥手详解,http/tcp/socket连接,tcp/ip协议簇,输入xxURL的访问过程等等诸如此类的常见面试题做了全面的整理。
链接:《空号》:聊聊我在阿里外包3个月学到了什么。,每天和正式员工厮混在一起,这是我3个月的所见所闻所想。我常常在思考和他们的差距在哪里,以后也会不定时的继续发个人浅见。还有书单什么的以后再说吧
打上注释的,后面会以专题形式单独开博,届时会把链接补进来。(想看的也可以留言)
如果觉得有用,请点赞,因为你的鼓励是我写作的最大动力!
联系我/公众号
空号 | 文 【原创】【转载请联系本人】 如果本篇博客有任何错误,请批评指教,不胜感激 !本文已收入至我的GitHub仓库,欢迎Star:github.com/JavaKongHao,里面也有我个人联系方式有什么问题也可以直接找我。
来源:https://www.cnblogs.com/JavakongHao/p/12011574.html