自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows系统搭建Focalboard看板管理服务并实现团队远程协作

本篇文章将介绍如何在Windows系统本地快速部署Focalboard项目管理工具,并且结合cpolar内网穿透进行公网访问,远程团队协作,提高工作效率!Focalboard是一个开源项目管理工具,可以替代Asana、Trello和Notion等软件,帮助个人和团队规划每个项目并达到每个里程碑。由于Focalboard是开源项目,可以将其部署在自己的本地服务器上,数据内容掌握在自己手里,更加安全可靠。下面将介绍如何使用Docker部署Focalboard。

2024-07-01 20:42:18 442 14

原创 【软件测试】对于测试中各式的概念,你了解多少?

在学习后面的知识前,先来熟知一个概念什么是软件测试:软件测试就是验证软件产品特性是否满足用户的需求。

2024-06-28 17:52:55 610 2

原创 【软件测试】对于测试中的bug,我们真正了解了吗?

这里介绍的bug,不仅仅是写代码时产生的bug,更是测试阶段发现的。

2024-06-27 19:09:02 818

原创 https基础概念

首先,https不是http的复数形式。

2024-06-25 21:59:28 652 1

原创 http协议

前置知识1.什么是http协议?答:http协议是处于应用层的一个协议,用来约定数据在网络传输中的格式等2.使用场景?答:网页和服务器的交互、手机app和服务器的交互3.如何学习http协议格式?答:学习一个协议,就要认识它的报文结构;我们可以通过“抓包”工具,就可以捕获到http协议的请求报文和响应报文的内容4.一条http请求和响应是什么样的?

2024-06-21 18:02:08 624 1

原创 八股文之JVM

在判断谁是垃圾这一步,Java是采取很保守的做法,也就是可以保证只会释放后续不会再使用的对象,后续仍会使用到的对象,是不会进行回收的,所以才用的策略是:判断某个对象是否存在引用指向,如果没有引用指向,就可以判断为垃圾,反之不行。如果自己的代码中写的类的名字和标准库/扩展库冲突了,JVM会确保加载的类是标准库的类(不会加载自己写的类),如果标准库中的类无法加载,那么Java进行就没有办法正常工作了。而对于堆,保存的主要是对象,换句话说,也就是主要回收对象,那怎么回收对象呢?所以这就是引用计数最大的一个问题。

2024-06-17 16:51:57 1211 1

原创 网络编程入门之UDP编程

在前面,我已经介绍过一次方法了,现在又准备介绍一次,是为了水字数吗?那当然不是,前面两个类中的一些方法,只是为了让你认识到这些类,和实例化了对象后该怎么去做。接下来,我们再进一步结合代码来介绍方法,而且主要是和DatagramPacket有关的方法。(1)获取ip地址和端口号直接调用方法分别获得方法解释获取ip地址获取端口号在代码中的体现(2)求数据长度这里是什么意思呢?你一定看过这些代码这些求数据长度的有什么区别?该怎么使用?为什么要这样写?就是我们接下来要介绍的字符和字节的区别。

2024-05-08 21:11:10 1183 34

原创 三个关于文件操作的实例

内容是:通过文件操作,完成一些小的需求。用来查询某文件或者某个文件里面的关键字。

2024-05-05 22:32:39 696 7

原创 网络基础知识

(1)协议,其实就是一种约定,一种规则。通信双方,对于通信规则的约定,一定是通信双方都可以得到认可的。(2)例子A和B约定某一天网恋见面,因为没有真实见过面,所以他们就会事先约定好一种规则。比如A穿一条白色连衣裙,B穿着西装。两个人之间,也是可以称为一种协议的。(3)为什么通信需要协议一般通信都是指不同主机之间发生的,但是两个主机往往都不一样(设备、操作系统、硬件),所以需要约定协议。

2024-05-05 11:53:05 1010 2

原创 文件API及其操作

这里介绍两类文件操作、三个文件类。包括文件系统操作(File类)、文件内容操作(操作字节流、操作字符流)

