自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 软件工程导论学习资料

Common coupling (also known as Global coupling) occurs when two modules share the same global data (e.g., a global variable). Changing the shared resource implies changing all the modules using it.公共耦合,当两个模块共享相同的全局数据(例如,一个全局变量)时,就会发生公共耦合(也称为全局耦合)。

2023-12-02 14:19:03 213

原创 Java 转换流

字符输入转换流字符输入转换流:InputStreamReader,可以把原始的字节流按照指定编码转换成字符输入流。 构造器 说明 public InputStreamReader(InputStream is) 可以把原始的字节流按照代码默认编码转换成字符输入流。几乎不用,与默认的FileReader一样。 public InputStreamReader(InputStream is , String char

2022-01-13 17:00:43 184

原创 Java 缓冲流

缓冲流概述缓冲流也称为高效流、或者高级流。字节流可以称为原始流。 作用:缓冲流自带缓冲区、可以提高原始字节流、字符流读写数据的性能缓冲流字节缓冲流 字节缓冲输入流:Bufferedlnputstream 字节缓冲输出流:BufferedOutputStream 字符缓冲流 字符缓冲输入流:BufferedReader 字符缓冲输出流:BufferedWriter 字节缓冲流性能优化原理:字节缓冲输入流自带了8KB缓冲池,以后我们直接从缓冲池读取数据,所以性能较好。

2022-01-13 13:51:54 468

原创 Java 字符流

文件字符输入流:Reader作用:以内存为基准,把磁盘文件中的数据以字符的形式读取到内存中去。 构造器 说明 public FileReader(File file) 创建字符输入流管道与源文件对象接通 public FileReader(String pathname) 创建字符输入流管道与源文件路径接通 方法名称 说明 pub

2022-01-13 11:41:05 186

原创 文件字节流

文件字节输入流:FileInputStream作用:以内存为基准,把磁盘文件中的数据以字节的形式读取到内存中去。 构造器 说明 public FilelnputStream(File file) 创建字节输入流管道与源文件对象接通 public FilelnputStream(String pathname) 创建字节输入流管道与源文件路径接通 方法名称

2022-01-13 00:20:09 423

原创 Java File类

File类概述File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。 File类提供了诸如:定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能。File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。File类创建对象 方法名称 说明 public File(String pathname) 根据文件路径创建文件对象 public File(S

2022-01-11 23:13:52 249

原创 方法的递归

什么是方法递归?方法直接调用自己或者间接调用自己的形式称为方法递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。递归的形式直接递归:方法自己调用自己。 间接递归:方法调用其他方法,其他方法又回调方法自己。方法递归存在的问题?递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出现象。递归计算n的阶乘public class RecursionDemo { public static void main(String[] args) {

2022-01-11 23:10:37 1505

原创 Java Stream流

什么是Stream流?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream流概念。 目的:用于简化集合和数组操作的API。体验Stream流的作用创建一个集合,存储多个字符串元素。 把集合中所有以"张"开头的元素存储到一个新的集合。把"张"开头的集合中的长度为3的元素存储到一个新的集合。 遍历上一步得到的集合中的元素输出。import java.util.ArrayList;import java.util.Collections;import

2022-01-08 22:00:00 192

原创 Java不可变集合

什么是不可变集合?不可变集合,就是不可被修改的集合。 集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。否则报错。为什么要创建不可变集合?如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 或者当集合对象被不可信的库调用时,不可变形式是安全的。如何创建不可变集合?在List、Set、Map接口中,都存在of方法,可以创建一个不可变的集合。 方法名称 说明 static <E> List<E

2022-01-07 19:31:50 549

原创 Java Map集合

Map集合概述和使用Map集合是一种双列集合,每个元素包含两个数据。 Map集合的每个元素的格式:key=value(键值对元素)。Map集合也被称为“键值对集合”。Map集合整体格式:Collection集合的格式:[元素1,元素2,元素3..] Map集合的完整格式:{key1=value1 , key2=value2 , key3=value3 , ...}使用场景:Map集合非常适合做类购物车这样的业务场景。Map集合体系特点Map集合的特点都是由键决定的。

2022-01-01 21:54:22 278

原创 Collections集合工具类

Collections集合工具类java.utils.Collections:是集合工具类 作用:Collections并不属于集合,是用来操作集合的工具类。Collections常用的API 方法名称 说明 public static <T> boolean addAll(Collection<? super T> c,T... elements) 给集合对象批量添加元素 pu

2022-01-01 16:59:24 339

原创 Java可变参数

可变参数可变参数用在形参中可以接收多个数据。 可变参数的格式:数据类型...参数名称可变参数的作用传输参数非常灵活,方便。可以不传输参数,可以传输1个或者多个,也可以传输一个数组。 可变参数在方法内部本质上就是一个数组。可变参数的注意事项:一个形参列表中可变参数只能有一个 可变参数必须放在形参列表的最后面import java.util.Arrays;public class MethodDemo { public static void main(String[] a

2022-01-01 16:24:09 110

原创 Java Set系列集合

Set系列集合特点:无序:存取顺序不一致 不重复:可以去除重复无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素。Set集合实现类特点:Hashset :无序、不重复、无索引。 LinkedHashSet:有序、不重复、无索引。TreeSet:排序、不重复、无索引。Set集合的功能基本上与Collection的API一致。import java.util.HashSet;import java.util.LinkedHashSet;import

2021-12-05 21:57:14 787

原创 关于泛型的部分理解

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。泛型的格式:<数据类型>; 注意:泛型只能支持引用数据类型。集合体系的全部接口和实现类都是支持泛型的使用的。泛型的好处:统一数据类型。 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为编译阶段类型就能确定下来。泛型可以在很多地方进行定义:类后面:泛型类 方法声明上:泛型方法接口后面:泛型接口自定义泛型类:定义类时同时定义了泛型的类就是泛型类。 泛型类的格式:

2021-12-05 19:24:17 113

原创 Java List系列集合

List系列集合的特点:ArrayList、LinekdList:有序,可重复,有索引。 有序:存储和取出的元素顺序一致有索引:可以通过索引操作元素 可重复:存储的元素可以重复List集合特有方法:List集合因为支持索引,所以多了很多索引操作的独特api,其他Collection的功能List也都继承了。 方法名称 说明 void add(int index,E element) 在此集合中的指定位置插入指定的元素

2021-12-05 17:42:05 283

原创 常见数据结构

数据结构概述:数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。常见的数据结构:栈 队列数组 链表二叉树 二叉查找树平衡二叉树 红黑树栈:后进先出,先进后出。数据进入栈模型的过程称为:压/进栈。数据离开栈模型的过程称为:弹/出栈。队列:先进先出,后进后出。数据从后端进入队列模型的过程称为:入队列。数据从前端离开队列模型的过程称为:出队列。数组:一片连续的内存空间。查询速

2021-12-05 15:51:09 472

原创 Java中的集合

集合和数组都是容器。数组的特点:数组定义完成并启动后,类型确定、长度固定。 在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位。数组适合的场景:当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采取定义数组存储。集合是Java中存储对象数据的一种容器。集合的特点:集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。集合更像气球。 集合非常适合做元素的增删操作。注意:集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类。

2021-12-05 12:26:22 100

原创 Lambda表达式

概述:Lambda表达式是JDK 8开始后的一种新语法形式。作用:简化匿名内部类的代码写法。Lambda表达式的简化格式:(匿名内部类被重写方法的形参列表) ->{被重写方法的方法体代码。}注:->是语法形式,无实际含义public class Main { public static void main(String[] args) { //简化前匿名内部类// Swimming s1 = new Swimming() {

2021-12-05 10:30:29 394

原创 选择排序和二分查找

选择排序:选择排序的思想:每轮选择当前位置,开始找出后面的较小值与该位置交换。选择排序的关键:确定总共需要选择几轮:数组的长度-1。 控制每轮从以前位置为基准,与后面元素选择几次。import java.util.Arrays;public class Main { public static void main(String[] args) { int[] arry = {23, 43, 12, 33}; for (int i = 0; i

2021-12-05 09:11:32 133

原创 Java Arrays类

概述:数组操作工具类,专门用于操作数组元素的。Arrays类常用的API: 方法名 说明 public static String toString(类型[]a) 对数组进行排序 public static void sort(类型[] a) 对数组进行默认升序排序 public static <T> void sort(类型[] a, Comparator

2021-12-04 20:45:13 406

原创 Java正则表达式

正则表达式:正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性。字符串对象提供了匹配正则表达式规则的API:public boolean matches(String regex):判断是否匹配正则表达式,匹配返回true,不匹配返回false。具体可查看JavaAPI文档Java Platform SE 8正则表达式在字符串方法中的使用: 方法名 说明 public String replaceAll(

2021-12-04 17:27:56 66

原创 Java包装类

包装类其实就是8种基本数据类型对应的引用类型。Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。后面的集合和泛型其实也只能支持包装类型,不支持基本数据类型。 基本数据类型 引用数据类型 byte Byte short Short int Integer long Long ch

2021-12-04 15:30:43 157

原创 Java日期与时间

Date:概述:Date类的对象在Java中代表的是当前所在系统的此刻日期时间。 Date的构造器:public Date() 创建一个Date对象,代表的是系统当前此刻日期时间。public Date(long time) 把时间毫秒值转换成Date日期对象。Date的常用方法:public long getTime() 获取时间对象的毫秒值。public void setTime(long time) 设置日期对象的时间为当前时间毫秒值对应的时间。simpleDateFormat类:作用:

2021-12-04 15:10:36 185

原创 Java常用API

Object:toString:默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址,更多的时候是让子类重写,以便返回子类对象的内容。 equals:默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false,更多的时候是让子类重写,以便比较2个子类对象的内容是否相同。Objects:Objects类与Object还是继承关系,Objects类是从JDK 1.7开始之后才有的。equals:官方在进行字符串比较时,没有对象自己的equals方法,而是选择了Obje

2021-12-04 11:36:24 51

原创 关于多态的部分理解

多态的概述:同类型的对象,执行同一个行为,会表现出不同的行为特征。多态的常见形式:父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类构造器;多态中成员访问特点:方法调用:编译看左边,运行看右边。 变量调用:编译看左边,运行也看左边。(多态侧重行为多态)多态的前提:有继承/实现关系;有父类引用指向子类的对象;有方法重写。多态的优势:在多态形式下,右边对象可以实现解耦合,便于扩展和维护。定义方法的时候,使用父类型作为参数,该方法就可以接收这父类的一切子

2021-11-21 14:47:38 51

原创 关于接口的部分理解

接口的定义与特点:接口是体现规范的,其中用抽象方法定义的一组行为规范,接口是更加彻底的抽象。体现了现实世界中“如果你是这类事物...则必须完成某些行为...”的思想。 接口格式:public interface 接口名{ //常量 //抽象方法}JDK8之前接口中只能是抽象方法和常量,没有其他成分了。 接口不能实例化。接口中的成员都是public修饰的,写不写都是,因为规范的目的是为了公开化。 接口中的常量都是public static final 修饰的,可以省略不写。接口中的方法都是pu

2021-11-21 13:53:17 216

原创 关于抽象类的部分理解

抽象类:某个父类知道其所有子类要完成某功能,但是每个子类完成情况都不一样,父类就只定义该功能的基本要求,具体实现由子类完成,这个类就可以是一个抽象类,抽象类其实就是一种不完全的设计图。 抽象类必须使用abstract修饰:修饰符 abstract class 类名{ }抽象方法:就是抽象类中定义的子类必须完成的功能的基本要求。 格式:修饰符 abstract 返回值类型 方法名称(形参列表);没有方法体,只有方法签名,必须abstract修饰。抽象的使用总结和注意事项:抽象类是

2021-11-21 12:04:05 246

原创 关于final关键字的部分理解

final关键字的作用:final关键字是最终的意思,可以修饰(方法、变量、类) 修饰方法:表明该方法是最终方法,不能被重写。修饰变量:表明该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次) 修饰类:表明该类是最终类,不能被继承。final修饰的变量的注意点:final修饰的变量是基本类型:那么变量存储的数据值不能发生改变。 final修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。常量:使用public static fin

2021-11-21 10:45:47 234

原创 关于‘枚举’的部分理解

枚举概述:枚举是Java中的一种特殊类型 枚举的作用:是为了做信息的标志和信息的分类。枚举的格式:修饰符 enum 枚举名称 { 第一行都是罗列枚举类实例的名称 }枚举的特征:枚举类都是继承了枚举类型:java.lang.Enum 枚举类都是最终类,不可以被继承。枚举类的构造器都是私有的,枚举类对外不能创建对象。 枚举类的第一行默认都是罗列枚举对象的名称。枚举相当于是多例模式。枚举做信息标志和分类:代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术,建议使用!

2021-11-21 10:44:40 226

原创 关于面向对象的‘继承’特征的部分理解

继承是类与类之间的一种关系。多个类继承单独的某个类,多个类就可以使用单独的这个类的属性和行为了。多个类称为子类(派生类),单独的这个类称为父类(基类或超类)。使用继承的好处:提高代码复用,减少代码冗余,增强类的功能扩展性。继承格式:在Java中继承的关键字用的是“extends”。public class 子类名 extends 父类名{}继承后子类的特点:子类继承父类,子类可以得到父类的属性和行为,子类可以使用。 Java中子类更强大。继承的设计规范:子类们相同

2021-11-20 22:06:11 263

原创 关于static关键字的部分理解

static关键字的作用:static是静态的意思,可以修饰成员变量,表示该成员变量只在内存中只存储一份,可以被共享、访问、修改。属于类,在内存中加载一次。访问方式:类名.静态成员变量(推荐) 对象.静态成员变量(不推荐)静态成员变量的内存原理:静态成员方法:有static修饰,属于类,建议用类名访问,也可以用对象访问。如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可以申明成静态方法。静态成员方法的内存原理:工具类好处:内部都是一些

2021-11-20 19:46:15 253

原创 人机交互总结

人机交互的概念:我们通常所说的人机交互是人机界面学的一个分支,它是指用户与计算机系统相互之间的通信。实现人与计算机之间通信的硬、软件系统即为交互系统。这里的“交互”即信息交换,包括计算机通过输出或显示设备给人提供信息,以及人通过输入设备向计算机输入有关信息。美国二十一世纪信息技术计划中的基础研究内容定为四项,即软件、人机界面、网络、高性能计算。其中,人机建模研究在信息技术中被列为与软件技术和计算机技术等并列的六项国家关键技术之一,并被认为“对于计算机工业有着突出的重要性,对其他工业也很重要”。

2021-11-14 14:34:26 5365

原创 关于Java String的部分理解

1、String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。2、字符串对象的特点: 双引号创建的字符串对象,在字符串常量池中存储同一个。 通过new构造器创建的字符串对象,在堆内存中分开存储。 以""方式给出的字符串对象,在字符串常量池中存储。创建的对象没有改变,每次都在指向新对象。3、String是不可变字符串的原因: String变量每次的修改其实都是产生并指向了新的字符串对象。 原来的字符串对象都是没有改变的,所以称不可变字符串。

2021-11-10 13:13:04 350

原创 从PC通过串口发送字符(‘R‘,’L,‘S),分别控制流水灯向右流动、向左流动、停止

没测试过不保证其正确性#include<reg52.h>typedef unsigned charuchar;typedef unsigned int uint;void delay(){uint i;for(i=0;i<20000;i++){}}void UsartConfig(){ //设置参数TMOD = 0x20; //设定定时器1的工作方式为方式2TH1 = 0xfd;TL1 = 0xfd; //装载TH1、TL1T...

2021-09-12 10:53:39 917

转载 总结Qt下样式表使用的规则及使用

1、改变样式表 QT样式表可以自定义任何一个QT控件的样式包括颜色、边框、字体、背景等等。针对单个控件按钮的话,在要修改样式的控件右击--->改变样式表。也可也在顶级窗口右击控件--->改变样式表,是针对该窗口中所有的QLineEdit。2、样式表的规则及使用样式的规则1:样式规则由选择器和声明组成。选择器指定哪些小部件受规则影响;声明指定应该在小部件上设置哪些属性。如:QPushButton { color : red }。其中QPushButton就是选...

2021-09-10 19:56:55 1332

原创 论述c++编译过程的步骤及其作用

c++编译的四个过程:预处理、编译、汇编、链接1,由.c文件到.i文件,这个过程叫预处理(1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的 Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。 这些伪指令的引入使得程序员可以通过定义不.

2021-09-09 16:39:19 814

原创 在Qt Creator中系统自动生成代码的含义。

创建的helloword项目下各代码的含义helloworld.h中的代码及含义如下:#ifndefHELLOWORLD_H //避免头文件重复定义#defineHELLOWORLD_H //避免头文件重复定义#include<QMainWindow> //引入QMainWindow头文件QT_BEGIN_NAMESPACEnamespaceUi{classHelloWorld;}QT_END_NAMESPACE //qt...

2021-09-09 16:37:45 736

原创 Qt产生的莫名奇妙的错误解决方法

1、如果创建的qt项目的存放路径中存在中文大概率是出错的,比如运行没有错误,但就是不显示运行出来的结果,这时可以看一下路径中是否有中文,路径中不能存在中文。2、特别莫名奇妙无厘头的错误QT最后生成的可执行文件不在源代码文件下,在D:\qt_projects\build-helloword-Desktop_Qt_6_1_2_MinGW_64_bit-Debug\debug下把debug下的文件全部删掉重新运行一遍,可能莫名其妙的错误就没了...

2021-09-07 16:12:04 2547

原创 图像及图像压缩的研究

一、图片格式、应用场景1、BMP格式BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。所以,目前BMP在单机上比较流行。2、GIF格式GIF是英文Graphics Interchange ...

2021-09-04 12:57:58 1691

原创 数据库索引相关介绍

在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。当表中有大量记录时,若要对表进行查询,第一种

2021-09-03 22:00:02 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除