java初探 源文件结构java源文件可能包含以下内容: 包声明语句 包引入语句 类声明 接口声明 这些内容都不是必须的。此外要注意只能有一个类或接口是public的(一般也是private)。 包声明语句包声明语句把类放到特定的包中。例如123package com.abc.dollapp;public calss appmain{...};class doll{... 2020-04-19
UML简介 简单来说UML就是结构图,表示对象与类,类与类之间的联系。 UML主要包含以下框图: 用例图 从用户角度描述系统功能,简单来说就是用户让系统干什么(也可以说是系统的输入) 类框图 表示类与类之间的联系 状态转换图 这是针对有不同状态的类。类如开关的开和关就是状态的转换 时序图和协作图 时序图是在时间维度上描述用户的输入和类的使用。协作图则用箭头表示而不是通过时间轴表示 用例图用例图的要素有 2020-04-18 java
流水线 cpu运算可以简化成两大块,运算单元和寄存器。大致过程是先从寄存器中取值然后放入运算单元中运算完成之后又放入寄存器中。大致过程可分为六个部分 fetch(取指),读入指令 decode(译码),解码然后把寄存器中的值放到运算单元中 execute(执行), 进行计算 memory(访存),把结果放到内存中 write back(写回),把结果放到寄存器中 PC(更新PC) 这六个部分和把数据放 2020-04-09 计算机系统基础
顺序表 顺序表就是将元素放入一个连续的内存空间里,它的优点是可以快速访问,缺点是插入和删除操作时间复杂度高 建立12345678#include<iostream>#define datasize 100using namespace std;struct node{ int* p;//存储空间的基址 int length;//现在有的元素数量}; 初始化123 2020-02-17 数据结构
链式前向星 静态链表(链式前向星)是表示图的另外一种方法 前向星前向星也称为邻接数组 例 总共有这几条边1234567(1, 2)(2, 4)(3, 4)(1, 3)(4, 3)(3, 2)(1, 4)现在将这些边按从小到大排序,变成1234567(1, 2) --|(1, 3) --| => len[1] = 3(1, 4) --|(2, 4)(3, 2) => head[3] = 5(3, 2020-02-04
队列 队列基础队列是一种线性结构,有队头(front)队尾(rear)两个指针,每次拉进来一个元素会让队尾加一,而每次删除一个元素会让队头加一,这是一种先进先出的结构。 队列特殊情况判断 空队列 front=rear 满队列 rear-front=N(N指的是开的数组的大小) POP 从队头删元素 push 拉元素到队尾123456789101112131415161718192021222324252 2020-01-13 stl
迭代器支持的运算 之前写搜狗在线测试题目的时候,曾经想遍历一个set遍历。当时是这样写的。 set::iterator b = a.begin()+1 后来发现程序报错。究其原因是,set迭代器不支持加减数操作。查看了一下维基百科,下面是有关说明。 1.所有迭代器都应该实现自增算符:iter++,++iter 2.Bidirectional迭代器:是在前向迭代器的基础上,多了单步向后遍历的能力。也就是—iter,i 2020-01-11 stl
进程的储存和缓冲区溢出 用户空间用户空间是用户可以使用的空间,与之对应的是内核空间,这是系统所使用的空间。用户空间的大小有2的48次方,远远超出了内存的大小。 用户空间主要分为四个区域: 栈,栈位于用户空间的最高处,从高处向低处生长。linux系统中栈空间大小是8MB 堆, 用于存放一些动态分配的数据 数据, 用来存放全局变量,静态变量,字符串常量 代码, 存放指令和共享库 在Linux中,对于大小小于某一阈值的数据 2020-03-28 计算机系统基础
结构体 结构体的构成首先位于结构体中的元素在计算机也是对应存储的。而结构体的名字其实就可以看成是第一个变量的首地址。 例如:123456struct node{ int val; char c; int a[2];}在内存中是这样的12| val | c | a[0] | a[1]p p+4 p+5 p+9 而变量在内存中的位置于定义时的位置是对应的 字节 2020-03-24 计算机系统基础
线索二叉树 普通的二叉树中空节点数量很多,例如一个有2n条分支的二叉树,其中节点数只有n-1个,空节点有n+1个,因此就要想办法把这些没用到的节点利用起来。 可以用原来的空节点去存放指针,指向其他节点,这中指针叫做线索。 记ptr指向二叉链表中的一个结点,以下是建立线索的规则: (1)如果ptr->lchild为空,则存放指向中序遍历序列中该结点的前驱结点。这个结点称为ptr的中序前驱; (2)如果pt 2020-03-29 数据结构