2024-05-03 23:05:47 1202 3

原创 文件与IO基础常识知识

在这里,只介绍理论知识,不介绍代码。

2024-05-03 10:08:08 861 2

原创 JUC常见类

JUC是java.util.concurrent的简称,这个包里面存放的都是和多线程相关的类,在面试中非常的重要。

2024-05-02 21:28:00 727 1

原创 CAS原理及其API原子类

(1)问题来源CAS的核心操作是:比较相等,然后进行交换操作。也就是说,只要发现两个对象相等,就会进行交换操作。因此,就会存在一个问题:两个对象相等,但是不代表某个对象没有被修改过,CAS也无法发现问题。也就是其中一个对象的值从A被修改成B,最后又修改回A,然后进行比较操作,也是相等的。所以ABA问题也就是:CAS无法区分,当前的数据在比较相等前,是否被修改过。虽然ABA问题产生有危害的Bug几率很小,但是某些情况,就是严重问题。

2024-04-28 12:46:35 847 2

原创 多线程八股文之锁模式及优化策略

当尝试加锁的时候,锁被占用了,也就是发生锁冲突,这个时候,不会像自旋锁那样一种等待,而是被挂起(进入阻塞状态),此时该线程不会参与调度。一直到这个锁被释放,系统才会去唤醒该线程,重新进入竞争锁的队列中,但是已经不是一直在等待锁,所以拿到锁的速度会更慢,但是更加节省cpu。此时,自旋锁就会不停的循环等待锁的释放,在锁释放的第一时间,就可以拿到锁,拿到锁的效率更快了,但是会消耗很多cpu的资源。这是一个相对的锁策略,在加锁的时候,会预测当前这个锁的所冲突是大或者小,就会根据大或小决定锁的策略。

2024-04-28 12:43:09 639

原创 多线程代码案例之定时器

(1)“定时器”类似闹钟,在指定的时间会触发一定的操作(2)多线程中的定时器,是通过指定一个任务(Runnable),并且加上一个时间(例如:3000ms);这个任务不会立即被执行,而是会等待3000ms后才会开始执行(3)上面这种效果称为:延时执行/定时执行。

2024-04-22 22:45:55 845 3

原创 多线程代码案例之线程池

池,在计算机中很常见。(1)池举例像我们之前已经接触过的:常量池,现在准备学习的线程池等等。像:常量池、线程池、数据库连接池、进程池、内存池等等,它们之间用到的思想都是差不多的。(2)使用池的目的目的:提高效率(3)如何提高效率相比大家对“养鱼”这个词语都不陌生吧,它不是普通的养鱼,而“养鱼”的人就称为“海王”。而“养鱼”就需要一个池,暂且称它为鱼池。当一个海王不想要这条鱼时,就可以直接丢弃,并且可以直接从鱼池中再选取一条鱼。如果没有池,那么丢弃之后,就要花费各种时间和精力再去寻找下一条鱼。

2024-04-22 21:53:50 681

原创 多线程代码案例之阻塞队列

(1)阻塞队列1)当队列为空时,尝试出队列;此时,队列会阻塞等待,直到队列不为空才继续执行出队列操作。2)当队列为满时,尝试入队列;此时,队列就会阻塞等待,直到队列不为满为止才能继续执行入队操作。(2)消息队列并非遵循常规的先进先出,而是带有一个topic关键字。当出队时指定某个topic,就会先出topic下的元素(topic内部就遵循先进先出)

2024-04-14 15:49:54 1256 10

原创 接口的三个常见使用案例

下面的三个案例,都是需要实现接口,才能进行的操作。

2024-04-14 15:46:19 708

原创 Linux系统本地搭建DbGate数据库并结合内网穿透实现无公网IP远程连接

而将它结合内网穿透工具使用时,可以实现即使身在异地,依然可以随时随地在公网环境访问本地的数据库,让开发者可以更方便快捷的查询数据。,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是mydbgate,大家也可以自定义喜欢的名称。不过我们目前只能在本地连接刚刚使用docker部署的DbGate服务,如果身在异地,想要远程访问在本地部署的DbGate容器,但又没有公网ip怎么办呢?

