- 博客(46)
- 收藏
- 关注
原创 Java网络编程
文章目录网络编程网络编程的常识七层网络模型相关的协议协议的概念TCP协议UDP协议IP地址端口号基于TCP协议的编程模型C/S架构的简介相关类和方法ServerSocket类Socket类编程模型注意事项基于UDP协议的编程模型相关类和方法DatagramSocket类DatagramPacket类InetAddress类编程模型URL类基本概念URLConnection类基本概念HttpURLConnection类的常用方法网络编程网络编程的常识七层网络模型OSI(Open System In
2022-05-19 17:00:51
360
原创 Java集合类库
目录集合的框架结构Collection集合基本概念Collection常用方法Iterator接口Iterator常用方法List集合基本概念List常用方法Queue集合基本概念Queue常用方法Set集合基本概念元素放入HashSet集合的原理为什么要求重写equals方法后要重写hashCode方法呢TreeSet集合的排序规则Map集合基本概念Map常用方法HashMap元素放入HashMap集合的原理相关的常量Collections类基本概念常用的方法集合的框架结构Java中集合框架顶层框架
2022-05-03 09:30:29
412
原创 Java中Object类与包装类的概述和使用
目录常用类的概述和使用Object类的概述基本概念常用方法equals() 与 ==equals方法的实现hashCode()包装类包装类的概念包装类的分类Integer类的概述常用的常量常用的方法装箱和拆箱的概念自动装箱池BigDecimal类的概述基本概念常用的方法BigInteger类的概念基本概念常用的方法关于包装类的常见问题支持缓存操作的包装类有哪几种方法重载时,如重载方法的参数分别为基本数据类型与包装类,会如何执行调用?常用类的概述和使用Object类的概述基本概念java.lang.
2022-04-25 09:31:09
484
原创 Java中的String与StringBulider类概述和使用
目录Java字符串类的概述和使用不可变字符串类String类的概念字符串常量池(String Pool)的概念为什么String类是不可变的?常用方法常用的构造方法常用的成员方法可变字符串类基本概念常用方法StringBuilder类常用的构造方法StringBuilder类常用的成员方法Java字符串类的概述和使用不可变字符串类String类的概念java.lang.String类用于描述字符串,该类描述的字符串内容是个常量不可更改,因此可以被共享使用。String str1 = "ab
2022-04-18 17:06:17
359
原创 Java内存管理之堆和栈
Java内存管理之堆和栈我们都知道Java程序是运行在JVM(Java Virtual Machine)上的,我们可以把JVM理解成Java程序和操作系统之间的桥梁,而Java内存分配也都是基于JVM中进行的。Java程序运行过程会涉及到两大重要的内存区域——堆和栈。栈JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧,用于存储局部变量表、操作数、动态链接、方法出口信息等。当某一个方法调用完成后,其对应的栈帧将被清除。当栈内存储的内容是:由基本数据类型声明的局部变
2022-04-05 16:24:07
1054
原创 Java内部类
文章目录内部类实际作用内部类的分类普通(成员)内部类静态内部类局部(方法)内部类匿名内部类使用场景使用原则回调模式的概念内部类当一个类的定义出现在另外一个类的类体中或一个方法的方法体中时,那么这个类叫做内部类(Inner),而这个内部类所在的类叫做外部类(Outer)。实际作用当一个类存在的价值仅仅是为某一个类单独服务时,那么就可以将这个类定义为所服务类中的内部类,这样可以隐藏该类的实现细节并且可以方便的访问外部类的私有成员而不再需要提供公有的get和set方法。内部类的分类普通(成员)
2022-03-27 22:42:03
425
2
原创 Java接口和抽象类
文章目录接口和抽象类抽象类抽象方法注意事项抽象类的实际意义接口接口的语法规则关于接口应用的常见问题抽象类和接口的主要区别接口和抽象类的应用接口和抽象类抽象类抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是说抽象类不能创建对象。 抽象方法抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就是说抽象方法没有方法体。 注意事项抽象类可以不包含抽象方法含有抽象方法的类一定是抽象类abstract不能与static(用类名
2022-03-20 22:19:41
1298
原创 Java 语言有哪些特点?
Java 语言有哪些特点?Java是一门面向对象的编程语言。Java摒弃了C++中难以理解的多继承、指针、内存管理等概念,不用手动管理对象的生命周期。Java语言具有功能强大和简单易用两个特征,可以快速进行企业级开发,尤其是各种框架的出现,使得Java成为越来越火的一门语言。Java是一门静态语言,静态语言指的是在编译期就能够知道数据类型的语言。在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改。动态语言是为了能够让程序员提高编码效率,因此你可以使用更少的代码来实现功能。静态语言设
2022-03-13 21:18:15
1877
原创 Java中static关键字的应用
目录Java中static关键字的应用static修饰成员变量与普通成员变量的对比概念特征应用static修饰成员方法与普通成员方法的对比概念特征static修饰代码块与构造代码块及普通代码块的对比概念特征应用Java中static关键字的应用static是Java中常用的关键字,代表全局或者静态的意思。关于static的特征,我们可以理解为:方便在没有创建对象的情况下来进行某些操作。通常可用于修饰成员变量和方法,也可以用于形成静态代码块。实际应用中,可以将需要频繁操作、通用型信息设置、公共组件封
2022-03-06 21:23:22
320
原创 CSS入门基础知识
目录CSS入门基础知识CSS简介CSS文件结构内部样式表外部样式表CSS样式属性总结背景样式文本样式字体样式列表样式CSS选择器标签和类选择器伪类选择器伪元素选择器CSS其他选择器CSS选择器优先级CSS入门基础知识CSS简介CSS(Cascading Style Sheets)指的是层叠样式表,可以定义样式更好的显示html页面。CSS的作用:结构与样式分离的方式,便于后期维护与改版可以用多套样式,使网页有任意样式切换的效果使页面载入得更快、降低服务器的成本样式表分类:外部样式表、内部
2022-02-27 21:37:56
147
原创 HTML表格与表单
目录HTMl表格与表单HTML表格表格常用标签表格常用属性表格demo实现效果实现代码HTML表单html表格与表单综合demo实现效果代码HTMl表格与表单HTML表格表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。 表格常用标签
2022-02-20 22:00:08
2718
原创 HTML入门基础知识
目录HTML入门基础知识什么是HTMLHTML文件结构HTML常用标签段落标签注释标签标题标签img标签链接标签链接标签的target属性锚点标签列表标签无序列表有序列表HTML入门基础知识什么是HTMLHTML指的是超文本标记语言(HyperText Markup Language,简称:HTML),是一种用于创建网页的标准标记语言。 HTML文件结构<!DOCTYPE html><html><head> <meta charse
2022-02-13 23:01:39
238
原创 Go语言中的WaitGroup
Go语言中的WaitGroupGo语言sync包中的WaitGroup可以有效解决goroutine未执行完成,而主程序执行完成导致程序结束的问题。 Go语言标准库中WaitGroup只有三个方法:Add(delta int)表示向内部计数器添加增量(delta),其中参数delta可以是负数Done()表示减少WaitGroup计数器的值,应当在程序最后执行.相当于Add(-1)Wait()表示阻塞直到WaitGroup计数器为0代码示例:package mainimpo
2022-02-06 20:48:51
555
原创 Go语言中的命令行工具
Go语言中的命令行工具Go语言常用命令Go语言的工具箱提供了很多常用工具。它可以被看作是特殊包管理器,用于包的查询、计算包的依赖关系、从远程版本控制系统下载包等任务。它也是一个构建系统,计算文件的依赖关系,然后调用编译器、汇编器和连接器构建程序。它还是一个单元测试、基准测试和性能测试的驱动程序,可让我们非常方便地进行各类代码测试,快速查找各类问题 。可以在命令行中输入go或go help命令来查看内置的帮助文档。以下是常用的命令:bugstart a bug report
2022-01-30 19:52:34
804
原创 Go语言中的channel
目录Go语言中的channelchannel声明并初始化channel操作channel的语法缓冲机制无缓冲通道有缓冲通道close和rangeGo语言中的channelDon’t communicate by sharing memory, share memory by communicating.上面这句话是Go语言的主要创造者之一Rob Pike的至理名言,这也体现了Go语言最重要的编程理念。goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。引用类型channel是C
2022-01-23 22:19:02
1107
原创 Go语言中的测试、(pprof)性能调优、生成文档和示例代码
文章目录Go语言中的测试、(pprof)性能调优、生成文档和示例代码代码测试(test)测试文件格式传统测试单元测试(表格驱动测试)基准测试(性能测试)覆盖率测试性能分析和调优安装Graphviz使用pprof进行性能分析与调优生成文档和示例代码生成文档生成示例代码Go语言中的测试、(pprof)性能调优、生成文档和示例代码代码测试(test)我们在写程序时应该尽可能多写测试,而不是多做调试。代码测试的目的是确保代码按照你的设想执行,编写测试代码可以尽早地发现程序所存在的问题。go test命令用
2022-01-16 19:37:15
759
原创 Go语言中的goroutine
目录Go语言中的并发Go并发优势goroutinegoroutine定义线程和协程的区别创建goroutineGo语言中的并发并发是指在同一段时间内,程序可以执行多个任务。 Go并发优势Go语言最大的特点就是从语言层面支持并发,开发者不用担心并发的底层逻辑、内存管理,只需要编写好自己的业务逻辑即可。Go语言也提供了十分强大的垃圾回收机制,开发者不用担心创建的量如何销毁。 在其他语言中,编写并发程序往往需要使用其他的并发库才能实现。而在Go语言里,想要编写一个并发程序是非常容
2022-01-09 23:01:37
7640
原创 计组期末复习
前言处于期末考试中,所以…(此处省略一些狡辩的借口) 。其实就是本周除了完成了一个数据结构大作业,其他啥都没学文章目录前言什么是计算机冯.诺伊曼结构的主要思想计算机是如何工作的?程序在执行前开始执行程序hello程序的生命周期C程序编译的四个阶段什么是计算机计算机是一种能对数字化信息进行自动、高效算术和逻辑运算的处理装置。 冯.诺伊曼结构的主要思想计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别
2022-01-02 21:13:40
376
原创 Golang中的格式化输入输出
Golang中的格式化输入输出打印输出在Go语言中有多种输出方式,不同的输出适用场景不同。归纳起来有三种,每种还分为3种方式(原内容、原内容+ln、原内容+f)PrintXX()FprintXX()SprintXX() FprintXXFprintXX在Go Web中使用比较多,把内容写到响应流中。以Fprintln()为例,源码如下:// Fprintln formats using the default formats for its operands and
2021-12-26 22:33:54
864
原创 并发与多线程的基本概念
目录并发与多线程并发、进程、线程的基本概念和综述并发并行与并发并发基本概念使用并发的原因进程线程并发的实现方法多进程并发多线程并发并发与多线程并发、进程、线程的基本概念和综述并发并发就是在一段时间内,一个程序同时执行多个任务。 并行与并发定义:并行:指在同一时刻,有多条指令在同多个处理器上同时进行。并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速地轮换执行,得到在宏观上有多个进程同时执行的效果,但在微观上并不是同时执行,只是把时间片分成了若干段,使得多个进程快速交替执
2021-12-17 21:53:35
1225
原创 图的基本概念及图的存储
目录图(Graph)定义图的各种相关概念图的存储邻接矩阵存储邻接表存储带权图的存储带权图的邻接矩阵存储带权图的邻接表存储图(Graph)定义图(Graph)是由 顶点的有穷非空集合 和 顶点之间边 的集合组成,通常表示为G(V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。图中的元素我们叫作顶点(Vertex),图中任意一个顶点可以和其他顶点建立连接关系,我们把这种建立的连接关系叫作边(Edge)。 图的各种相关概念无向边:若顶点viv_ivi到顶点vj
2021-12-05 23:26:57
283
原创 Go语言内置容器(数组(array)、切片(slice)和映射(map))
目录Go语言内置容器(数组(array)、切片(slice)和映射(map))数组(array)声明数组初始化数组数组是值类型切片(slice)从数组/切片生成一个新的切片直接生成一个新的切片声明切片初始化切片slice的扩展为切片添加元素从切片删除元素映射(map)声明映射初始化映射从映射中删除键值对map的key类型及map的遍历Go语言内置容器(数组(array)、切片(slice)和映射(map))Go语言的内置容器主要有数组(array)、切片(slice)和映射(map)。 数
2021-11-23 12:48:59
4030
原创 Golang结构体与接口
目录结构体及其方法结构体定义结构体实例化结构体初始化结构体结构体内嵌结构体方法接口与类型接口的定义接口的创建与实现多态空接口类型断言ok-patternswitch-type非侵入式接口结构体及其方法结构体定义结构体Go语言中通过关键字type定义自定义类型,结构体定义需要使用type和struct关键字,格式如下:type 结构体名 struct { 成员变量1 类型1 成员变量2 类型2 成员变量3 类型3 ...} 实例化结构体结构体实例化时,会真正地分配内存。
2021-11-21 19:43:39
2616
原创 Go语言中函数的基本知识
目录Go语言中函数的基本知识函数变量多返回值函数可变参数可变参数函数的使用可变参数与内置函数匿名函数和闭包定义并调用匿名函数闭包延迟执行语句Go内置函数结尾Go语言中函数的基本知识在Go语言中,函数是一等公民,这意味着函数不但可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予变量、做类型判断和转换等。Go语言函数支持的特性:参数数量不固定(可变参数)。匿名函数及其闭包。函数本身作为值传递。函数的延迟执行。把函数作为接口调用。 函数变量Go语
2021-11-14 23:09:11
545
原创 二叉树的中后序遍历及操作 题解
文章目录题目代码总结题目题目描述按中序遍历和后序遍历给出一棵二叉树,现在有如下操作:UPDATE A B,将中序遍历中A位置(从1开始编号的下标)对应的在二叉树中的节点的权值改为BQUERY,询问树上所有节点的权值,以及从根节点到该节点的路径权值之和STOP,停止操作,STOP操作一定出现在最后中序遍历和后序遍历的输入保证叶子节点的权值各不相同。但是,之后如果存在UPDATE操作,则UPDATE操作可能会使得两个或两个以上的叶子节点的权值相同。 输入测试数据有
2021-11-07 23:37:49
423
原创 关于时间的思考
时间过得实在是太快了,不知不觉间又到了周日晚上,明天又是新的一周。今天是10月31日,10月份的最后一天,开学第九周的最后一天。这意味着本学期已经过半,我仔细回想了我这半个学期所做的事情,发现每周看似很忙碌,但似乎并没有做什么能让自己成长的事情。有那么一句是这么说的,老天很公平,给了所有人一样多的时间,而有的人能够把时间用好,有的人则没有把时间用好。日积月累,人和人的差距就越来越大了。显然,我就是没有把时间用好的那类人。因为我问了问自己这半个学期究竟学到了什么知识,点亮了什么技能,我回答不上来。我想我
2021-10-31 23:55:48
125
原创 Golang基本语法
目录切片slice从数组生成一个新的切片直接生成一个新的切片映射map函数声明函数函数变量切片slice切片与数组一样表示多个同类型元素的连续集合,但是切片本身并不存储任何元素,而只是对现有数组的引用。 切片结构包括:地址、长度和容量。地址:切片的地址一般指切片中第一个元素所指向的内存地址,用十六进制表示。长度:切片中实际存在的元素的个数。容量:从切片的起始元素开始到其底层数组中的最后一个元素的个数。 切片的长度和容量都是不固定的,可以通过追加元素使切片的长度和容量
2021-10-24 21:27:51
2212
原创 编译预处理
目录编译预处理宏定义不带参数的宏定义带参数的宏定义文件包含和条件编译文件包含条件编译编译预处理本章详细介绍了一个C语言项目的组成以及一个可执行文件的生成步骤。以这些知识点为开始,先后提出了宏定义、文件包含、条件编译三个C语言所提供的编译预处理功能。宏定义为程序编写的灵活性带来了极大的便利。文件包含为减少重复代码的编写提供了必要的支持。条件编译所支持的跨平台特性使编写的程序不需要任何代码改动就能够在不同的操作系统平台上直接编译运行。 宏定义针对一个项目,有两种说法:一个项目,由一
2021-10-14 11:56:09
583
原创 C++中类的相关知识点
目录总述类基础explicit与初始化列表隐式转换和explicit构造函数初始化列表总述类是一种自定义的数据类型。在设计一个类的时候要多角度考虑,这里列举几点:如何理顺在设计一个类的时候这个类里的数据存储布局,有哪些必要的成员变量和成员函数要定义和实现。站在使用者的角度考虑,需要给使用者提供哪些可以访问的接口,而哪些接口不对外开放,只供类内的其他成员函数使用。在设计一个父类供子类继承的时候,如何设计这个父类,抽象出公共特性。 类基础常规的书写规范是把类定义和类实现放在分开的
2021-10-10 23:44:21
372
原创 数据结构——队列
文章目录队列的定义及概述抽象数据类型队列的抽象类数组描述队列的定义及概述队列(queue)是一个先进先出(FIFO)的线性表,其插入和删除操作分别在表的两端进行,插入元素的那一端称为队尾(back或rear),删除元素的那一端称为队首(front)。还有一种队列是优先级队列,它的删除操作是按照元素的优先级顺序进行的。C++标准模板库STL的队列是一种用数组描述的队列数据结构,它是从STL的双端队列派生的。 抽象数据类型抽象数据类型 queue{ 实例 元素的有序表,一端称为队
2021-10-03 23:50:26
164
原创 C++基本语言《下》
C++基本语言结构、权限修饰符与类简介结构结构是一种自定义的数据类型。C++中的结构除了具备C中结构的所有功能外,还增加许多扩展功能,其中最突出的扩展功能之一就是C++的结构不仅仅有成员变量,还可以在其中定义成员函数。成员函数可以用“对象名.成员函数名(实参列表)”的格式来调用。 public 和 private 权限修饰符在结构和类中,有三个重要的权限修饰符,分别是public(公有)、private(私有)、protected(保护)。public:用这个修饰符修饰的成员(
2021-09-26 23:59:12
181
原创 C++基本语言《上》
文章目录C++基本语言语言特性:过程式、对象式程序设计面向过程式的程序设计基于对象的程序设计和面向对象的程序设计面向对象的程序设计的优点C++程序和项目文件构成编译型语言概念与可移植性问题命名空间简介与基本输入/输出精解命名空间简介基本输入/输出基本输出基本输入auto、头文件防卫、constexprauto关键字简介头文件防卫式声明constexpr 关键字范围for、new内存动态分配与nullptr范围for语句动态内存分配问题C++基本语言语言特性:过程式、对象式程序设计面向过程式的程序设计
2021-09-19 23:14:08
217
原创 数据结构—栈
数据结构—栈栈的定义栈是限定仅在表尾(栈顶)进行插入(也称入栈或压栈)和删除(也称出栈或弹栈)操作的线性表,是一个后进先出(last-in-first-out, LIFO)的数据结构,简称LIFO结构。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。 栈的抽象数据类型抽象数据类型 stack{ 实例 线性表:一断称为底,另一端称为顶 操作 empty():// 栈为空时返回true,否则返回false siz
2021-09-12 21:47:17
276
原创 数据结构之线性表—链表描述
@TOC线性表—链式描述在基于数组的描述中,元素的地址是由数学公式决定的,分布在一段连续的内存空间中。在链式描述中,线性表的元素在内存中的存储位置是随机的。每个元素都有一个明确的指针或链指向线性表的下一个元素的地址 。 单向链表设L = (e0e_0e0, e1e_1e1,…, en−1e_n-_1en−1) 是一个线性表,在这个线性表中,每个元素都在一个单独的节点中描述,每一个节点都有一个链域,它的值是线性表的下一个元素的地址。所以,元素eie_iei的节点链接着元素ei+
2021-09-05 21:52:10
509
原创 数据结构之线性表—数组描述
TOC定义线性表(linear list):零个或多个数据元素的有限序列。线性表也称有序表(ordered list),它的每一个实例都是元素的一个有序集合。每一个实例的形式为(e0e_0e0, e1e_1e1, …, en−1e_n-_1en−1),其中n是有穷自然数,是线性表的长度或大小,eie_iei是线性表的元素,i是元素eie_iei的索引。元素本身的结构与线性表的结构无关,在较复杂的线性表中,一个数据元素可以由若干个数据项组成。当n = 0时,线性表称为空表;当n >
2021-08-29 23:38:09
1014
原创 HDU-1789题解
目录题目链接题目大意解题思路代码心得体会题目链接Problem - 1789 (hdu.edu.cn) 题目大意一共t组测试数据,对于每组测试数据,第一行给出n门作业的ddl,第二行给出对应功作业若在限制时间内未完成需要扣除的分数,题目假定一天只能完成一门作业,问怎样安排作业的完成顺序,可以使得扣除的分数最小。 解题思路首先对分数从大到小排序,若分数相同,则ddl小的排在前面。对于一门功作业,我们自然是希望越晚完成越好(能拖则拖),所以我们只需对排位序的n门作业,从第一门
2021-08-22 23:34:06
860
原创 数据结构第一章:绪论(下)
目录声明递归线性递归(linear recursion)定义数组求和(线性递归版)减而治之(decrease-and-conquer)递归分析递归跟踪(recursion trace)递推方程(recurrence equation)例子多递归基数组倒置(递归版)快速幂递归消除尾递归及其消除数组倒置(迭代版)二分递归分而治之(Divide-and-conquer)数组求和(二分递归版)效率声明本文内容来源于学堂在线邓俊辉老师的数据结构课程以及邓俊辉老师编写的《数据结构(C++语言版)》,本文为学习内容记
2021-08-15 13:11:08
175
原创 数据结构、算法与应用(C++语言描述) 练习题(1-18)
在程序1-7的交换函数中,形参x、y实际上是传值参数,在运行时,交换函数执行前,把实参的值复制给形参,当函数运行结束时,形参类型的析构函数负责释放形式参数,而形参的值不会复制到对应的实参中,故程序1-7的交换函数不能将形参x和y所对应的实参的值交换。 若要使实参的值能够得到交换,将传值参数修改为引用参数即可void swap(int &x, int &y)。template<typename T>int count(T a[], int n, const T&..
2021-08-07 18:53:36
746
原创 数据结构第一章:绪论(上)
第一章:绪论声明本文内容来源于学堂在线邓俊辉老师的数据结构课程以及邓俊辉老师编写的《数据结构(C++语言版)》,本文为学习内容记录。目录第一章:绪论声明计算机与计算算法定义算法实例冒泡排序算法要素:有穷性渐进复杂度时间复杂度大O记号复杂度分析复杂度分析的主要方法级数的分类和求和封底估算(Back-Of-The-Envelope Calculation)计算机与计算计算(信息处理):借助某种工具,遵照一定的规则,以明确而机械的形式进行。计算机 = 计算模型 = 信息处理工具 算法定
2021-08-01 02:02:04
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人