自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python中的socket套接字基础 (客户端服务器信息交互)

Socket用于描述IP地址和端口,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。socket模块针对服务器端和客户端Socket进行像对文件一样的打开、读写和关闭等操作。服务器:1 创建socket套接字2 绑定地址和端口3 监听客户端socket请求4 等待客户端连接5 创建新套接字描述符,等待客户端发送请求客户端:1 创建套接字2 发送请求,连接服务器地址和端口3 连接成功后,发送/接收数据

2023-02-02 17:13:50 2979

原创 requests页面常用操作(post、put、get、head、patch、delete方法)

Requests 是一个 Python 的 HTTP 客户端库。  每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。可以通过requests模拟提交请求来操作web页面。

2023-01-16 15:53:36 6290 1

原创 selenium页面元素定位、操作

selenium定位基础。xpath格式,通过 XPATH,ID,NAME,TAG_NAME,CLASS_NAME定位元素,对元素进行click() 、send_value、get_attribute 等操作。

2023-01-16 13:44:13 3433

原创 python基础知识(详解原码补码)

python基础1 数据类型1.1 基本数据类型1.2 数据类型的转换2 运算符2.1 算术运算符2.2 关系运算符2.3 逻辑运算符2.4 位运算3 格式化输出4 进制转换1 数据类型1.1 基本数据类型  python不用单独定义数据类型,需要某个变量直接赋值就可以使用。赋值赋什么它就是什么类型,并且后赋值的会覆盖先赋值。a = 100print(a)print(type(a))a = 0.1print(a)print(type(a))a = 'hello'print(a)

2021-11-10 15:24:40 2078 1

原创 MySQL 表的增删改查 / 数据库约束

数据库:一类组织管理存储数据的软件存储在磁盘上mySQL是一个 C / S 结构的软件。关系型数据库,是以 数据表 的形式来进行组织数据的。1、针对数据库进行操作(1) 创建数据库 create database [数据库名];(2) 查看数据库 show databases;(3) 删除数据库 drop database [数据库名];a. MySQL 支持 bin logb. 备份,mysqldump 工具c. 基于磁盘文件进行还原,删除操作后,数据被标记为无效,如果用工具进行抢

2021-04-13 20:03:36 855 8

原创 (查找型数据结构) 二叉搜索树 / 哈希表

Set 和 Map  Set 和 Map 是一种专门用来进行搜索的容器或者说是数据结构,他们适合动态查找。我们一般把搜索的数据称为关键字 (Key),和关键字对应的称为值 (Value),将其称之为 Key-value 的键值对。1 Set只存储 keyTreeSet 和 HashSet 实现了 Set,他们俩用法相同,底层实现不同。  TreeSet 的底层是红黑树,插入/删除/查找时间复杂度为:O(log2N);需要 key 有序;是线程不安全的,他进行插入/删除/查找操作,是按照红黑树的特性

2021-03-30 20:07:42 405 14

原创 面试必考 ! ! ! 插入排序/选择排序/堆排序/快速排序...

插入排序思路:(1) 将数组划分为 “ 已排序区间 ” 和 “ 待排序区间 ”,用 bound 来标识这两个区间,bound 为待排序区间的第一个位置;(2) 将待排区间的第一个元素(即bound 标记位置的元素),与已排区间的元素进行比较。 选择排序(1) 将数组分为两个区间,待排区间和已排区间,但注意,这里与插入排序不同的是,插入排序 bound 可以是任意一个元素,而选择排序的 bound 必须从 0 开始。 因为选择排序在后续进行选择时,会选出最小值放到已排区间的最后,如果一

2021-03-26 23:52:19 1477 18

原创 堆 / 优先队列

三个“堆”:1、堆(Heap):一种特殊的数据结构,本质上是个二叉树2、Java中的堆:JVM 持有的内存中,其中的一个内存区域3、操作系统的堆:每个进程也持有一定的内存空间,这上面也有一个内存空间2 和 3 区别:百货商场的整栋楼相当于一个进程的内存空间,这栋楼有很多区域,百货商场相当于是Java这个进程,这个进程上的内存有很多,其中第三层是儿童服饰(就相当于 JVM 持有的所有内存),在这个区域里又能划分出一些区域,鞋店、服装店、帽子店等(相当于栈、堆、方法区等)...

2021-03-23 23:35:23 480 4

原创 二叉树的层序遍历 / 判断完全二叉树