2024-04-11 16:25:03 1897 43

原创 多线程代码设计模式之单例模式

(1)设计模式就是一种代码的套用模板。例如:一类题型的步骤分别有哪些,是可以直接套用的。(2)像棋谱,也是一种设计模式。根据棋谱去下棋,棋术自然不会很差。(3)官方定义就是说:设计模式就是一套经过反复使用、多人知晓、经过分类、代码设计经验的总结(4)使用代码设计模式可以提高代码的下限。更容易被人理解,使用等等本文我们主要介绍设计模式中的单例设计模式(1)在实际的业务中,有的类,只需要有一个对象就够了(2)比如,要写一个类,用来实现一些功能,可以加载上百G的数据。

2024-04-07 10:57:04 771 6

原创 线程安全问题与解决方法~

(1)在程序运行的结果中,只要结果有一点点和预期不一样,那就是该程序有bug,不算合格程序。(2)在多线程代码中产生的bug,我们就称为“线程安全问题”。(1)在这里,会介绍锁操作的两个方面----加锁和解锁(2)这里是利用锁的一个性质,当一个线程对一个箱子加锁之后,另一个线程再想对其加锁,就会产生阻塞,也就是排斥的效果。(3)例如:当t1线程对A加锁之后,t2线程再对A加锁,t2线程就会阻塞等待(也就不会干扰到t1线程执行指令);

2024-04-04 23:35:19 1380 1

原创 Object类与内部类

(1)Object类就是所有类的父类/超类,也称为祖先类。也就是说所有的类都会默认继承于Object类,即使你没有定义继承关系(2)Object类具有的方法1)在本文中,我们重点介绍三个方法:toString()、equal()、hashCode()2)因为Object类是所有类的父类,所以我们创造的任何类,都可以直接使用上面的方法,也可以重写上述的方法(当然,构造方法除外)下面介绍三个常用的重写方法。

2024-04-04 16:31:57 833 2

原创 抽象类和接口的简单认识

下面这是一个子类继承父类,并且重写父类中的eat方法。System.out.println("正在吃……");@OverrideSystem.out.println(this.name+"正在吃奥里给!");Animal animal = new dog("旺财");运行结果:我们可以发现,父类的eat方法似乎没有什么作用,也不能具体表现某一个具体动物。那我们可不可以不实现父类的eat方法呢?答案当然是可以的。(1)接口定义的时候要使用 interface 关键字来定义。

2024-03-31 15:29:09 871 7

原创 Thread常用的方法及线程状态原因解析

(1)这是一个线程类,用来实例化线程对象(2)该类中,有很多方法。普通成员方法,可以使用对象的引用进行调用,像statr()方法等等;而静态方法,则需要通过类名去调用,如:Thread.sleep()等等。(3)我们通过Thread来实例化对象,产生的对象,我们默认称为“线程对象”,start()之后,线程才产生。因此,类中拥有的各种属性方法,我们后面就默认称为该线程的属性和方法。(4)线程,有哪些状态、属性,方法,本质上都是Thread中的;因此我们实例化出的线程,也就具有了。后续所说的线程。

2024-03-30 22:40:27 1237 4

原创 线程创建方式、构造方法和线程属性

而线程的状态、是否被中断,在接下来的文章中重点介绍。因为上面的情况,Thread对象和线程的生命周期不完全一样,所以不容易直接判断,就需要借助一些方法来获取当前线程的属性-是否存活。结论:说明他们之间没有什么关系,无法真正的判断线程是否结束了,所以可以通过isAlive()方法判断当前的线程是否还存货。创造线程的基本两步:(1)使用run方法记录线程要做的任务(2)使用线程的引用 调用start开启线程。这里只简单的查看一个线程是否被中断,至于如何中断一个线程,在后面介绍线程的核心操作部分介绍。

2024-03-28 22:54:51 798 1

原创 一文即可帮助你认识进程和线程~

