自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

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

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

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

2024-04-22 21:53:50 663

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

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

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

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

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

2024-04-14 15:46:19 667

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

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

2024-04-11 16:25:03 1531 42

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

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

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

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

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

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

原创 Object类与内部类

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2024-03-20 18:43:11 928

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

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

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

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

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

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

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

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

2024-03-10 15:24:07 1270 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 1096 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原创 ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

(1)使用类和对象的知识定义一个牌对象(2)创造出一副排序好的牌,存储在ArrayList中(有牌)(3)然后将这些牌的顺序打乱(洗牌)(4)将洗乱的牌随机分发给三个人(发牌)下面开始讲解洗牌算法。

2023-12-14 20:50:45 1300 18

原创 快慢指针该如何操作?本文带你认识快慢指针常见的三种用法及在链表中的实战

(1)以上是快慢指针的三种常规用法,有的时候,也称为前后指针(2)当题目中要求只遍历一遍链表,就应该想到快慢指针,一般只需要定义两个变量即可(快慢指针)(3)当题目的要求有对链表的两头进行操作时,考虑求中间的结点(4)使用快慢指针,要重点考虑它们的线性关系(分别走多少步)和结束条件以上就是本节的全部内容了,同学们快去练手吧!

2023-12-12 12:59:10 2025 13

原创 快邀请你的冤种朋友一起来学习顺序表的底层逻辑:ArrayList集合

方法功能尾插 e将 e 插入到 index 位置尾插 c 中的元素删除 index 位置元素并返回该元素删除遇到的第一个 o获取下标 index 位置元素将下标 index 位置元素设置为 element清空顺序表判断 o 是否在线性表中返回第一个 o 所在下标返回最后一个 o 的下标截取部分 list。

2023-12-09 11:26:46 1152 15

原创 开源图床Qchan本地部署远程访问,轻松打造个人专属轻量级图床

图床作为云存储的一项重要应用场景,在大量开发人员的努力下,已经开发出大量专用的图床程序,这些程序有的大而全,有的小而美,完美覆盖了不同强度的应用场景。而随着小型硬件的发展(如树莓派等),超轻量级的图床程序又焕发出新的生机。今天,笔者就为大家介绍一款超轻量级的图床程序Qchan,并与cpolar配合,打造一个私人图床。虽然Qchan网页程序非常小巧,但功能并不算弱,像这样的私人图床程序还有很多,我们可以以同样流程,搭配cpolar内网穿透程序,将其变为专属的私人云图床。

2023-12-02 11:35:35 1734 42

原创 可视化文件编辑与SSH传输神器WinSCP如何公网远程本地服务器

​Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。​ 可视化操作就是直接把文件从本机拖入,打开文件直接双击即可。软件特性支持协议众多:SSH ,FTP、SFTP、FTPS、SCP。友好的图形操作界面,设置可以在选项界面中更改皮肤。与 Windows 完美集成(拖拽, URL, 快捷方式)内置文本编辑器。

2023-11-28 18:13:22 1766 49

原创 Java中的异常语法知识居然这么好玩!后悔没有早点学习

1.自定义异常的用途及注意事项(1)多用于一些业务逻辑中可能发生的异常,常常是系统中没有的;如账号登录时,输入的账号错误或者密码错误等等(2)自定义的异常一般继承RuntimeException或者Exception(1)先实现一个登录逻辑的类//设置初始账号名字为:zhangsan//初始密码为1234456//该方法用来验证密码是否正确,参数为//比较用户名if(!System.out.println("用户名错误!");//比较密码if(!

2023-11-26 09:55:41 1157 13

原创 使用Typecho搭建个人博客网站,并内网穿透实现公网访问

Typecho是由type和echo两个词合成的,来自于开发团队的头脑风暴。Typecho基于PHP5开发,支持多种数据库,是一款内核强健﹑扩展方便﹑体验友好﹑运行流畅的轻量级开源博客程序。选用Typecho,搭建独一无二个人网络日志发布平台,享受创作的快乐。为什么使用面板工具安装呢?因为面板工具集成了安装所需的环境,及大的简化了我们安装难度,再结合cpolar工具,使得我们就算在外也可以远程访问typecho。

2023-11-23 19:11:35 693 46

原创 String类及相应的字符串操作方法

(1)String类就是用来定义字符串的,而字符串中的内容不可修改(2) 所有涉及到可能修改字符串内容的操作都是创建一个新对象,改变的是新对象(3)简单认识String类这两个final都不是字符串不能被修改的原因用来实例化对象不能直接赋值常量字符串StringBuilder中操作字符串的方法:和String类差不多,但是方法比String类少一些append方法:拼接字符串//在字符串后面拼接1234//可以多次拼接//操作的都是同一个对象。

2023-11-20 21:45:19 193 9

原创 Xrdp+内网穿透实现远程访问Linux Kali桌面

Kali远程桌面的好处在于,它允许用户从远程位置访问Kali系统,而无需直接物理访问该系统。这使得用户可以在不同的位置使用Kali系统,而无需在每个位置都安装Kali系统。此外,远程桌面还可以提高Kali系统的安全性,因为用户可以在不直接接触Kali系统的情况下进行工作,从而减少了潜在的安全风险。下面介绍Kali 安装Xrdp 远程桌面工具,并结合Cpolar 内网穿透软件实现远程访问Kali桌面,跳出局域网限制.

2023-11-16 16:25:16 1495 49

原创 Linux系统中如何开启和配置OpenGauss数据库的远程连接(1)

openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性.结合cpolar 内网穿透工具,即可实现远程访问本地openGauss,实现远程访问,下面介绍从Linux安装到远程访问的方式.

2023-11-13 14:57:38 639 43

原创 Java中的数组,你知道多少细节?

(1)只定义不初始化需要new一块空间(2)定义并初始化类似C的写法(最常用)Java中常见写法(3)总结点左边得数组类型不能加数字,如:错误Java中一般不允许指定数组大小,除非是未初始化的数组相对for-each的优点:不仅可以遍历数组,还可以拿到数组的下标(1)常规赋值法(最常用)对每行的赋值必须加上花括号(2)只定义而不初始化(3)只定义,省略列的写法(4)不规则定义方式什么叫不规则定义方式,就是每一列的数目可以不一样对每一行单独new。

2023-11-12 14:25:57 356 15

原创 Java必刷入门递归题×5(内附详细递归解析图)

本次的五道递归题就结束了。(1)了解斐波拉契数列。

2023-11-12 14:10:44 689

原创 动态通讯录及程序保存在文件中

这一次是在之前静态的通讯录基础上进行改造;变成动态通讯录,当空间不够时,可以完成自动增容,并且将通讯录中的信息保存在文件中,退出或关闭程序就不会再丢失数据。

2023-11-10 16:36:32 376 11

原创 Linux本地部署1Panel现代化运维管理面板并实现公网访问

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面。

2023-11-09 15:25:29 953 36

空空如也

空空如也

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

TA关注的人

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