完全二叉树概念:  完全二叉树是从满二叉树而来的,满二叉树即每一个节点都有两个子节点或者没有子节点。  完全二叉树是指若树的深度为 n,那么1 ~ (n-1) 层的节点都达到最大个数,即1 ~ (n-1) 层是满二叉树,n 层的节点全都连续排列在靠左边。代码思路:(分两个阶段来判定)第一阶段–>  每个节点都有两个子树,如果某个节点没有子树,那么进入第二阶段;如果某个节点只有右子树没有左子树,直接返回false;如果某个节点只有左子树没有右子树,也进入第二阶段。第二阶段–>  每个节点都必须没

2021-03-19 16:41:27 1059 2

原创 LeetCode刷题 #110 平衡二叉树 ( 递归 )

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树的每个节点的左右两个子树的高度差的绝对值不超过 1 。  从根节点开始遍历,确保每一个节点的左右子树高度差值的绝对值不超过 1 。  涉及两次递归,一次为判断是否平衡求出当前左右子树的高度,另一次是当前节点平衡,接着求子节点是否为平衡二叉树。

2021-03-17 10:53:02 170 2

原创 二叉树基础及其基本操作

二叉树1 树1.1 概念1.2 树的应用2 二叉树2.1 概念 / 特点2.2 两种特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储2.5 二叉树的基本操作2.5.1 二叉树的遍历1 树1.1 概念树是一种非线性结构。树上的任意节点,就只有一个父节点,可以有多个子节点。节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶子节点或终端节点:度为0的节点称为叶节点;双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;孩子节点或子

2021-03-14 18:45:55 486 6

原创 栈Stack 和 队列Queue 的实现 ( 用顺序表链表实现 )

栈:后进先出队列:先进先出1 栈的实现:核心操作是 入栈、出栈、取栈顶元素1.1 顺序表实现栈:  使用尾插操作表示 “入栈”,使用尾删操作表示 “出栈”,使用根据下标获取元素的操作表示 “取栈顶元素”(头插头删,需要搬运之后的元素,时间复杂度会变高,变复杂);1.2 链表实现栈:  使用头插操作表示 “入栈”,使用头删操作表示 “出栈”,直接取头节点,就是 “取栈顶元素”(尾插尾删可以做到高效的实现,但是得记录下最后一个甚至倒数第二个元素的信息,代码更复杂);

2021-03-10 11:00:08 496

原创 LeetCode刷题 #142 环形链表Ⅱ ( 返回链表开始入环的第一个节点)

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。  为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意 pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。

2021-03-07 16:46:46 225

原创 LeetCode刷题 #141 环形链表 ( 快慢指针判断链表中是否带环 )

给定一个链表判断链表中是否有带环。如果链表中存在环,则返回 true,否则返回 false。  题目中为了表示链表中的环,我们使用 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意 pos 并不作为参数进行传递,仅仅是来标示列表的情况。示例1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。

2021-03-07 12:05:21 128

原创 数据结构 单链表的回文结构

链表的回文结构,即 1 --> 2 --> 3 --> 2 --> 1 这样的形式,链表正着和反过来是一样的。1 时间复杂度 O(N) 思路:1、将原链表进行拷贝;2、对拷贝的链表进行逆置;3、然后比较逆置之后的链表和原链表是否相同。2 时间复杂度 O(1)思路:1、不用新创建链表,直接在原链表上进行操作;2、求得链表的长度,然后读取到一半的元素;3、对一半的元素进行逆置;4、然后将逆置后的半个链表与剩下的未逆置的一半链表进行比较。

2021-03-06 20:10:08 427 6

原创 顺序表 增删改查的基本操作 / 实现MyArrayList

顺序表  线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串等… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式的结构形式存储。顺序表和链表区别:顺序表:元素和元素之间,处在连续的内存空间上。

2021-03-05 21:43:22 245 4

原创 LeetCode刷题 #118 杨辉三角 Java

题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入:5输出:[ [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]]杨辉三角(也称帕斯卡三角),它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和。  它是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧

2021-02-14 19:01:02 266

原创 Java顺序表 实现扑克牌游戏简单 (梭哈 / 斗牛)

简单的扑克牌游戏 梭哈:  梭哈用的是扑克牌共52张牌,因为不容易出好牌,也有去掉 234567 的简易玩法,规则玩法花样很多。  在这里我们采用:52 张牌,3 个人,一人 5 张牌,按规则对牌面大小进行比较 ,这样的方式进行游戏。牌型比较:同花顺>四条>满堂红>同花>顺子>三条>二对>单对>散牌。数字比较:A>K>Q>J>10>9>8 >7>6>5>4>3>2花式比较:黑桃>红桃>草花>方块

