当前位置: 首页 > news >正文

9、断点调试

文章目录

  • 9、断点调试
    • 9.1 为什么需要Debug
    • 9.2 Debug的步骤
      • 1 添加断点
      • 2 启动调试
      • 3 单步调试工具介绍
    • 9.3 多种Debug情况介绍
      • 1 行断点
      • 2 方法断点
      • 3 字段断点
      • 4 条件断点
      • 5 异常断点
      • 6 线程断点
      • 7 强制结束
    • 9.4 自定义调试数据视图
    • 9.5 常见问题


【尚硅谷】idea实战教程-讲师:宋红康

生活是属于每个人自己的感受,不属于任何别人的看法

9、断点调试

9.1 为什么需要Debug

编好的程序在执行过程中如果出现错误,该如何查找或定位错误呢?

简单的代码直接就可以看出来,但如果代码比较复杂,就需要借助程序调试来查找错误了。

在运行编写好的程序时,可能出现的集中情况:
情况1:没有任何bug,程序执行正确。

===============如果出现如下三种情况,都有必要使用debug===============
情况2:运行后,出现了错误或异常信息,但是通过日志文件或控制台,显示了异常信息的位置。
情况3:运行后,得到了结果,但是结果不是预先设计的。
情况4:运行后,得到了结果,结果大多数情况是我们想要的,但是多次运行,会出现不是预先设计的结果在其中。
比如:多线程情况下,处理线程安全问题。

9.2 Debug的步骤

Debug(调试)程序步骤如下 :
1 、 添加断点
2 、 启动调试
3 、 单步执行
4 、 观察变量和执行流程,找到并解决问题。

1 添加断点

在源代码文件中,在想要设置断点的代码行的前面的标记行处,单击鼠标左键就可以设置断点,在相同位置再次单击即可取消断点 。
在这里插入图片描述

2 启动调试

IDEA提供多种方式来启动程序(Launch)的调试,分别是通过菜单(Run 一 > Debug)、图标 " 绿色臭虫" 等等
在这里插入图片描述

3 单步调试工具介绍

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述:显示执行点(ALT + F10):点击查看断点位置
在这里插入图片描述:步过(F8):进入下一步,如果当前行断点是调用一个方法,则不进入当前方法体内
在这里插入图片描述:步入(F7):进入下一步,如果当前行断点是调用一个自定义方法,则进入该方法体内
在这里插入图片描述:强制步入(ALT + SHIFT + F7):进入下一步,如果当前行断点是调用一个核心类库方法 ,则进入该方法体内
在这里插入图片描述:步出(Shift + F8):跳出当前方法体
在这里插入图片描述:Run to Cursor(Alt + F9):直接跳到光标处继续调试
在这里插入图片描述:恢复程序(F9):恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上
在这里插入图片描述:停止(Ctrl + F2):结束调试
在这里插入图片描述:查看断点(Ctrl + Shift + F8):看所有断点
在这里插入图片描述:静音断点:使得当前代码后面所有的断点失效,一下执行到底。

9.3 多种Debug情况介绍

1 行断点

断点打在代码所在行上,执行到此行时,会停下来。

