自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络 —— HTTPS 协议

前一篇文章中对 HTTP 协议整体做了一个基本介绍,在本篇文章里将介绍一下基于 HTTP 协议创造出来的 HTTPS 协议,关于 HTTPS 协议的重点内容就是它的一个工作过程,它是如何保证我们网络中传输数据的安全性呢?这将是本篇文章的要重点介绍的内容,下面就开始本篇文章的内容介绍。

2024-12-03 21:33:55 2002 10

原创 计算机网络 —— HTTP 协议(详解)

本篇文章来给大家介绍的是 HTTP 协议,这里我要分享的内容是:介绍什么是HTTP 协议?抓包工具如何使用?HTTP 协议的格式是怎样的?HTTP 的请求与响应是什么样的?GET 与 POST 方法的区别是什么?状态码的作用是什么?下面就开始本篇文章的内容介绍。

2024-12-02 20:26:40 3318 7

原创 MySQL —— 配置文件

本篇文章要介绍的是 MySQL 中的配置文件的相关内容。大多数 MySQL 程序都可以从配置文件(选项文件)中读取启动配置,可以在配置文件中指定常用配置,这样就不用在每次运行程序时都在命令行中输入它们。大部分配置文件都是纯文本格式,可以使用任何编辑器来进行创建。

2024-12-01 11:50:26 3635 3

原创 MySQL —— MySQL 程序

本篇文章将会介绍 MySQL 中常见程序 mysqld 与 mysql 的基本概念,以及详细介绍 mysql 客户端程序的使用,这里我们会介绍 mysql 客户端命令的常用选项,使用 mysql 客户端从 .sql 文件中执行 SQL 语句,下面开始本篇文章的内容介绍。

2024-11-30 14:22:17 1252

原创 在线音乐播放器 —— 测试报告

前面文章中,我们把在线音乐播放器项目从零到一的都编写完成完成,并在每个模块编写的过程中,利用 Postman 进行了接口的简单测试,在本篇文章,我将对我们所编写的这个项目进行一个详细的测试并且再对本项目做一个整体的介绍,来检查我们项目中是否还存在问题,这里我们要进行的测试分为:功能测试、自动化测试、性能测试三种,最后将这些测试的过程及结果总结到一起形成这篇测试报告。

2024-11-27 10:50:22 1167 9

原创 网页版五子棋 —— 测试报告

前面的文章中,我们把五子棋项目从零到一的都编写完成了,并且在每个模块的编写过程中,也都做了一些简单的测试,在本篇文章,我将对我们所编写的五子棋项目整体进行一个详细的测试,来检查我们项目中是否还有问题,这里我们要进行的测试分为:功能测试、自动化测试、性能测试三种,最后将这些测试的过程总结到一起形成这篇测试报告。

2024-11-22 20:36:01 1123 4

原创 软件测试—— Selenium 常用函数(二)

在前一篇文章中,我们介绍了 Selenium 中对浏览器窗口各种操作的自动化实现函数和等待操作的作用及相关用法,本篇文章将继续对 Selenium 里的常用函数进行介绍,在进行 Web 自动化测试的过程中,并非所有的元素都可以获取到然后进行操作,比如浏览器的导航栏、页面出现的弹窗、上传文件的选择文件弹窗,这里介绍的函数主要是对浏览器导航栏,弹窗、上传文件这些特殊的操作进行自动化,下面就开始本篇文章的内容介绍吧。

2024-11-18 12:49:13 926 6

原创 软件测试—— Selenium 常用函数(一)

在前一篇文章中,我们介绍了自动化的一些基础知识,还介绍及简单使用了Selenium 这个 Web 自动化测试工具及部分函数,本篇文章来对 Selenium 里的常用函数继续进行介绍,这里介绍的函数主要是对浏览器窗口与等待方式的常见操作进行自动化,下面就开始本篇文章的内容介绍吧。

2024-11-17 20:00:04 1064 5

原创 软件测试 —— 自动化基础