(1)一个程序,允许起来,在操作系统中就会出现一个进程;可以理解成进程就是一个跑起来的程序。(2)进程是程序的一次执行,是一组指令的集合。(3)进程可以视为是 操作系统进行资源分配的基本单位。(1)线程其实是进程的一部分(2)一个进程,最少有一个线程,也可以包含多个线程。

2024-03-28 12:37:41 1087 7

原创 理解CPU与执行指令原理

(1)指令,可以粗略的认为是CPU在被设计的时候,给程序员提供的一些“编程接口”。所以指令≈API(2)不同的CPU,所提供的指令不一样,但大体相同。(3)CPU有多种架构,不同架构的CPU,支持的指令也就不一样(4)指令=操作码+操作数(内存地址或者寄存器编号)

2024-03-27 17:51:49 978 4

原创 多态的左膀右臂,向上转型与重写

概念:父类引用 引用 子类对象父类类型 引用名 = new 子类类型();例如:Parent是父类类型,Son是子类类型,此时就发生了向上转型下面这种实现的方向,才是以后多态实现的常用手段。一般是通过返回值实现多态System.out.println(name+"正在吃……");@OverrideSystem.out.println(name+"正在吃狗粮……");@OverrideSystem.out.println(name+"正在吃鱼翅……");

2024-03-24 17:00:51 1258 4

原创 索引和事务究竟是何方神圣?那可是面试中的常客!

(1)索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现(2)索引就是一种类似于目录的东西。表相当于一本图,而索引就相当于书的目录,表中的内容就相当于书中的内容(1)是一棵N叉搜索树,每个结点可以有多个值(2)非叶子结点的值最终都会出现在其叶子结点上(3)最终的叶子结点(最底层)就是数据的全集(4)B+树的大致样子:(5)特点每个结点中的值都会在下一层中出现,最终就会形成最后一层叶子结点就是数据的全集。

2024-03-22 16:26:48 756 5

原创 关于继承是怎么样的?那当然是很好理解之

这是一个关键字,一般是用于修饰成员变量和成员方法根据上表可知,只要在同一个包中,不同类之间是可以互相使用的;它还多了一条性质,就是只要是父子类关系,在不同的类中也可以互相调用。下面是不同包中的两个类(1)不能访问的状态1)public修饰2)被protected修饰后意思就是:在不同包中,不能直接访问被protected修饰的成员变量(2)允许访问状态想要访问被protected修饰的成员变量,就要按照下面的步骤来进行1)使用继承关系2)使用super关键字访问父类。

2024-03-20 18:43:37 1154 9

原创 看似封装,其实不止于封装?

(1)成员变量分为:静态成员变量和非静态成员变量/普通成员变量;同样,成员方法分为:静态成员方法和非静态成员方法。(2)静态成员变量:属于类的,只有一份;类名+点号来访问静态成员变量(3)非静态成员变量/普通成员变量:属于对象的,每实例化一个对象,都会存在一份;通过对象的引用+点号来访问(4)静态的成员变量 随着类被加载而创建。类被销毁而销毁(1)代码块一共有这四种:普通代码块、构造代码块、静态代码块和同步代码块,但是同步代码块在目前阶段是不会接触到的,所以这里不做讲解。(2)什么是代码块。

2024-03-20 18:43:11 940

原创 如何在Linux CentOS部署宝塔面板并实现固定公网地址访问内网宝塔

要注意的是,以上步骤使用的是随机临时端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的端口地址,该地址不会变化,设置后将无需每天重复修改地址。当我们在家里/公司搭建了宝塔,没有公网IP,但是想要在外也可以访问内网的宝塔面板应该如何实现呢?本文演示在Centos7系统搭建宝塔最新版本8.0.3,并使用Cpolar内网穿透工具将本地宝塔地址映射为公网地址实现公网远程访问。这个路径就是安装后输出的ip后的路径,这个每人不同,需要您自行修改。

2024-03-18 20:57:11 2641 51

原创 关于类和对象超级初级小白知识

