基础知识
西邮彭于晏
热爱学习,热爱生活
展开
-
用DOSBox0.74进行汇编代码的运行
这样就成功了同时还会生成一个.obj文件,如果有错误的话,按照错误的提示,进行相应的修改。首先在那个文件夹里创建一个hello.asm文件,然后写上相应的代码保存。首先将你的所有东西都写入一个文件中。就会看到文件与你电脑上的文件相同。将其与box中的c盘连接。这是连接,要写程序的话。再打开你的box输入。原创 2022-10-31 16:26:57 · 820 阅读 · 0 评论 -
服务器内部转发以及客户端重定向,保存作用域问题
一次请求响应过程,对于客户端而言,内部经过了多少次转发,客户端是不知道的。两次请求响应的过程。客户端肯定知道请求URL有变化。原创 2022-10-21 19:58:44 · 333 阅读 · 0 评论 -
会话跟踪技术
2.下一次客户端给服务器发请求的时候,会把sessionID带给服务器,那么服务器就能获取到了,那么服务器就判断这一次请求和上一次请求是同一个客户端从而能够区分客户端。1.Http是无状态的,服务器无法判断两次请求是同一个客户端发过来的,还是不同的客户端发过来的所以通过会话跟踪技术来解决这一问题。1.客户第一次发送请求给服务器,服务器获取session,若获取不到,则创建新的然后相应给客户端。session保存作用域是和具体的某一个session对应的。原创 2022-10-21 19:26:44 · 277 阅读 · 0 评论 -
Java中数据库连接的方法,以及代码演示
1.导入jar包一般可以在百度直接搜索可以找到,如果对版本有要求的话进行相应版本的搜索,我这里是8.0.16版本的此时会抛出一个异常,可以根据idea的提示将其抛出。3.通过驱动管理器获取连接对象注意url中要带参数的话用?进行连接,连接第二个参数时使用&连接,在这里我已经将其乱码问题解决,大家可以放心使用,用户名称和密码根据自己设置的自行修改。6.执行更新(增删改),返回影响的行数7.释放资源(关闭链接,先关闭psmt,再关闭conn)原创 2022-10-18 17:10:26 · 1864 阅读 · 0 评论 -
6-8 从单链表LA指定位置删除连续n个元素并插入单链表LB的指定位置 (10 分)
6-8 从单链表LA指定位置删除连续n个元素并插入单链表LB的指定位置 (10 分)设指针la和lb分别指向两个无头结点单链表中的首元结点,试编写算法,从表la中删除自第i个元素起共len个元素,并将它们插入表lb的第j个元素之后。函数接口定义:void MoveLaToLb(LinkList *pa,int i,int len,LinkList *pb,int j);其中 pa 和 pb 分别为两个单链表的头指针la和lb的指针。 i, j, len的意义与题目描述部分相同。注意:对参数的合法性原创 2022-02-28 12:33:41 · 1458 阅读 · 0 评论 -
6-7 删除循环链表中已知结点的前驱 (10 分)
6-7 删除循环链表中已知结点的前驱 (10 分)假设有一个循环链表的长度大于1,且表中既无头节点也无头指针。已知s为指向链表中某结点的指针,试编写算法,在链表中删除指针s所指结点的前驱结点。函数接口定义:void DelPrior (Node * s );其中 s 是传入的参数,函数要求删除s所指结点的前驱结点。其中类型定义如下:typedef int DataType;typedef struct node{ DataType data; struct node *nex原创 2022-02-25 12:47:57 · 3563 阅读 · 0 评论 -
java中的访问控制权限修饰符
访问控制权限修饰符:1.访问控制权限控制元素的访问问范围2.访问权限修饰符包括:Public 公开的,任何位置都可以访问protected省略private 表示私有的,只能在本类中访问3.访问控制权限修饰符可以修饰类、变量、方法……4.当某个数据只希望子类使用,使用proteed进行修饰5.修饰符的范围private<缺省<protected<public...原创 2022-02-24 17:55:25 · 440 阅读 · 0 评论 -
Java中final关键字
1.final是一个关键字,表示最终的,不可变的2.final修饰的变量无法继承3.final修饰的方法无法被覆盖4.final修饰的变量一旦赋值之后,不可重新赋值5.final修饰的实例变量,必须手动赋值,不能采用系统默认值6.final修饰的引用:final修饰的引用一旦指向某个对象之后,不能再指向其他对象,那么被指向的对象无法被垃圾回收器收回。7.final修饰的实例变量是不可变的,变量一般和static联合使用,被称为“常量”package finalguanjianzi;pub原创 2022-02-19 13:50:12 · 381 阅读 · 0 评论 -
Java中的多态
一、语法机制:1.Anima、Cat、Bird三个类之间的关系:Cat继承AnimalBird继承AnimalCat和Bird之间没有任何继承关系2.面向对象的三大特征:封装,继承,多态。3.关于多态的概念:向上转型(upcasting)子类型—>父类型又被称为:自动类型转换向下转型(downcasting)父类型—>子类型又称为强制类型转换。【需要加强制类型转换符】需要记忆:无论是向下转型还是向上转型,两者之间都必须要有继承关系。没有继承关系,程序是无法编译运行通原创 2022-02-17 23:28:27 · 173 阅读 · 0 评论 -
6-5 找出顺序表中的最小值 (10 分)
6-5 找出顺序表中的最小值 (10 分)已知长度为n的线性表采用顺序存储结构,请设计一个算法,找出该线性表中值最小的数据元素。 顺序表的存储结构如下:#define MAXSIZE 100typedef int ElemType;typedef struct{ ElemType elem[MAXSIZE]; int length;}SeqList;函数接口定义:int FindMin(SeqList *q );其中 q 是用户传入的参数,为指向顺序表的指针。函数返回原创 2022-02-16 21:17:59 · 4513 阅读 · 0 评论 -
6-4 单链表逆置 (10 分)
6-4 单链表逆置 (10 分)设有一线性表e={e1,e2,…,en-1,en),其逆线性表定义为e’={en,en-1,…,e2,e1}。请设计一个算法,将线性表逆置,要求逆线性表仍占用原线性表的空间,并且用单链表来表示,写出逆置函数。函数接口定义:void Reverse( LinkList head );q 是用户传入的参数,为单链表的头指针。其中类型定义如下:typedef int DataType;typedef struct node{ DataType data;原创 2022-02-14 13:41:06 · 2567 阅读 · 0 评论 -
6-3 顺序表逆置 (10 分)
6-3 顺序表逆置 (10 分)设有一线性表e={e1,e2,…,en-1,en),其逆线性表定义为e’={en,en-1,…,e2,e1}。请设计一个算法,将线性表逆置,要求逆线性表仍占用原线性表的空间,并且用顺序表来表示,写出逆置函数。函数接口定义:void reverse(SeqList *q );其中 q 是用户传入的参数,为指向顺序表的指针。其中类型定义如下:#define MAXSIZE 100typedef int ElemType;typedef struct{ E原创 2022-02-14 13:26:06 · 2049 阅读 · 0 评论 -
Java中的方法覆盖
一、Java中的方法覆盖1.方法覆盖又称为方法重写,英语单词:override/overwrite2.使用:当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法的重写/覆盖3.满足的条件:方法的重写发生在具有继承关系的父子类之间方法名相同返回值类型相同,返回值列表相同(尽量复制粘贴)...原创 2022-02-13 21:52:54 · 5109 阅读 · 0 评论 -
java中的重载
一、方法的重载:1.方法的重载称为overload2.方法重载的使用:当在同一个类中,方法完成的功能是相似的,建议方法名相同,这样方便程序员编程。3.方法重载的条件:(1)在同一个类中。(2)方法名相同(3)参数列表不同:类型,顺序,个数4.方法重载和什么无关:(1)和方法的返回值类型无关(2)和方法的修饰符列表无关。...原创 2022-02-13 17:10:47 · 130 阅读 · 0 评论 -
Java中的继承
1.继承是面向对象的三大特征之一,三大特征分别是:封装,继承和多态。2.继承基本的作用是:代码复用。但是“重要的”作用是:有了继承才有了以后“方法的覆盖”和“多态机制”。3.继承的语法格式: 【修饰符】class 类名 extends 父类名{ 类体=属性+方法。}4.Java语言当中的继承只支持单继承,一个类不能继承很多类,只能继承一个类。5.关于继承中的一些术语:b类继承a类,其中:a类称为:父类,基类,超类,superclassb类称为:子类,派生类,subclass6.子类继原创 2022-02-12 13:00:05 · 582 阅读 · 1 评论 -
java中的static关键字
一、static关键字修饰变量实例变量:当所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化【不同对象的这个属性的值不同】讲变量声明为实例变量。静态变量:所有对象都有这个属性,并且,所有对象的这个属性值是一样的,建议定义为静态变量,节省内存开销。用“类名.静态变量名”的方式访问。采用引用.的方式访问的时候,即使引用是null,也不会出现空指针异常,因为访问静态的数据不需要对象的存在。1.static为静态的。2.static修饰的所有元素都为静态的,用“类名.静态变量名”的方式访问原创 2022-02-09 14:53:45 · 378 阅读 · 0 评论 -
Java中的参数传递
一、值传递public class test_01 { public static void main(String[] args) { int i=10; add(i); System.out.println("main--->"+i); } public static void add(int i) { i++; System.out.println("add--->"+i); }}内存图:Java语言当中涉及参数传递问题,实际上是传递变量中原创 2022-01-31 14:09:38 · 804 阅读 · 1 评论 -
Java中引用和对象的概念
1.对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。2.引用:引用时一个变量,不一定是局部变量,还可能是成员变量。引用保存了内存地址,指向了堆内存当中的对象。注意: 所有访问实例相关的数据,都需要通过“引用.”的方式访问,因为只有通过引用才能找到对象。只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。...原创 2022-01-31 11:23:10 · 915 阅读 · 0 评论 -
java构造方法
1.构造方法又为构造函数,构造器,constructor2.构造方法语法:[修饰列表] 构造方法名(形式参数列表){ 构造方法体;}3.回顾普通方法的语法结构:[修饰符列表]返回值类型 方法名(形式参数列表){ 方法体;}4.对于构造方法来说,“返回值类型”不需要指定,并且不能写void,只要写上void就变成为普通方法。5.对于构造方法来说,构造方法的方法名必须和类名一致。6.构造方法的作用:构造方法存在的意义是,通过构造方法的调用,可以创建对象。7.构造方法的调用:原创 2022-01-27 21:52:13 · 6340 阅读 · 0 评论 -
JAVA的封装性
1.封装的好处:(1)封装之后,对于事物来讲,看不到事物比较复杂的一面,只能看到事物简单的一面。复杂性封装,对外提供简单的操作入口(2)封装之后才会真正的形成对象,真正的“独立体”(3)封装意味着以后的程序可以重复使用,并且这个事物的适应性比较强,任何场合都可以使用。(4)封装之后,对于事物的本身,提高了安全性。【安全级别高】...原创 2022-01-27 11:54:36 · 800 阅读 · 0 评论 -
Java中的类
Java中的类的代码:学生类学生类是一个模板描述了所有学生的共同特征【状态,行为】当前类只描述学生的状态信息【属性】public class Student{ String name;//姓名 boolean sex;//年龄 String add//住址}类体=属性+方法属性【存储数据采用变量的形式】由于变量定义再类体当中,方法体之外,这种变量称为成员变量所有学生都有学号信息但是每一个学生的学号都是不同的所以要访问这个学号必须先创建对象,通过对象去访问学号信息学号信息不能原创 2022-01-23 12:50:09 · 462 阅读 · 0 评论 -
面向过程和面向对象
面向过程和面向对象一、面向对象和面向过程的区别一、面向对象和面向过程的区别面向过程:主要关注点是:实现具体过程,因果关系。【集成显卡的开发思路】优点:对于业务逻辑比较简单的程序,可以达到快速的开发,前期成本投入较低。缺点:很难解决非常复杂的业务逻辑。另外面向过程的方式,导致软件元素之间的“耦合度”非常的高,只要其中一环出问题,整个系统受到影响,导致最终软件扩展能力差,另外由于没有独立体的概念,所以无法达到组间复用。面向对象: 主要关注的点是:主要关注对象【独立体】完成的那些功能【独立显卡的开发原创 2022-01-16 15:17:13 · 2309 阅读 · 0 评论 -
邻接矩阵转化为邻接链表——6-1 有向图邻接矩阵转换为邻接表 (10 分)
邻接矩阵转化为邻接表1.邻接矩阵的数据类型描述:2.邻接链表的数据类型定义:3.代码思路:练习题6-1 有向图邻接矩阵转换为邻接表 (10 分)1.邻接矩阵的数据类型描述:#define MAXVEX 20typedef char Vextype;typedef struct{ int arcs[MAXVEX+1][MAXVEX+1]; Vextype vex[MAXVEX+1]; int vexnum; int arcnum;}AdjMatrix;2.邻接链原创 2021-12-02 09:44:40 · 4596 阅读 · 0 评论 -
哈夫曼树及其应用
哈夫曼树及其应用一、哈夫曼树1.哈夫曼树:一、哈夫曼树最优二叉树:在叶子结点个数n以及各个的权值以及各个叶子结点的权值W在确定的条件下,树的带权路径长度WPL值为最小的二叉树为最优二叉树。1.哈夫曼树:(1)来源:由于哈夫曼最早给出建立最优二叉树的方法,因此最优二叉树又称为哈夫曼树。(2)哈夫曼树的建立:a. 初始化:根据给定的n个权值(W1,W2,… ,Wn)构造n棵二叉树的森林集合F={T1,T2,… ,Tn}其中每棵二叉树Ti,只有一个权值为Wi的根节点,左右子树皆为空。b. 找到最小树原创 2021-12-01 21:02:13 · 2200 阅读 · 0 评论 -
Java中hasnext()用法
Scanner sc = new Scanner(System.in);此句 表示从控制台获取数据,sc.hasNext() 表示你是否有输入数据,while语句块 表示当你输入数据的时候,就执行输出sc.next()(输出内容)所以只要你输入数据了,它就可以执行,所以后台只是开了一块内存,一直未关闭,不算死循环。...原创 2021-11-27 13:15:39 · 7075 阅读 · 0 评论 -
Java中包的概念
Java中包的概念一、包的概念1.目的:2.用途:二、创建包三、使用包中的类1.使用长名引用包中的类2.使用import语句引入包中的类一、包的概念1.目的:Java中要求文件名和类名相同,所以将多个类放在一起时,很可能出现文件名冲突的情况,这时Java提供一种解决该问题的方法,那就是使用包将类进行分组。2.用途:(1)将功能相近的类放在同一个包中,方便查找和使用。(2)由于在不同包中可以存在同名类,所以使用包在一定程度上避免了命名的冲突。(3)在Java中某些访问权限时以包为单位。二、创建原创 2021-11-23 15:37:50 · 1726 阅读 · 0 评论 -
Java中实例方法与类方法
Java中实例方法与类方法一、实例方法与类方法的定义二、实例方法和类方法的区别一、实例方法与类方法的定义1.声明方法时,方法类型前面不使用static修饰的是实例方法,用static修饰的是类方法,也称类方法。例如:class Student{ int sum(int a,int b) {//实例方法 return a+b; } static void run() {//类方法 ... }}解释:Student类中包含有两个方法,其中sum方法是实例方法,run方法是类方原创 2021-11-23 15:02:14 · 9646 阅读 · 0 评论 -
Java中对象的组合
对象的组合一、组合复用二、类的关联关系和依赖关系UML图1.关联关系:2.依赖关系:如果一个类把某个对象作为自己的成员变量,使用这样的类创建对象后,该对象中就会有其他的对象,也就是说,该类将其他对象作为自己的一部分。一、组合复用如果一个对象a组合了另一个对象b,那么对象a就可以委托对象b调用其方法,即对对象a以组合的方式复用b的方法。例如:计算圆锥的体积://Circle类class Circle{ double r; double area; Circle (double R){ r原创 2021-11-20 16:07:14 · 2745 阅读 · 0 评论 -
Java中的参数传值
Java中的参数传值一、传值机制1.基本数据类型的传值2.引用类型参数传值3.说明一、传值机制将实际参数的副本传递到方法内,而参数的本身不受任何影响。1.基本数据类型的传值对于基本数据类型的参数,向该参数传值的级别不能高于该参数的级别。比如:不能向int型数据传一个float值,但可以向double 型参数传递一个float值。class Point{ int add(int x,int y) { return x+y; }}public class Example { publ原创 2021-11-20 15:22:24 · 1018 阅读 · 0 评论 -
Java中构造方法与对象
Java中构造方法与对象一、构造方法的概念及用途1.默认构造方法和自定义构造方法。2.说明:3.注意:二、对象的概述1.对象的创建:(1)对象的声明:(2)实例化对象2.对象的使用:3.对象的销毁一、构造方法的概念及用途构造方法是一中特殊的方法,它的名字必须与它所在类的明在完全相同,并且没有返回值,也不需要使用关键字void进行识别。例如:public class Apple{ public Apple(){//默认构造方法}}1.默认构造方法和自定义构造方法。如果类例定义一个或者多个构原创 2021-11-20 13:30:08 · 1233 阅读 · 0 评论 -
Java中的类
类一、定义类二、成员变量和局部变量一、定义类1.什么是类:类是同一类事务的总称,它是一个抽象的概念,比如鸟类,人类,鱼类。2.类的声明:[修饰符]class<类名>[extends 父类名][implements 接口列表 ](1)修饰符:可选,用于指定类的访问权限,可选值为 public, abstruct和finall。(2)类名:必选,用于指定类的名称,类名必须是合法的Java标识符,一般情况下要求首字母大写。(3)extends 父类名:可选,用于指定要继承那个父类。当使原创 2021-11-19 17:26:05 · 770 阅读 · 0 评论 -
Math.round() 返回最接近参数的 int,它表示“四舍五入“
常用的方法:Math.round() 返回最接近参数的 int,它表示"四舍五入"Math.rint()返回最接近参数并等于某一整数的 double 值,如果有2个数同样接近,则返回偶数的那个Math.floor()返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数Math.ceil()返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数Math.cbrt()返回 double 值的立方根Math.sqrt() 返回正确舍入的 d原创 2021-11-07 10:44:38 · 512 阅读 · 0 评论 -
import关键字
import:导入1:源文件显式地使用import结构导入指定包下的类、接口2:声明在包的声明和类的声明之间3:如果需要导入多个结构,则可并列写出4:可以使用“XXX.”的方式,表示可以导入xxx包下的所有结构5:如果使用的类或接口是java.lang包下定义的,则可以省略import结构6:如果使用的类或接口是本包下的同名类,则可以省略import结构7:如果在源文件中,使用了不同包下的同名的类,则必须至少有一个类需要以全嘞名的方式显示8:使用“xxx.”方式表明可以调用xxx包下的所有结原创 2021-11-07 10:23:03 · 130 阅读 · 0 评论 -
Java 中this关键词与super关键词
this关键词一、关键词的意义二、this关键字的应用(一个类中除静态外的成员,如果要运行,就必须得被对象调用)一、关键词的意义1.代表当前对象2.this 就是所在函数所属对象的引用,简单来说,那个对象调用了this所在的函数,this就代表那个对象3、如下图,this代表的就是对象p,如右边内存图解,this会通过堆内存中新建对象的首地址,指向新建的对象二、this关键字的应用(一个类中除静态外的成员,如果要运行,就必须得被对象调用)1、当成员变量和局部变量重名,可以用关键字this区分,原创 2021-11-03 23:31:32 · 305 阅读 · 0 评论 -
数据结构第三次上机题
第三次上机题1.链表基础概念2. 顺序表逆置 (10 分))3. 单链表逆置 (10 分)4.找出顺序表中的最小值 (15 分)5.删除顺序表中指定值元素 (15 分)6.删除循环链表中已知结点的前驱 (10 分)7. 从单链表LA指定位置删除连续n个元素并插入单链表LB的指定位置 (15 分)8. 两个单链表元素交叉合并 (15 分)1.链表基础概念2-1链表不具有的特点是______B_____?A.插入、删除不需要移动元素B.可随机访问任意元素C.不必事先估计存储空间D.所需空间与线性长原创 2021-10-17 12:13:24 · 3822 阅读 · 0 评论 -
静态链表的学习
静态链表1.概念:静态链表是顺序表和链表的结合,在初始化时申请一定大小的空间(等同于定义一定长度的数组),数组元素时结构体的变量,结构体内有两个元素,一是数据,二是游标(相当于链表中的指针),游标保存的是下一个节点的下标。2.与动态链表的区别:(1)静态链表类似于数组的方法实现的,是顺序存储结构,在物理地址上的连续的,而且需要预先分配空间大小。所以静态链表的初始值一般是固定的,在做插入和删除时不需要移动元素,仅需修改指针。(2)动态链表是用内存申请函数(malloc/new)动态申请内存的,所以在原创 2021-09-10 21:32:49 · 655 阅读 · 0 评论 -
复习题。。
6-1 有结构文件的读写1 (5 分)学生类型:ST的类型定义如下:typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST; 编写函数,从指定的文件上读入若干字符串,每行字符串是一个学生的信息(姓名,学号,性别,年龄,分数)的字符串表示,数据间以空格分隔,将学生们的信息存储于一个结构体中,并利用output()函数输出到指定文件中。void fun(FILE *fin,FILE *fo原创 2021-07-01 15:08:23 · 2143 阅读 · 0 评论 -
文件的应用——统计stu.dat文件中地每个人地总成绩并将原有地数据计算出的总成绩存放在磁盘文件“stu.sort“文件中
统计stu.dat文件中地每个人地总成绩并将原有地数据计算出的总成绩存放在磁盘文件“stu.sort"文件中#include<stdio.h>#include<stdlib.h>#include <conio.h>struct stu{ int ji; int english; int math; int sum;};int main(){ FILE *fp; FILE *f; int i,n=0; struct stu clas[20]原创 2021-06-10 15:56:50 · 411 阅读 · 0 评论 -
文件的应用-有一个文件stu.dat存放了201个人的成绩(计算机,英语,数学)存放格式为:每一个人一行成绩间由逗号分隔。计算三门课的平均成绩,并统计成绩大于或等于90分的人数。
有一个文件stu.dat存放了201个人的成绩(计算机,英语,数学)存放格式为:每一个人一行成绩间由逗号分隔。计算三门课的平均成绩,并统计成绩大于或等于90分的人数。#include<stdio.h>#include<stdlib.h>#include <conio.h>struct stu{ int ji; int english; int math; float aver;};int main(){ FILE *fp; int i,n=0原创 2021-06-10 15:42:37 · 460 阅读 · 2 评论 -
文件的应用-从键盘上对stu.dat文件写入20条学生记录
从键盘上对stu.dat文件写入20条学生记录(包括学号,姓名,班级,家庭住址信息等)#include<stdio.h>#include<stdlib.h>#include <conio.h>struct stu{ char num[20]; char name[40]; char cl[5]; char add[40];};int main(){ FILE *fp; int i; struct stu clas[20]; printf(原创 2021-06-10 15:37:00 · 497 阅读 · 1 评论