自动化是指自动的代替人的行为完成操作,自动化在生活中可以说是随处可见,如:自动洒水机、自动洗手液等,这些生活中的自动案例有效的减少了我们人力的消耗,同时也提高了我们的生活质量,在我们软件中的自动化测试也是如此,通过自动化测试可以有效减少人力的消耗,同时提高测试的质量和效率,本篇文章将会介绍自动化测试的一些基础知识,和一些自动化测试中常用的函数,那么就开始本篇文章的内容介绍吧。

2024-11-16 17:28:29 1418 2

原创 网页版五子棋——对战模块(服务器端开发②)

在前一篇文章中介绍了五子棋项目中核心部分有关落子操作相关的逻辑,本篇文章将继续对五子棋项目中对战模块的服务器端代码进行编写,下面我们要进行 WebSocket 请求入口类的编写,实现其继承的方法,还有对整个对战模块功能的测试,本篇文章中将要新增的代码文件如下图圈起来的文件所示: 下面就开始本篇文章的内容介绍:

2024-11-13 19:20:36 1162 4

原创 网页版五子棋——对战模块(服务器端开发①)

在前一篇文章中介绍了对战模块中前后端交互接口的设计及对战模块客户端代码的开发,本篇文章将继续对五子棋项目中对战模块的代码进行编写,下面要介绍的内容就是服务器端代码的编写了,这里我们将要进行游戏胜负判定的实现,处理落子前后的逻辑,本篇文章中将要新增的代码文件如下图圈起来的文件所示:下面就开始本篇文章的内容介绍。

2024-11-13 11:55:28 798 3

原创 网页版五子棋——对战模块(客户端开发)

前面文章介绍完了五子棋项目中用户模块及匹配模块的代码编写,从本篇文章开始就进入五子棋项目最核心的模块—— “对战模块” ,在这个模块中要做的事情就是处理玩家之间的正常对弈,可以正确的判定对局的结果,在这个模块中会对前面模块的部分代码有所修改,本篇文章要介绍的内容是对战模块中前后端交互接口的设计,以及游戏房间页面的编写,还有棋盘信息的绘制,和前后端交互代码的编写,本篇文章中新增的代码文件如下图圈起来的部分所示:下面开始本篇文章的内容介绍。

2024-11-12 11:42:02 986

原创 网页版五子棋——匹配模块(服务器端开发)

前一篇文章中介绍了匹配模块中前后端交互接口的设计及匹配模块客服端代码的开发,在本篇文章里将继续对五子棋项目中匹配模块的代码进行编写,下面要进行介绍的内容就是服务器端代码的编写了,这里我们将实现按照天梯积分来把实力相近的两个玩家匹配到一起的细节逻辑,本篇文章中将新增的代码文件如下图圈起来的文件所示:下面就开始本篇文章的内容介绍。

2024-11-09 18:50:03 894 4

原创 网页版五子棋——匹配模块(客户端开发)

前面文章介绍完了五子棋项目用户模块的代码编写,从本篇文章就开始介绍五子棋项目匹配模块的代码编写了,匹配模块这里要做的事情就是可以让多个用户在游戏大厅中能够进行匹配,我们会按照天梯积分,把实力相近的两个玩家匹配到一起进行对战,本篇文章要介绍的内容是前后端交互接口的设计,以及游戏大厅页面的编写,还有前后端交互代码的编写,本篇文章新增的代码文件如下图圈起来的文件所示:下面就开始本篇文章的内容介绍。

2024-11-08 19:33:36 1226 4

原创 网页版五子棋——用户模块(客户端开发)

本篇文章继续编写五子棋项目中的用户模块代码,在前一篇文章中,我们完成了用户模块服务器端代码的编写,下面我们来编写用户模块客户端代码,在客户端要提供登录页面 + 注册页面,​​并且要进行前后端交互的操作,这里我们使用 Ajax 来使页面与服务器之间进行交互,引入 jQuery 来简化 Ajax 的使用,本篇文章新增的代码结构及内容如下图所示:下面就开始本篇文章的内容介绍。

2024-11-07 19:19:52 1152 3

原创 网页版五子棋——用户模块(服务器开发)

本篇文章就开始五子棋项目的正式编写了,在本篇文章中主要是对用户模块中服务器端的代码进行编写与介绍,用户模块主要负责用户的注册、登录、分数记录的功能,这里我们使用 MySQL 数据库来存储数据,服务器端是基于 Spring + MyBatis 来实现对数据库的增、删、查、改,本篇文章新增的代码结构及内容如下图所示:下面就开始本篇文章的内容介绍。