(1)类是什么?1.类是用来对一个实体(对象)来进行描述的。比如这个实体(对象)的大小、长度和质量等等。2.类是Java语言中一种结构3.类的一般组成:成员变量、成员方法和构造方法(2)对象是什么?1.对象是一个实体。如果说类是一个形容词,那么对象就是被形容词修饰的名称。2.类是用来描述对象的。在Java语言中,对象是由类创造出来的。3.类相当于是一个类型,通过类型来创建变量(3)类、对象分别长什么样?上面就是类和对象大概长什么样,接下来一起更加深入的去了解如何定义类跟对象吧。

2024-03-12 20:43:41 899 6

原创 MySQL中常用的操作语句已汇总

他们的列名相同,按理来说student的classId必须遵循class表中的classId,也就是如果class表中没有的id,student中是不能有的。外连接:只能使用join on 的方式写,可以在join前头加上left/right的关键字,称为左连接/右连接。(2)offset:偏移量。对指定列进行分组操作:指定某个列,针对这个类,把值相同的行,分到一组中,可以针对每个组,分别进行聚合查询。查询每个岗位的平均工资,但是刨除平均工资超过2w的数据(条件是在聚合之后执行的,只能用having)

2024-03-10 15:24:07 1441 10

原创 简单的排序算法

排序方法最好时间最坏时间空间稳定性插入排序O(n)O(n^2)O(1)稳定希尔排序O(n)O(n^2)O(1)不稳定选择排序O(n^2)O(n^2)O(1)不稳定堆排序O(n*logn)O(nlogn)O(1)不稳定冒泡排序O(n)O(n^2)O(1)稳定快速排序O(n*logn)O(n*logn)不稳定归并排序O(n*logn)O(n*logn)O(n)稳定。

2024-03-05 21:36:31 1114 4

原创 堆排序、快速排序和归并排序

快排的思想、Hoare版分割法、挖坑法分割法、如何优化快速排序。

2024-02-25 16:24:46 1937 38

原创 PHPStudy快速搭建网站并结合内网穿透远程访问本地站点

PS:需要注意的是,由于这次使用的是免费的cpolar,所生成的公网地址为随机临时地址,每隔24小时就会发生变化,并且带宽较小,比较适用于开发测试。要将在本地搭建的网站发布到公网可访问,可以做内网穿透来实现,我这里选择用cpolar内网穿透,支持http/https/tcp协议,不限制流量,可以免费使用,不用公网IP,也不用设置路由器,使用比较简单。按钮,会默认启动nginx,MYSQL 5.7,在启动过程中,如有提示防火墙提示,允许即可。下载后,解压缩,复制目录下的所有文件,如下图。

2024-01-05 16:00:15 2346 33

原创 开源持续测试平台Linux MeterSphere本地部署与远程访问

MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付,推动中国测试行业整体效率的提升。下面介绍在Linux 中部署MeterSphere 并且结合cpolar 内网穿透实现远程也可以访问MeterSphere 界面!

2023-12-25 15:53:03 4203 39

原创 实现单链表的基本操作(力扣、牛客刷题的基础&笔试题常客)

(1)什么是链表链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。例如下面的这种数据结构,由一个个的结点组成。每个结点中存储着数据,又存储着其他结点的地址。(2)什么是单链表链表有三个特点:单向和双向、带头和不带头、循环和不循环;三三组合起来,一共8种情况(比如单向不带头不循环链表,就是本节的单向链表)。单向和双向:单向表示每个结点只存后一个结点的地址;双向表示每个结点存放前后结点的地址。

2023-12-21 21:47:55 1479 14

原创 Windows本地搭建开源企业管理套件Odoo并实现公网访问

Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。开源性质:Odoo是一个开源的ERP软件,这意味着企业可以自由选择部署方式(如云端或本地服务器),并根据自身需求进行定制开发。这为企业提供了更大的灵活性和控制权。

2023-12-18 17:02:28 6192 42

空空如也

空空如也

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

TA关注的人

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