2022.1.21~22

linux知识点的补充

1.touch和mkdir都有创建文件的意思

2.cat和more都是查看文件显示到linux上的意思,cat是一次全部查看,more是分批查看避免系统崩溃

3.编译的作用:将高级程序语言翻译成中间过渡的语言

4.javac(jdk)是编译,java(jre)是翻译的作用

java的基础语法

1.java的八种数据类型:

整数:byte,short,int,long

浮点型:float,double

字节:char

布尔:boolen

2.java的输出语句字符之间需要用+连接

3.函数的参数需要定义类型,而且可以是多参数的

4.斐波那契数列:每个数都是前两位数的和

0 1 1 2 3 5 8 13 21 34

0 1 2 3 4 5 6 7 8 9 10

方法定义F(0)=0,F(1)=1 当n>=2时,F(n)=F(n-1)+F(n-2)

递归:自己调用自己的形式,而且会存在结束标志

数据结构相关基础

1.时间复杂度:当x足够大的时候想要达到某个操作目的所要进行的操作次数就是时间复杂度

2.时间复杂度的大小排序

O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)

3.常用的数据结构:数组,链表,栈,队列,树,图

4.数组和链表的区别:数组是物理上的连续,而且这种存储方式方便查找,但是会有一定程度的空间资源的浪费,链表相对而言是逻辑上相连的,虽然会花费一定的时间,但是可以方便增删操作而且节约资源

5.栈的作用:栈就像一个木桶,这个木桶是先进后出的特点,它通过移动游标来对数据进行增加和删除

6.队列的作用:他的特点是先进的先出,从一端进入,从另一端出去,会用头指针和尾指针来控制增删改查的实现

7.树被分为有序树和无序树

8.有序树包括完全树,满树,完美树,哈夫曼树

9.完全树是只有最后一层可以是不满的,从上到下,从左到右要必须有子节点存在,左孩子是2n+1,右孩子是2n+2,奇数是左孩子,偶数是右孩子,左孩子-1/2是父亲,右孩子-2/2也是父亲。

10.满树:除了叶子节点,每层都是满的

11.完美树:如果有孩子就要求要儿女双全,如果没有孩子就一个也不能有

12.哈夫曼树:最优二叉树,主要用来压缩数据

13.有序树:左孩子比根节点小,右孩子要比根节点大

14.有序树包括平衡树(红黑树,B树),非平衡树,

15.有序树的遍历,先序中序后序三者都是针对根节点而言的

16.平衡树:每一个节点的左右孩子的高度差不能超过1,非平衡树的概念与之相反

17.图包括无向图,有向图,有向带权图

18.八大排序:冒泡排序,选择排序,直接插入排序,希尔排序,快速排序,归并排序,堆排序,基数排序

计算计组成原理相关知识点

计算机中的cpu是怎么对内存操作的呢?

1.cpu在对内存的数据进行读取的时候,如果只是简单的讲内存的存储单元进行简单的规划,1B位单位进行读取的话,这样会造成大量的工作效率,所以我们引进了内存单元分页的功能,就是将一定量的字节组成一个存储页,这样可以大大减伤cpu对内存的读取次数,来提高cpu的效率

2.在cpu对内存的读取中,单次会消耗20ns,但是cpu单次计算时间却只有0.2ns,这样相比较之下的话,cpu大部分时间是出于空转的,所以会造成资源的浪费,所以现在的计算机里的cpu我们都会装入分级的高速缓冲,这种高速缓冲离cpu越近的话其存储能力越弱,但是读取速度却相对较大

3.内存中的分页是将整个内存分成若干个分页,举例,12bit位的地址数目(5.7)的意思就是有2^5个分页,每个分页的大小为2^7个B

4.举一个现在我们常用的电脑的内存是8GB=2^33B这样的话他是按照(21,12)的方式进行分的,就是会有2^21个分页,每个分页是2^12B,也就是4KB,所以现在我们内存和磁盘都是以4KB为单位进行分页的

5.内存和磁盘的分页大小虽然是一样的,但是二者的需求是不一样的,内存追求的是速度牺牲的是空间,磁盘追求的是存储量量牺牲的是时间

6.在设置了三级高速缓冲之后,我们现在的cpu也仅仅只有三分之一的利用率

多核处理机具有怎么样的特点呢?

1.首先是任何一个多核处理机在同一时刻只能对同一条命令进行处理,来自有处理机的多核处理只能顺序的内存进行操作

2.多核处理机在对内存进行处理的时候,会出现因为同时对数据进行操纵而产生的数据出错的情况,为了互斥,我们会采用队列,加锁标记,加同步标记的三种方式达到互斥的效果

信号量机制的作用是怎么样的呢?

1.信号量机制是为了保证两个进程合作处理数据时的正确性

2.信号量机制分为两种情况,第一种是让两个进程进行轮流的操作,第二种是添加一个标记量,而且这个标记量在被修改之后有自动+1的功能,这样的话即使是两个进程都对其读取,也会因为标记量的原因而相互错开

我们的电脑是怎么将我们的代码存储到磁盘的呢

1.首先是我们常用的一些变量,比如是int类型的,它本来只需要4B,32bit 的存储量,但是当我们的计算机在分配空间的时候却直接给了他一个分页的空间,这是因为每一个分页只能有一个总地址进行代表,如果后续的int类型数据再想被存储到同样的分页里的时候,是无法有一个准确的地址的,所以每一个变量都要直接分配一个分页。

2.然后是数组,由于数组的特性,数组内的元素是相邻的,而且他们在存储的时候物理上也是紧密挨着的,所以当我们的数组存到分页里的时候就可以占用较大的空间,这样可以有效的减小资源的浪费。

3.单个存储页的空间越大cpu处理的速度就会越快,但是会造成一定程度上的空间的浪费,相反的话,也会是相反的效果

4.所有的文件都是存储到了磁盘上,变量都是存储到了内存上面

5.磁盘上存储文件的方式有三种:1.顺序存储(这样的方式查找会快),2.链式存储(这样的方式增删会快一些),3.把顺序存储的每一个存储页都预留一些空间,这样可以更好的为了之后的修改做准备,是一个折中的处理方式,被现在广泛使用

6.流水线技术:为了生产一辆车,把各个组件分配生产,每一条线只生产事先分配好的内容,这样可以减少人员的流动,减少环境的更换,可以更好地提高效率,减少切换的开销        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值