2024-11-07 15:59:10 1019 2

原创 网页版五子棋—— WebSocket 协议

从本篇文章开始,我就来与大家分享网页版五子棋项目的一个实现过程了,这个项目一共有以下几个核心模块:用户模块、匹配模块、对战模块,后面文章会按照顺序来对每个模块进行介绍,并且此项目用到的核心技术有:Spring/SpringBoot/SpringMVC、WebSocket、MySQL、MyBatis、HTML/CSS/JS/AJAX,本篇文章来介绍一下 WebSocket 协议的内容、原理及代码示例,下面就开始本篇文章的内容介绍。

2024-11-05 18:38:17 1963 3

原创 多线程—— synchronized 总结

前面文章中对 synchronized 的讲解主要有两个部分,一部分讲synchronized 的基础及使用,另一部分讲了 synchronized 的工作原理,由于在我们使用 Java 进行多线程编程时一定涉及到线程安全这样的问题,所以我们避免不了加锁这样的操作,synchronized 作为我们最常用的加锁操作,在本篇文章中我会对 synchronized 做一个全面的总结,下面就开始本篇文章的内容介绍吧。

2024-11-02 19:31:51 818 3

原创 多线程——定时器

本篇文章会利用多线程的知识来编写一个代码案例——定时器,我会先介绍一下什么是定时器,再来介绍一下我们标准库中的定时器以及操作演示我们标准库中定时器的效果,最后我来手撕出来一个功能上与所演示标准库中定时器效果差不多的定时器,并对其实现的具体逻辑,在代码中进行详细介绍,那么就开始本篇文章介绍的内容吧。

2024-10-31 20:48:00 956 2

原创 多线程——线程安全的集合类

介绍了这么多关于多线程相关的知识后,在我们 Java 中哪些集合类在使用的时候是线程安全的呢?其实,我们了解的集合类大部分都是线程不安全的,像 HashMap、ArrayList……,那么本篇文章就来介绍一下哪些集合类是线程安全的,它们又是如何保证线程安全的。

2024-10-27 20:20:34 1437 6

原创 多线程—— JUC 的常见类

在我们前面的文章中介绍的线程池与阻塞队列,其中涉及到的BlockingQueue 、ThreadPoolExecutor 、ThreadFactory 、TimeUnit 、RejectedExecutionHandler……这些内容都来自于 JUC 中,JUC 全称是java.util.concurrent 在这里面放了很多进行多线程编程时需要用到的类,在本篇文章中,我会介绍在JUC 中一些前面文章没有介绍到,然后还比较常见的类,它们的作用以及用法。

2024-10-27 16:44:33 1056 2

原创 多线程—— CAS 机制

在前面文章中介绍了线程安全这一个话题,其中多个线程对同一个变量进行修改的时候就很可能引发线程安全问题,为了保证在多线程环境下,对同一个数据修改不产生线程安全问题,我们使用到的策略就是加锁,在本篇文章中会介绍的 CAS 机制,就能以无锁的特性来保证多个线程修改同一个变量时的线程安全,那么CAS 是什么,它是怎么实现的,又是如何做到不加锁及可保证线程安全,以及引入 CAS会出现什么问题就是本文要重点讲解的内容了。

2024-10-26 21:14:04 1081 1

原创 多线程——锁策略及 synchronized 原理

前面我们介绍了加锁是解决线程安全问题的方法,在本篇文章中会对详细的介绍一些常见的锁策略,这里的锁策略不再仅仅局限于 Java 了,可以说,任何和“锁”有关的话题都可能涉及我下面介绍的内容,了解常见的锁策略对于我们合理的使用锁会有很大的帮助,同时,在本篇文章还会根据介绍的锁策略,来进一步介绍一下在我们前面文章中经常用到的加锁方式使用 synchronized 关键字它的原理,前言少说,下面开始本篇文章的内容分享吧。

2024-10-26 12:28:54 889 1

原创 Redis——缓存