public class Dubug01 {public static void main(String[] args) {//1int m = 10;int n = 20;System.out.println("m = " + m + ",n = " + n);swap(m, n);System.out.println("m = " + m + ",n = " + n);//2int[] arr = new int[]{1, 2, 3, 4, 5};System.out.println(arr);//地址值char[] arr1 = new char[]{'a', 'b', 'c'};System.out.println(arr1); //abc}public static void swap(int m, int n) {int temp = m;m = n;n = temp;}
}

2 方法断点

断点设置在方法的签名上,默认当进入时,断点可以被唤醒。

也可以设置在方法退出时 , 断点也被唤醒。

在这里插入图片描述

在这里插入图片描述

在多态的场景下,在父类或接囗的方法上打断点,会自动调入到子类或实现类的方法。

public class Debug02 {public static void main(String[] args) {//1 在子类方法上加断点,调用后子类方法会停止Son son = new Son();son.test();//2 类的多态性,在父类方法加断点,调用子类方法仍然停止Father father = new Son();father.test();//3 接口的多态性,在接口方法上加断点,调用实现类方法仍然停止ConsumerImpl consumer = new ConsumerImpl();consumer.accept("hello");//4 对源码中加入的方法断点,调用API仍然适用HashMap<String, Integer> map = new HashMap<>();map.put("Tom", 12);map.put("Jerry", 11);map.put("Tony", 20);}
}class Father {public void test() {System.out.println("Father : test1");System.out.println("Father : test2");}
}class Son extends Father {@Overridepublic void test() {System.out.println("Son : test1");System.out.println("Son : test2");}
}interface Consumer {void accept(String str);
}class ConsumerImpl implements Consumer {@Overridepublic void accept(String str) {System.out.println("ConsumerImpl:" + str);}
}

3 字段断点

在类的属性声明上打断点,默认对属性的修改操作进行监控
在这里插入图片描述
默认情况下,在修改的时候,就会起作用。
在这里插入图片描述

public class Debug03 {public static void main(String[] args) {Person person = new Person(3);System.out.println(person);}
}class Person {private int id = 1;private String name;private int age;{id = 2;}public Person() {}public Person(int id) {this.id = id;}public Person(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}

4 条件断点

在代码行上加断点,右键设置条件断点的条件,当代码满足arr[i] % 3 ==0的条件下,执行断点。
在这里插入图片描述

public class Debug04 {public static void main(String[] args) {int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};for (int i = 0; i < arr.length; i++) {int target = arr[i];System.out.println(target);}}
}

5 异常断点

对异常进行跟踪,如果程序出现指定异常 , 程序就会执行断点 , 自动停住 。

点击 查看断点
在这里插入图片描述
点击 + 添加 Java异常断点
在这里插入图片描述
添加 算数异常
在这里插入图片描述
在这里插入图片描述
debug调试程序
在这里插入图片描述
程序停留在算数异常处
在这里插入图片描述

public class Debug05 {public static void main(String[] args) {int m = 10;int n = 0;//算数异常int result = m / n;System.out.println(result);Person person = new Person(1001);// 空指针异常System.out.println(person.getName().toUpperCase());}
}

6 线程断点

加行断点,右键设置线程,添加条件,线程与名字相同,就调试
在这里插入图片描述

public class Debug06 {public static void main(String[] args) {test("Thread1");test("Thread2");}public static void test(String threadName) {new Thread(() -> {for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + ":" + i);}},threadName).start();}
}

7 强制结束

右键–强制结束:不执行后面代码
在这里插入图片描述
在这里插入图片描述

public class Debug07 {public static void main(String[] args) {System.out.println("获取请求的数据");System.out.println("调用写入数据库的方法");insert();System.out.println("程序结束");}private static void insert() {System.out.println("进入insert()方法");System.out.println("获取数据库链接");System.out.println("将数据写入数据表中");System.out.println("写出操作完成");System.out.println("断开链接");}
}

9.4 自定义调试数据视图

在空白处右键点击
在这里插入图片描述
在这里插入图片描述
查看集合中的元素,null元素也显示
在这里插入图片描述
在这里插入图片描述

9.5 常见问题

问题:使用 步入 时,会出现无法进入源码的情况,只能点击 强制进入才可以 。 如何解决 ?
方案 1:使用 强制进入 即可
方案 2:点击 - > BuiId ,Execution,DepIoyment -> Debugger -> Stepping
把 Do not step into the classess 中的 java.*、javax.* 取消勾选即可 。

在这里插入图片描述

关于在哪里加断点:

在可能发生错误的代码前面加断点,如果不会判断,就在程序执行的起点加断点。

相关文章:

RabbitMQ在Java中的完美实现:从入门到精通

哈喽,大家好,我是木头左!一、RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等…...

软件设计原则—接口隔离原则

B类需要方法1好处是b类继承A类后就有了方法1的功能,问题是B类被迫有了它不使用的方法2 这个其实是根据方法的职责细分接口,只需要依赖其中一个接口就可以了客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。 下面看一个例子来理解接口隔…...

d3d12龙书阅读----绘制几何体(上) 课后习题

d3d12龙书阅读----绘制几何体(上) 课后习题 练习1 完成相应的顶点结构体的输入-布局对象typedef struct D3D12_INPUT_ELEMENT_DESC{一个特定字符串将顶点结构体数组里面的顶点映射到顶点着色器的输入签名LPCSTR SemanticName;语义索引 如果语义名相同的话 使用索引进行区分UI…...

rthread学习记录汇总-不断更新

1、rthread 同Linux类似,包含了所有主流的芯片、cpu架构,可从官方获取最新的rt-thread源码后进行裁剪2、可从rthread官网下载env工具,env工具可用来对rtthread源码生成mdk/iar工程 命令式scons --target=mdk5 scons --targe=iar scons自带的编译固件功能,命令为scnons,…...

算术天才⑨与等差数列

法一:仍然是乱搞 法二:看这篇题解 等差数列的差一定是公差的倍数,这个好像对于等差数列挺常用的,我记得哪一道数论也有这个方法...

连接池设计与实现一——以Golang Http1.1为例

0. 前言 连接池是一个非常重要的开发思想,如http client会构建连接池复用底层TCP连接,使用database/sql的使用也会有连接池的配置。那么代码底层是如何实现连接池的呢?这篇文档将以Golang语言为基础,分析http1.1连接池底层实现 ★ 注意:我们仅仅关注连接池设计思想、以及关…...

9、断点调试

文章目录9、断点调试9.1 为什么需要Debug9.2 Debug的步骤1 添加断点2 启动调试3 单步调试工具介绍9.3 多种Debug情况介绍1 行断点2 方法断点3 字段断点4 条件断点5 异常断点6 线程断点7 强制结束9.4 自定义调试数据视图9.5 常见问题【尚硅谷】idea实战教程-讲师&#xff1a;宋红…...

yolo结构介绍

更新中 yolo结构: 这个是针对最早的v5版本1.0进行讲解,现在2022最新版本是V6.2。有一些细节的差别比如Backbone部分Focus倍替换成6*6的Conv,bottleneckCSP替换为C3,Neck部分SPP被替换成SPPF等 Release v1.0 ultralytics/yolov5 (github.com) # parameters nc: 80 # n…...

大数据技术架构(组件)7——Hive:Filter PushDown Cases And Outer Join Behavior

1.2、Filter PushDown Cases And Outer Join Behavior前提:关闭优化器set hive.auto.convertjoinfalse; set hive.cbo.enablefalse;Inner Join:1、Join On中的谓词: 左表下推、右表下推2、Where谓词:左表下推、右表下推-- 第一种情况: join on 谓词 selectt1.user_id,t2.user_i…...

【MySQL】第十二部分 子查询

【MySQL】第十二部分 子查询 文章目录【MySQL】第十二部分 子查询12. 子查询12.1 单行子查询12.2 多行子查询12.3 非相关子查询和相关子查询12.4 EXISTS 与 NOT EXISTS关键字总结12. 子查询 子查询 说白了就是嵌套查询,在一个查询语句中嵌套另外一个查询语句进行内部查询. 子…...

Day08 C++STL入门基础知识五——vector容器(下) 插入删除-数据存取-交换容器-预留空间【全面深度剖析+例题代码展示】

More haste, less speed. 欲速则不达 文章目录1. 承接上文2. 插入操作2.1 函数原型(总括)2.2 尾插尾删2.2.1 操作2.2.2 代码展示2.2.3 测试结果2.3 迭代器插入2.3.1 操作2.3.2 代码展示2.3.3 测试结果2.4 think小思考2.4.1 小疑问2.4.2 思路2.4.3 代码展示2.4.4 测试结果3. 删除…...

打工人必知必会(二)——劳动合同解除

目录 1、劳动合同的解除种类 2、协商解除劳动合同 3、用人单位解除劳动合同 1&#xff09;过错性解除劳动合同 2&#xff09;非过错性解除劳动合同 4、经济性裁员解除劳动合同 5、违法解除劳动合同 6、 劳动者解除劳动合同 提前30日以书面形式通知用人单位 员工即时解…...

量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

文章目录1.多因子模型概述2.因子挖掘3.多因子策略4.多因子策略构建基于多因子的策略通用流程Fama-French三因子因子效果测算方法因子测算结论&量化策略构建东西有点多&#xff0c;拆开成多个文章&#xff0c;边写边整合~&#xff0c;应该会分成2部分&#xff1a; 第1部分—…...

(Java高级教程)第四章必备前端基础知识-第三节1:JavaScript简介和基础语法

文章目录一&#xff1a;JavaScript简介&#xff08;1&#xff09;JavaScript概述&#xff08;2&#xff09;JavaScript特点&#xff08;3&#xff09;JavaScript运行过程&#xff08;4&#xff09;JavaScript组成&#xff08;5&#xff09;JavaScript的引入方式和基本使用&…...

好的质量+数量 = 健康的创作者生态

缘起 CSDN 每天都有近万名创作者发表各种内容&#xff0c; 其中博客就有一万篇左右。 这个数量是非常可喜的&#xff0c;这也是 CSDN 的产品、研发运营小伙伴、和各位博主持续工作的结果。 衡量一个 IT 内容平台&#xff0c;除了数量之外&#xff0c;还有另外一些因素&#xf…...

利用Golang可选参数实现可选模式

本文讨论Golang函数可选参数及函数类型&#xff0c;以及如何利用可选函数类型实现可选模式。同时通过构造函数作为示例&#xff0c;实现强大带可选参数的构造函数&#xff0c;让代码更直观、灵活、支持扩展。 从需求开始 可选参数给函数传递额外参数扩展或修改其行为&#xf…...

【Git】Git 的基本使用

Git的简介 Git是一个版本管理控制系统(缩写VCS)&#xff0c;是一个工具&#xff0c;github或者gitee是git命令行工具的网站化。它可以在任何时间点&#xff0c;将文档的状态作为更新记录保存起来&#xff0c;也可以在任何时间点&#xff0c;将更新记录恢复回来。 git的诞生历…...

MyBatis(一)MyBatis概述

一、什么是框架 ● 在文献中看到的framework被翻译为框架 ● java常用的框架&#xff1a; SSM三大框架&#xff1a;SpingSpringMVCMyBatisSpringBootSpringCloud● 框架其实就是对通用代码的封装&#xff0c;提前写好了一堆接口和类&#xff0c;我们可以在做项目的时候直接引…...

吴恩达机器学习笔记(三)逻辑回归

机器学习&#xff08;三&#xff09; 学习机器学习过程中的心得体会以及知识点的整理&#xff0c;方便我自己查找&#xff0c;也希望可以和大家一起交流。 —— 吴恩达机器学习第五章 —— 四、逻辑回归 线性回归局限性 线性回归对于分类问题的局限性&#xff1a;由于离群点…...

[python入门㉞] - python错误和异常处理

目录 ❤ 语法错误 ❤ 异常 ❤ 异常的分类 ❤ 错误异常处理 错误就是Python中的语法错误或者异常(解析错误)。 ❤ 语法错误 语法错误也叫做解析错误&#xff0c;是指python无法正确的识别代码的造成的。根本原因在于人的行为。 解决方法&#xff1a;按照正确的语法进…...

用1行Python代码识别增值税发票,YYDS

大家好&#xff0c;这里是程序员晚枫。 录入发票是一件繁琐的工作&#xff0c;如果可以自动识别并且录入系统&#xff0c;那可真是太好了。 今天我们就来学习一下&#xff0c;如何自动识别增值税发票并且录入系统~ 识别发票 识别发票的代码最简单&#xff0c;只需要1行代码…...

Sharding-JDBC(五)PageHelper分页报错 Can‘t find index: AggregationSelectItem

目录1.详细报错信息&#xff1a;2.问题原因&#xff1a;3.解决方法&#xff1a;3.1&#xff09;使用MyBatisPlus自带的分页功能3.2&#xff09;PageHelper ShardingJDBC53.3&#xff09;PageHelper ShardingJDBC41.详细报错信息&#xff1a; Caused by: org.apache.ibatis.e…...

十六进制转八进制+超大数据处理(蓝桥杯基础练习C/C++)

目录 1 题目要求 2 代码 2.1 以十进制为媒介&#xff08;不可行&#xff09; 2.2 以二进制为媒介 3 可能会遇到的难点 4 结论 5 延伸 5.1 超大数据阶乘 5.2 超大数据加法 5.3 以十进制为媒介的进制转换 1 题目要求 2 代码 2.1 以十进制为媒介&#xff…...

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题&#xff1a;门牌制作 用了一个时间复杂度是n的算法&#xff0c;反正是填空题也不会出现TLE的事&#xff0c;只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…...

kaggle竞赛 | 计算机视觉 | Doodle Recognition Challenge

目录赛题链接赛题背景数据集探索合并多个类别CSV数据集数据建模 (pytorch)赛题链接 https://www.kaggle.com/competitions/quickdraw-doodle-recognition/overview/evaluation 数据集从上述链接中找 赛题背景 Quick&#xff0c;Draw&#xff01;作为实验性游戏发布&#xff…...

如何设计一个70W在线人数的弹幕系统文章分析

原文地址&#xff1a; 如何设计一个70W在线人数的弹幕系统 1&#xff1a;http包头 一个http数据包请求由4个部分组成&#xff1a;请求行、请求头标、空行、请求数据。 请求行分为了三个部分。请求方法&#xff0c;请求url与http版本。请求头行&#xff0c;由关键字值对组成&…...

基于Android的动漫之家系统的设计与实现

目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 目前国家的动漫交流也正处在不断改革、创新的阶段&#xff0c;我国有关部门充分吸取国外优秀的动漫交流模式&#xff0c;…...

流批一体计算引擎-7-[Flink]的DataStream连接器

参考官方手册DataStream Connectors 1 DataStream连接器概述 一、预定义的Source和Sink 一些比较基本的Source和Sink已经内置在Flink里。 1、预定义data sources支持从文件、目录、socket&#xff0c;以及collections和iterators中读取数据。 2、预定义data sinks支持把数据写…...

测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

目录一、测试用例的万能公式二、对登录页面设计测试用例三、测试用例的设计方法3.1 基于需求的设计方法3.2 等价类3.3 边界值3.4 判定表3.5 正交排列3.6 场景设计法3.7 错误猜测法四、面试真题一、测试用例的万能公式 首先&#xff0c;为"水杯"设计一个测试用例&…...

【进击的算法】基础算法——怎么优雅地控制边界范围

学习范围 &#xff1a; ✔️数组 ✔️边界控制本文作者 &#xff1a; 蓝色学者i 边界控制的艺术前言一、为什么需要控制边界&#xff1f;二、怎么优雅地控制边界&#xff1f;三、令人抓狂的二分查找3.1 题目概述3.2解题思路3.3 解决方案方案一&#xff1a;边界都有效方案二&…...

linux基本功系列之-rpm命令实战

文章目录前言&#x1f680;&#x1f680;&#x1f680;一. rpm命令介绍1.1 RPM包介绍1.2 rpm包的优缺点1.3 rpm包获取方式二. 语法格式及常用选项2.1 RPM安装常用参数2.2 rpm格式介绍三. 应用案例3.1 从本地安装软件包3.2 查询lrzsz的包有没有安装3.3 查询命令是哪个包安装的3.…...

冯诺依曼体系结构及操作系统(OS)的简单认识

文章目录冯诺依曼体系结构操作系统&#xff08;Operator System&#xff09;冯诺依曼体系结构 冯诺依曼结构也称普林斯顿结构&#xff0c;是一种将程序指令存储器和数据存储器合并在一起的存储结构。数学家冯诺依曼提出了计算机制造的三个基本原则&#xff0c;即采用二进制逻辑…...

day4 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ●160 链表相交 ● 142.环形链表II

两两交换链表中的节点 链表的指针&#xff0c;要仔细画图&#xff0c;搞清楚cur和cur的next在哪里 这个题还是有点绕的&#xff0c;两两一组交换&#xff0c;还有奇偶数要考虑 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyhead new ListNo…...

【Linux】目录权限和默认权限

上期介绍了Linux的文件权限&#xff0c;这期我们仔细来说说Linux环境下目录权限和默认权限一、目录权限1.1 进入目录所需的权限我们在进入目录时需要什么样的权限呢&#xff1f;是r、w还是x呢&#xff1f;下面我们一起来验证一下&#xff1a;&#x1f4cb;如下我门拥有全部目录…...

kaggle竞赛 | 计算机视觉 | 数字图像基础操作

目录cv2基本操作图片哈希图像数据扩展无监督数据扩展方法监督式数据扩展方法cv2基本操作 import numpy as np import matplotlib.pyplot as plt import cv2img cv2.imread(cat.jpeg) plt.imshow(img)img cv2.imread(cat.jpeg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) pl…...

7. 好客租房-项目日常推进ing

7. 好客租房-项目日常推进ing 本章节不涉及大量内容,主要是为了推荐项目代码日常进度而设置, 包括添加mock接口, 添加更新房源接口, 为系统添加缓存. 7.1 为前端系统提供mock服务 往往在项目开发中, 为实现前后端并行开发&#xff0c;后端需要对前端所有的请求都都进行支持。…...

前同事居然因为 Pycharm 的这个功能,即使离职三年也依然经常被请去喝茶~

大家好&#xff0c;我是 哈士奇 &#xff0c;一位工作了十年的"技术混子"&#xff0c; 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 &#x1f4ac; 人生格言&#xff1a;优于别人,并不高贵,真正的高贵应该是优于过去的自己。&#x1f4ac; &#x1f4e…...

python使用类装饰器生成函数的使用日志

1 什么是类装饰器 在了解类装饰器之前&#xff0c;建议大家先了解装饰器的概念。 装饰器知识快速入门链接 类装饰器是 Python 中的一种特殊类型的装饰器&#xff0c;它是一个类而不是一个函数。与函数装饰器不同&#xff0c;类装饰器可以在运行时接收参数并返回一个可调用的对…...

有关Android的TextView组件的几个问题

文章目录小结问题及解决参考小结 TextView组件与EditText类似&#xff0c;但有一些不同&#xff0c;理论上TextView是只读的。尝试了让TextView组件可以弹出SetError的提示信息&#xff0c;只读&#xff0c;并不能弹出Android软键盘。 问题及解决 如果需要将TextView组件不能…...

Spring核心模块解析—BeanDifinition。

BeanDifinition前言什么是BeanDefinition&#xff1f;为什么要有BeanDefinition&#xff1f;BeanDifinition重点源码总结前言 Spring中的BeanDifinition在Bean的实例化流程中占有着非常重要的角色&#xff0c;如果你不了解BeanDifinition的话&#xff0c;面试或者学习Bean的生…...

【目标跟踪】------deepsort

目前主流的目标跟踪算法都是基于Tracking-by-Detecton策略,即基于目标检测的结果来进行目标跟踪。DeepSORT运用的就是这个策略,上面的视频是DeepSORT对人群进行跟踪的结果,每个bbox左上角的数字是用来标识某个人的唯一ID号。 Deepsort的前身是sort算法,sort算法的核心是卡尔…...

教你一键生成形如Springboot的高大上banner打印效果

背景 今天闲来无聊&#xff0c;想搞一个类似于Springboot项目启动时打印效果&#xff0c;如下图&#xff1a; 问题解决方案 那这个打印效果怎么实现的呢&#xff1f; 其实&#xff0c;对于这个中效果实现起来也是很简单的。毕竟依托于Springboot强大的框架&#xff0c;任何问…...

RESTful的意义及其使用规则

本文参考&#xff1a; https://javaguide.cn/system-design/basis/RESTfulAPI.html 何为 RESTful API&#xff1f; GET /classes&#xff1a;列出所有班级 POST /classes&#xff1a;新建一个班级RESTful API 可以让你看到 URLHttp Method 就知道这个 URL 是干什么的&…...

Linux产生死锁的必要条件和常见的锁种类

目录前言产生死锁的4个必要条件预防(解决)死锁Linux常见的锁互斥锁(普通锁)自旋锁互斥锁和自旋锁小结递归锁读写锁乐观锁与悲观锁乐观锁和悲观锁小结其他锁(了解)前言 之前面试的时候&#xff0c;有面试官问我产生死锁的(4个)必要条件&#xff0c;这个我之前有了解过&#xff…...

【HBase入门】8. HBase Java编程(2)——创建表、插入数据、删除数据

前言 本文是HBase Java编程&#xff08;2&#xff09;——创建表、插入数据、删除数据。 需求一&#xff1a;使用Java代码创建表 创建一个名为WATER_BILL的表&#xff0c;包含一个列蔟C1。 实现步骤&#xff1a; 1.判断表是否存在——存在&#xff0c;则退出 2.使用TableDe…...

【初识数据库】进入数据库的大门+数据库基本操作

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#x1f353;&#x1f353;&#x1f353;&#xff0c;这个专栏我将带领大家去探索数据库的汪洋大海&#xff0c;我主要使用的数据库软件是MySQL&#xff0c;数据库软件大同小异&#xff0c;嘿嘿嘿&#xff0c;废话不多说&#x…...

Python Flask 框架设置响应头,一篇文章学明白

flask 响应头设置&#x1f4d6; 导读&#x1f4d6; Python Flask 设置响应头&#x1f389; response.headers 属性&#x1f389; flask.abort() 函数返回特定状态码&#x1f4d6; Flask 中可设置的响应头参数&#x1f4d6; 其他关于响应头的配置&#x1f381; 使用中间件&#…...

阿里“云开发“小程序(uniCould)

博主ps&#xff1a; 网上资料少的可怜&#xff0c;哎&#xff0c;腾讯云涨价了&#xff0c;论服务器&#xff0c;我肯定选的阿里&#xff0c;再着你们对比下unicould的报价就知道了&#xff0c;如果有钱就另当别论了。 所以这片博文&#xff0c;博主试过之后&#xff0c;先抛出…...

Python装饰器使用方法详解

文章目录1 装饰器背景知识1.1 基本概念1.2 应用场景2 简单的装饰器代码3 使用装饰器记录函数执行次数4 带参数的装饰器5 装饰器处理有返回值的函数1 装饰器背景知识 1.1 基本概念 装饰器&#xff08;Decorator&#xff09;是 Python 中一种函数或类&#xff0c;用来修饰其他函…...

【Leetcode每日一题】69. x 的平方根/Sqrt(x)|二分查找---day3

博主简介&#xff1a;努力学习的预备程序媛一枚~博主主页&#xff1a; 是瑶瑶子啦所属专栏: LeetCode每日一题–进击大厂 目录题目描述题目分析&#xff1a;代码分析&#xff1a;题目描述 链接: 69. x 的平方根/Sqrt(x) 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术…...

2023.1完整版:适合的网盘,各大网盘对比测试,速度,安全性,可预计的未来

在网上看到过网盘对比&#xff0c;但发现还是不全&#xff0c;有时还是需要自行测试&#xff0c;所以这里我就给大家列出所有的网盘&#xff0c;也包括一些类似于网盘的平台&#xff1a; 注意&#xff1a;这里统计的平台都是至少要满足可以上传文件的网盘&#xff0c;并且包含个…...

【编程入门】开源记事本(安卓版)

背景 前面已输出多个系列&#xff1a; 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记&#xff0c;将更为简化&#xff0c;去掉了网络调用&#xff0…...

Python流程控制语句之循环语句

上一篇&#xff1a;Python流程控制语句之选择语句 文章目录前言一、while 循环二、for 循环1. 进行数值循环2. 遍历字符串三、循环嵌套总结前言 生活中很多问题都无法一次解决&#xff0c;就像谚语所说&#xff1a;罗马不是一天建成的。一些事物必须周而复始地运转才能保证其存…...

17种编程语言+10种排序算法

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort 覆盖语言&#xff1a;C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台&#xff1a;安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、前…...

【JavaSE专栏8】运算符、表达式和语句

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…...

【c语言进阶】常见的静态通讯录

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我…...

MMDetection内三个实用工具详解:日志分析、结果分析、混淆矩阵

实用工具目录 一、日志分析使用方法实际案例 二、结果分析pkl结果文件生成使用方法实际案例 三、混淆矩阵使用方法实际案例遇到的UserWarning解决方案 MMDetection官方除了训练和测试脚本&#xff0c;他们还在 mmdetection/tools/ 目录下提供了许多有用的工具。本帖先为大家重点…...

玩转网络调试利器:深入剖析ip命令的强大功能

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 玩转网络调试利器&#xff1a;深入剖析ip命令的强大功能 前言ip命令概述网络接口管理ip地址配置路由管理邻居关系查看 前言 在我们的日常网络使用中&#xff0c;我们经常需要管理和调试网络接口、路由…...

探索 Element:开源聊天平台的新趋势

探索 Element&#xff1a;开源聊天平台的新趋势 随着数字化时代的发展&#xff0c;人们对于隐私和数据安全的关注日益增加&#xff0c;对开源和去中心化平台的需求也在逐渐增加。在这个背景下&#xff0c;Element作为一种开源聊天平台&#xff0c;吸引了越来越多的关注和用户。…...

熟知Linux目录结构,配置网络(超级详细……)

一、目录结构 1.1目录的特点 Windows和Linux win&#xff1a;是一个多根系统 Linux&#xff1a;只有一个根是一个单根系统 1.2各个目录存储的内容 /root&#xff1a;Linux中管理员用户的家目录 /home&#xff1a;Linux中存储普通用户的家目录例&#xff1a;tom用户的家目录就…...

项目路由分模块A模块B模块C......模块N使用

路由分模块原因&#xff1a; vue框架中会有router文件&#xff0c;但是路由文件下只有一个路由文件&#xff0c;在实际项目开发中会有多人负责多模块的情况&#xff0c;若都在一个文件内编辑路由名称&#xff0c;就相当于是机房里的数据线&#xff0c;会很乱七八糟&#xff0c;…...

小果网页---套利系统添加了可以套利模块,提供数据api

最近在小果套利系统里面添加了一下可以套利模块&#xff0c;同时实现了盘中自动更新&#xff0c;30分钟更新一次。给大家提交交易参考&#xff0c;可以套利模块的选择 dfdf[df[申购状态] !暂停申购]dfdf[df[申购限额] !无限额]df[溢价率]df[溢价率].astype(float)df[成交量]df…...

【SVG 生成系列论文(五)】Diffvg 矢量图生成的开山之作 —— MIT 与 Adobe 合作论文

SVG 生成系列论文&#xff08;一&#xff09; 和 SVG 生成系列论文&#xff08;二&#xff09; 分别介绍了 StarVector 的大致背景和详细的模型细节。SVG 生成系列论文&#xff08;三&#xff09;和 SVG 生成系列论文&#xff08;四&#xff09;则分别介绍实验、数据集和数据增…...

了解RFID技术如何改善危化品仓储管理效率

随着科学的发展&#xff0c;我国化工行业也迎来飞速进步的黄金时期&#xff0c;而生产加工快速化的同时也导致一些危险化学品的使用量与存储量不断增加。由于危险化学品种类较多&#xff0c;使用和存储的方法都不一样&#xff0c;还具有易燃、易爆、腐蚀、毒害等特性&#xff0…...

盘点2024年自动猫砂盆品牌,哪个牌子自动猫砂盆比较好?

养猫之路漫漫&#xff0c;无论是新手还是老手&#xff0c;都需要细心照料猫咪的每一个需求。特别是在选择自动猫砂盆这个问题上&#xff0c;更是让人头疼不已。因为每只猫咪的喜好和习惯都不同&#xff0c;如果猫砂盆选得不对&#xff0c;猫咪可能会拒绝使用&#xff0c;导致家…...

mybaties查询!!!你就说灵不灵活吧

你就说灵不灵活吧 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.ruoyi.sys…...

位拆分与运算

描述 题目描述&#xff1a; 现在输入了一个压缩的16位数据&#xff0c;其实际上包含了四个数据[3:0][7:4][11:8][15:12], 现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号&#xff08;在不输出时候拉低&#xff09; 0: 不输出且只有此时的输入有…...

【SQL】SQL常见面试题总结(1)

目录 1、检索数据1.1、从 Customers 表中检索所有的 ID1.2、检索并列出已订购产品的清单1.2、检索所有列 2、排序检索数据2.1、检索顾客名称并且排序2.2、对顾客 ID 和日期排序2.3、按照数量和价格排序2.4、检查 SQL 语句 3、过滤数据3.1、返回固定价格的产品3.2、返回产品并且…...