2021-02-10 16:58:00 2491 10

原创 LeetCode刷题 #206 反转链表 Java

题目:反转一个单链表。示例:输入:1 ->2 ->3 ->4 ->5 -> NULL输出:5 ->4 ->3 ->2 ->1 -> NULL思路:  首先,还是要先考虑特殊情况,当链表为空时,即 head = null 时,就直接返回 null;  然后,另外一种较为特殊的情况就是,只有一个节点,就可以直接返回此节点;  对于普通链表节点,反转链表,就用修改引用,将引用的只想反转过来,将当前引用的 next 中存储的地址,改为前一

2021-02-07 00:07:10 121

原创 LeetCode刷题 #203 移除链表元素 Java

删除链表中等于给定值 val 的所有节点。  首先,要考虑到空链表情况。即 head = null ,这时如果对其进行解引用,就会抛出空指针异常,所以用一个 if 语句进行判定和处理。  然后,开始比较是否与所给 val 相等,如果相等就进行删除操作。核心操作就是将要删除的元素 toDelete 的下一个引用赋值给前一个引用,这里

2021-02-05 23:57:42 161

原创 链表 -- 单链表 的创建以及插入、删除的基本操作

链表1 分类1.1 单向链表 vs 双向链表1.2 带傀儡节点的 vs 不带傀儡节点的傀儡节点(dummy node):不实际存储数据。1.3 带环的 vs 不带环的所谓带环的就是例如这里的第五个节点,它的后继不是空而是第三个节点,next 引用存储的是第三个节点的地址。2 创建链表2.1 节点定义public class Node { public int val; public Node next = null; public Node(int val)

2021-02-05 14:15:42 3068

原创 时间复杂度 ( 递归实现阶乘、斐波那契数列第n个数) / 空间复杂度

时间复杂度是衡量程序运行的快慢,对于一个程序来说,运行速度的快慢,有很多干扰因素,不同的硬件条件都可能影响到速度的快慢。时间复杂度来衡量,不是精确的衡量,只是单纯从代码本身衡量程序运行的效率来看,用算法基本操作执行的次数来作为时间复杂度。  而在实际操作中我们也不是精确的计算出执行的次数而是大概执行的次数,用到 “ 大O渐进表示法 ”。大O符号(Big O notation):是用于描述函数渐进行为的数学符号。

2021-02-02 18:13:29 6315 3

原创 Java笔记(八) —— String类基本操作详解

String1 创建字符串2 比较字符串2.1 比较相同2.2 比较大小3 字符串常量池4 String 不可变5 String 和字符数组相互转换6 String 和字节数组相互转换7 字符串常用操作7.1 字符串查找7.2 字符串替换7.3 字符串拆分7.4 字符串截取7.5 去左右空白符7.6 变大小写8 StringBuffer / StringBuilder

2021-01-30 19:47:43 217 2

原创 Java面向对象-- “ 图书管理系统 ”

1 需求1、实现根据不同身份登陆;2、用户身份:管理员、普通用户;3、管理员实现功能:增加图书、删除图书、查看所有书籍的列表、查阅某个书籍的信息、退出程序;4、普通用户:借阅书籍、归还书籍、查阅某个书籍的信息、退出程序。2面向对象封装是面向对象的重要核心之一,设计这个 book 类的时候,book 类的属性,尽可能封装起来,用 private,使其他的程序媛能不用理解具体细节,降低使用成本。getter / setter 和封装是相悖的 ,封装并不是百分百藏起来,那样调用者不好用。

2021-01-28 19:51:58 2192 10

原创 Java笔记(十二)——泛型

1 泛型是什么让一个类 / 方法,能够支持多种不同类型的数据。这样就不用一遍又一遍的写,很简洁方便,一个代码可以使用多次。2 使用 Object使用 Object 来完成 “ 泛型 ”效果,是比较麻烦的。一方卖弄,需要写一些类型转换的代码;另一方面,类型转换的代码容易出错,缺少一些必要的类型检查。public class MyArray { private Object[] data = null; private int size = 0; private int capa

2021-01-25 23:40:18 199 7

原创 自定义异常:用户名、用户密码登陆

自定义异常,自己创建异常的类,通过 try catch 、throw 、throws 对异常进行处理。

2021-01-25 21:47:41 648

原创 Java笔记(十一)——异常 try catch / throw / throws

异常是运行过程 中出现的一种错误,异常是比较复杂的,被很多因素影响,相同的代码在不同的计算机上也可能会出现错误。try catch 捕获并进行处理异常异常其实是帮助性的,因为只有知道问题出在哪里才能有解决的办法,如果连问题出现在何处都不清楚,是很难改正的,异常就给了我们提示,明确告诉我们出现异常的原因。

2021-01-24 23:39:44 726

原创 Java笔记(十)——抽象类 / 接口

1、接口是抽象类更进一步的抽象,抽象类只是不能实例化,但其他各个方面和普通类一样,但接口不光不能实例化,同时也不具备普通类的各种特性。2、接口中不能放普通方法和普通属性,**只能放抽象方法**,但抽象方法不用写 abstract,而**属性只能是public static final 的属性**。3、接口不能继承自其他的类,但是可以继承自其他的接口;接口不能被类继承,而是被其他的类“ **实现** ” (implements)。

2021-01-24 19:34:00 215

原创 Java基础数组 简单冒泡排序

Java实现冒泡排序 数组 简单1、思路(1) 首先,确定从左到右是升序还是降序;(2) 比较相邻的两个元素,是否符合升序降序的要求,符合则接着比较后面相邻的元素,不符合则交换两个元素;(3) 对每一对元素重复上一项工作,直到排完。2、具体实施(结合代码)(1) 给定一个无序的数组;

2021-01-22 21:27:36 1008

原创 Java笔记(九)——继承 /访问控制public private /重写 /多态

继承:父类\子类 访问权限控制符 final组合多态 向上转型、动态绑定、重写

2021-01-21 23:08:43 504 2

原创 Java笔记(七)——类和对象(下) static关键字 /访问限制符 /内部类 /栈 堆

static 关键字访问限制符内部类栈堆

2021-01-19 15:17:35 295 1

原创 Java笔记(六)——类和对象(上) 类的定义 / 初始化 / toString

1 类和对象的初步认识. 2 类的定义和使用2.1类的定义、实例化3 类的成员3.1 成员变量/属性/字段3.2 方法4 对象的初始化4.1 默认值4.2 就地初始化4.3 代码块初始化4.4 构造方法初始化

2021-01-18 18:44:23 277

原创 Java笔记(四)——数组 数组传参 (冒泡排序/数组逆序/奇数放前偶数放后)

数组的定义、遍历数组、引用数组转字符串

2021-01-16 23:40:08 516

原创 Java 实现二分查找 (详细) / 二分查找与普通查找的效率

二分查找 二分查找循环比较次数 / 效率

2021-01-16 22:35:37 381 2

原创 Java笔记(二)运算符——逻辑与逻辑或 / 按位与按位或 等(&& || 和 & |)

赋值运算符、算数运算符、逻辑运算符、按位运算符、条件运算符、注释相关问题等等

2021-01-13 23:58:49 1033 2

原创 Java中int 和 String 之间的相互转换

int 与 String 之间的相互转换,short、long、double等其他类型与String的转换同理可得

2021-01-13 16:44:32 340

原创 Java笔记(一)——JDK JRE JVM / 数据类型 / 变量 /

1 Java语言1.1 三大平台1.2 JDK、JRE、JVM2 数据类型3 变量3.1 整型变量3.2 长整型变量1 Java语言1.1 三大平台   在Java的发展过程中,由于Java语言的应用越来越广,根据不同级别的应用开发区分了不同的应用版本:(1)JavaSE(Java Standard Edition 标准版):是各种应用平台的基础,编写桌面应用很方便;(2)JavaEE(Java Enterprise Edition 企业版):是在JavaSE的基础上增加了一系列的服务,适.

2021-01-12 22:38:35 503

原创 Java笔记(三) —— 方法调用/入栈 出栈 栈帧/重载问题

方法的调用过程,栈和栈帧,重载问题

2021-01-09 19:05:33 2128 1

原创 Java求水仙花数 (n位数可用) / 模拟3次密码输入

模拟输入密码,超过错误限制则强行退出。求水仙花数。

2021-01-08 22:39:59 1074

原创 Java实现猜数字游戏 简明 易懂 完整代码

生成随机数Random()用户输入Scanner()实现进入游戏的选择菜单

2021-01-06 16:14:05 45031 4

空空如也

空空如也

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

TA关注的人

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