我们都知道 Redis 的主要用途有三个方面:存储数据、作为缓存和消息队列,其中,Redis 最常用的场景就是作为缓存了,本篇文章就来和大家介绍一下缓存的基本概念,如何使用 Redis 作为缓存,缓存的更新策略有哪些,Redis 中的内存淘汰机制是怎样的,还有关于使用缓存的一些注意事项,那么就开始本篇文章的正题吧。

2024-10-24 19:12:25 2273 9

原创 Linux 常用命令

Linux作为现在世界第一大操作系统,有着开源、稳定、安全、自由、社区支持等优势,想要使用Linux那一定要了解其中的相关命令,本篇文章我就来和大家分享一些Linux 的常见命令,来帮助大家可以快速上手Linux。

2024-10-23 19:54:22 1217 1

原创 多线程——线程池

在我们学习编程知识过程中一定听说过很多池,比如常量池,还有在我前面MySql专栏中JDBC 编程里提到的数据库连接池,以及本篇文章要为大家介绍的线程池,所谓的这些池作用其实都差不多,都是提前把要用的对象创建好,然后把用完的对象不立即释放留着以备下次使用,这样就可以起到提高效率的作用,本篇文章就会为大家介绍一下什么是线程池,在我们Java标准库中的线程池是什么样的,以及使用Java代码来实现一个简单的线程池让大家能更清晰的认识线程池,那么就开始本篇文章的介绍内容吧。

2024-10-22 11:52:40 1002

原创 多线程——阻塞队列

本篇文章会利用多线程来实现一个简单的阻塞队列,我在下面文章中会先介绍什么是阻塞队列,什么是“生产者消费者模型”,基于阻塞队列实现的“生产者消费者模型”有什么作用,最后利用标准库中的阻塞队列来实现“生产者消费者模型”以及使用我们自己实现的阻塞队列来实现“生产者消费者模型”来帮助大家更好的理解阻塞队列,下面就进行本篇文章的内容吧。

2024-10-19 18:57:37 1149

原创 多线程——单例模式

前面的几篇文章中介绍了多线程编程的基础知识,在本篇文章开始,就会利用前面的多线程编程知识来编写一些代码案例,从而使大家可以更好的理解运用多线程来编写程序,本篇文章会用多线程来实现设计模式中的“单例模式”,这里实现“单例模式”的方式主要介绍两种:“饿汉模式”和“懒汉模式”,下面进行本篇文章的重点内容吧。

2024-10-17 20:54:27 1286 1

原创 多线程——线程的等待通知

由于线程之间是抢占式执行的,因此线程之间的执行顺序是难以预知的,但是在我们进行多线程编程中,很多时候我们希望能合理的协调多个线程之间的执行先后顺序,本篇文章就是来进行介绍协调多个线程之间的执行先后顺序的方法,那就是使用wait()方法、notify()方法和notifyAll()方法。

2024-10-15 19:37:56 1354

原创 多线程——解决线程安全问题

在开始本篇文章分享之前,先简单回顾一下上一篇文章的内容,上一篇文章介绍了线程安全这一话题,列举了一个代码示例来演示线程不安全的样子,然后通过分析代码示例来引出了产生线程安全问题的原因,最后使用了 synchronized 关键字来解决了示例代码的问题,本篇文章就来针对在 Java 中解决线程安全问题两个重要的关键字 synchronized 关键字与 volatile 关键字进行详细的介绍。

2024-10-13 21:15:39 910

原创 多线程——线程安全

我们学习多线程编程的目的是为了能够实现“并发编程”,从而来提高我们代码的执行效率,在学习使用多线程时,一定避免不了“线程安全”这样的话题,这可以称的上我们多线程编程中最重要的部分,因为他会关系到我们所写的代码是否能够正确的运行,同时,线程安全也是学习多线程编程中最困难的部分,本篇文章将会对“线程安全”这一话题进行讲解。

2024-10-11 20:20:40 1398

原创 多线程—— Thread 类及常见用法(详解)

本篇文章会介绍 Java 中的 Thread 类常见的构造方法、常见属性及其常见的用法,会列举一些代码例子来更直观的感受每个方法是作用,文章还会介绍 Java 中线程的状态及他们之间的转换关系,那么下面就开始今天的分享吧~~

2024-10-09 19:46:09 3042

原创 多线程——认识线程(Thread)

本篇文章是在Java中利用多线程编程的一个初始篇章,这里介绍了创建线程的几种方式,编写的第一个多线程程序,介绍了多线的优势,jconsole是一个很方便的工具,可以利用这个工具来查看我们创建线程的相关信息,他的位置在我们的jdk的bin目录下,jconsole 只能列出Java的进程,其他不是Java的程序无法分析;打开 jconsole 可能不显示任何进程,可以使用管理员的方式来启动 jconsole(鼠标右键选择jconsole,选择“以管理员的身份运行”);

2024-10-01 20:00:00 1058

原创 多线程——进程与线程(详解)

在前一篇文章末尾我简单介绍了操作系统,在操作系统中有一个核心的概念就是进程,从本篇文章起,就开始JAVA语言多线程的讲解了,在此之前,本篇文章作为多线程的前序铺垫,一是介绍进程与线程的相关概念,二是区分进程与线程,三是解释为什么JAVA语言中不推荐使用多进程的方式进行编程而是更多使用多线程式编程。 我们现在所用的系统都是“多任务操作系统”,同一时刻,可以同时运行多个任务,这些正在运行的程序,就可以成为是“任务”,也叫做“进程”,进程包含了一个程序的所有状态信息。

2024-09-29 18:31:08 1013

原创 操作系统概述

本篇文章会介绍计算机的工作方式,以及对操作系统的基本概念进行分享,还会会详细介绍指令的执行过程。操作系统是一个非常重要的软件(由代码构成的程序),它对上管理各种硬件设备,对下给软件提供稳定的运行环境,这也可以叫做(抽象封装),操作系统中有一个核心的概念,那就是进程,当前我们的系统都是“多任务”操作系统,每个启动的程序都称为“进程”。

2024-09-27 21:42:39 1064

原创 多线程——“死锁”

“死锁”是多线程代码中一类常见的问题,加锁是能解决线程安全的问题,但是如果加锁的方式不当,就可能产生“死锁”,本篇文章就会对“死锁”的三个比较常见的场景进行介绍。 当你在编程过程中,使用的锁是不可重入锁,并且在同一个线程中对同一把锁进行两次加锁,此时就可能面临“死锁”的状况

2024-09-24 20:42:01 1781 2

原创 MySQL——JDBC编程

JDBC,即Java Database Connectivity,在Java中操作数据库最基础的方式就是JDBC,为什么是最基础呢,因为现在出现了很多框架技术,他们在JDBC的基础上进行了封装,使JDBC用起来更方便。

2024-05-29 19:47:19 1193

原创 MySQL——索引与事务

谈到MySQL,避不开索引与事务这两个十分重要的概念,索引使MySQL在查询时效率更高,事务则是为了MySQL能更安全无误的运行,下面就由我来为大家进行今天的知识介绍吧。索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。索引的英文名是index(更多被翻译成下标),可以理解成目录。

2024-05-26 18:00:21 992 1

原创 MySQL——约束与表的设计基础

约束,就是在创建表的时候给这个表指定一些规则,在后续插入、修改与删除时都要保证数据能够遵守这些规则,引入这些规则是为了进行更强的数据检查及校验,这是因为数据是非常重要的,所以数据一定要确保正确,规则引入后,再进行插入、修改与删除等操作时,一旦数据不符合规则,就会报错,报错就是把问题提前告诉我们,以免酿成大错。

2024-05-25 19:03:37 823 3

原创 数据库——MySQL基础操作

本篇文章讲会对MySQL中基础操作进行讲解,从对数据库操作,对数据库表操作,对数据库表中内容进行简单的增删改查操作,复杂查询操作这四个部分进行讲解,这里我们将用到一个新的编程语言——SQL,这是在进行数据库操作所使用的语言,那么就进入今天所要进行介绍的正题了。

2024-05-24 11:15:17 989 1

在线音乐播放器 - 测试报告

在线音乐播放器性能测试报告

2024-11-23

网页版五子棋 - 测试报告

生成的性能测试报告

2024-11-22

产生线程安全问题的图解

产生线程安全问题的图解

2024-10-13

空空如也

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

TA关注的人

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