自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 Windows搭建Svn服务器

SVN(Subversion)是一个开源的版本控制系统,用于管理代码的版本控制和协作开发。它提供了一系列的命令行工具,以及一套客户端和服务器架构,用于管理代码的版本控制和协作。本文使用TortoiseSVN来演示管理员如何使用命令行新建仓库并分配权限,开发人员如何通过可视操作进行操作。

2024-04-22 10:38:58 718

原创 Python之推导式

Python 推导式是Python独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。Python从语法上提供了实现,归根结底,推导式实质上为集合的过滤与映射。相同的功能其实在java也可以很方便的实现。Java 8之后的版本引入了新的函数式编程特性,包括流(Stream)和Lambda表达式。借助这些特性,可以实现类似Python的推导式。

2024-04-21 10:56:07 401

原创 Python基本类型

java编程语言总共有8种基本类型,Python也有8种基本类型,分别是整数、浮点数、字符串、布尔值、列表、元组、字典、集合等。

2024-04-21 09:52:59 909 1

原创 第一个Python程序

Python是一种高级、通用、解释型的编程语言,在数据分析、机器学习、人工智能等领域有广泛应用。本文从开发环境搭建、程序入口等比较python与java的区别。

2024-04-20 21:34:57 854

原创 Python属于动态强类型语言

动态编程语言和静态编程语言是基于变量类型声明和类型检查的特性的区别,Python是一种动态语言,而java是一种静态语言。除了动态语言与静态语言的区别,编程语言还有强类型与弱类型的区别。Python和Java均为强类型语言,变量在使用之前必须先声明并指定其类型,并且不能进行不合法的类型转换。

2024-04-20 21:34:19 609

原创 Netty之ByteBuff

事实上,jdk自1.4版本,就已经提供了nio的ByteBuffer,用于在Java程序中操作原始数据。由于ByteBuffer自身存的局限性,Netty底层采用了类似功能的ByteBuf,并提供了众多方便的API。

2024-04-15 11:43:01 930

原创 SpringMvc文件上传下载案例

文件上传下载功能是web项目最基础的功能,本方演示如何使用ElementPlusUI组件和SpringMVC演示文件上传下载功能。

2024-04-15 11:34:31 414 1

原创 常见的orm框架比较

ORM(对象关系映射)框架是一种将数据库和对象模型之间建立映射关系的技术。它可以将数据库表的记录映射为对象的属性,并提供一系列的API来进行数据库的增删改查操作。本文对Java业界常用的orm框架进行分析

2024-04-10 19:56:24 698

原创 Netty实现udp服务器

网络传输层协议有两种,一种是TCP,另外一种是UDP。Tcp的应用非常广泛,Udp相对来说比较少。本文演示如何使用netty开发udp服务,并使用游戏简易功能进行演示说明。

2024-04-10 17:33:36 1071 1

原创 Netty实现文件服务器

文件上传下载是一种非常常见的功能,特别是在web服务网站。本文基于http协议,使用netty实现文件下载功能。包括服务端工具,及客户端工具。

2024-04-01 11:39:23 1097

原创 jforgame-doctor快速入门

对于一个上线产品项目来说,热更新为维持项目的稳定健康提供了坚强的保障。小到策划数据的修改,代码bug的修改,大到动态扩展游戏业务功能。本文主要介绍java两种热更机制的原理,以及利用jforgame-doctor进行代码演示说明。

2024-04-01 09:09:26 47

原创 jforgame-socket快速入门

jforgame-socket是一个通用的网络工具,底层对Netty/Mina进行了封装,屏蔽了私有协议栈定制,消息编解码,消息粘包/拆包问题。jforgame-socket传输层使用了TCP协议。可用于任何需要socket通信的应用。例如游戏服务器,聊天服务器等等。

2024-03-26 18:28:53 195

原创 网游版五子棋

五子棋游戏属于开房间类休闲游戏,可以非常方便实现分布式战斗服横向拓展。只要服务器有压力,就可以通过动态加战斗服服务器来实现。本文介绍一个基于jforgame组件开发的五子棋网络小游戏,支持分布式部署战斗服。

2024-03-26 18:28:33 73

原创 Maven发布开源框架到远程仓库

当你写了一个自我感觉良好的开源工具希望给他人分享,如果只是在github等网站进行公布之外,用户使用起来还不是很方便,特别是当你提供是特定领域的基础工具。你还可以把它部署到中央仓库,这样别人使用就会方便很多。本文主要介绍如何使用maven发布依赖到中央仓库。

2024-03-22 18:46:16 1342

原创 Github多账号共存

在开发阶段,如果同时拥有多个开源代码托管平台的账户,在代码的管理上非常麻烦。那么,如果同一台机器上需要配置多个账户,怎样才能确保不同账户不冲突呢?

2024-03-22 18:36:45 484

原创 高效日志为服务器保驾护航

游戏程序日志,无论是对于开发环境,还是生产环境,都有着非常重要的作用。即是研发人员排查bug的利器,也是运营团队分析游戏内容的数据依据。本文主要介绍游戏服务器的三类日志以及提供动态创建日志的代码示例。

2024-03-19 22:01:39 116

原创 使用动态日志简化开发时间

游戏程序日志,无论是对于开发环境,还是生产环境,都有着非常重要的作用。即是研发人员排查bug的利器,也是运营团队分析游戏内容的数据依据。本文主要演示log4j,log4j2,logback三种日志系统如何创建动态日志。

2024-03-19 21:58:07 342

原创 spring-boot-starter-thymeleaf加载外部html文件

在Spring MVC中,我们可以使用Thymeleaf模板引擎来实现加载外部HTML文件。本文将进行案例演示热更新文件的方法。

2024-03-18 22:41:52 1057

原创 maven一点通

maven是java开发的项目管理工具。本文主要介绍maven的安装,核心概念,以及实际使用技巧。

2024-03-18 19:33:08 1188

原创 Git一点通

Git是一个伟大的版本管理工具,非常灵活,也非常强大。本文主要介绍git的常用命令,对比比较混淆的命令,介绍一些常见的错误操作等等。

2024-03-17 23:24:22 671

原创 Netty之@Sharable注解

Netty的handler标记@Shareable注解之后能够被多个ChannelPipeline共享,减少内存浪费。本文讲述@Shareable注解的正确使用方法。

2024-03-17 10:16:21 473

原创 服务器生产环境问题解决思路

游戏服务器开发节奏比较快,版本迭代很频繁,导致生产环境经常出现bug。当线上出现bug,我们应该如何处理呢?以及,如何主动监控游戏线程呢?

2024-03-15 15:38:49 246

原创 使用Minio搭建文件服务器

Minio是一个开源的对象存储服务器,可以用来存储和管理大规模的数据。本文介绍windows搭建minio,以及上传下载文件的例子。

2024-03-15 13:37:25 1215

原创 spring-boot操作elasticsearch

在Spring Boot可以使用Spring Data Elasticsearch来简化开发过程。本文演示如何使用ElasticsearchRepository对文档进行简单的增删查改,使用ElasticsearchRestTemplate相关API进行较复杂的查询。

2024-03-12 23:08:29 615

原创 Elasticsearch使用Kibana进行基础操作

Kibana是一个用于数据可视化和分析的开源工具。它是Elasticsearch的一个组件,用于在Elasticsearch索引中搜索、分析和互动式地可视化数据。本文使用Kibana的开发者工具进行简单的增删查改操作。

2024-03-12 12:33:38 905

原创 使用maven打生产环境可执行包

程序打包的主要目的是将项目的源代码、依赖库和其他资源打包成一个可执行的文件或者部署包,方便程序的发布和部署。本文演示如何使用maven进行程序打包。

2024-03-11 15:01:48 877

原创 Gradle模块化最佳实践

Gradle是一个新兴构建和管理程序项目的工具。它支持模块化开发,使开发人员能够将项目分解为多个独立的模块,并且可以独立地构建、测试和部署这些模块。本文以实际例子配置进行演示说明。

2024-03-10 21:50:55 1054

原创 windows安装ElasticSearch踩坑记

ElasticSearch是一个开源的分布式搜索和分析引擎。它提供实时分布式搜索功能,可以索引和搜索大量的结构化和非结构化数据。Elasticsearch以其速度、可伸缩性和处理复杂查询的能力而闻名。它常用于日志分析、全文搜索、文档搜索和数据分析等领域。本文记叙在Windows环境下安装相关程序出现的问题。

2024-03-10 11:40:54 1268

原创 Netty的粘包/拆包问题的解决之道

在使用Netty进行网络通信时,由于网络传输的特性,数据往往无法保持完整的发送或接收。可以把netty的socket通道看成是一段水管,水管里的水是没有分界线的。TCP作为底层传输协议,是不了解上层业务数据的意义。这就会导致数据在传输过程中被拆分成多个小片段,或者多个数据包被合并到一个大的数据包中。为了解决这个问题,Netty提供了一些方法来处理拆包和粘包的问题。

2024-03-08 14:21:27 410

原创 Maven模块化最佳实践

Maven是一个用于构建和管理Java项目的工具。它支持模块化开发,使开发人员能够将项目分解为多个独立的模块,并且可以独立地构建、测试和部署这些模块。使用maven的模块化配置,子模块可以享受到继承和聚合的优势。本文以实际例子配置进行演示说明。

2024-03-08 13:20:14 931

原创 Netty之WebSocket协议开发

在传统的Web通信中,浏览器是基于请求--响应模式,此种模式服务器很难及时推送数据。WebSocket技术在http协议进行拓展,实现全双工通信。本文使用netty作为服务端,js作为客户端,演示websocket功能。

2024-03-05 20:41:13 939

原创 游戏寻路之A*算法(GUI演示)

A*算法是一种路径搜索算法,用于在图形网络中找到最短路径。它结合了Dijkstra算法和启发式搜索的思想,通过综合利用已知的最短路径和估计的最短路径来优化搜索过程。本文提供代码演示,包含迷宫生成算法,A星算法,GUI动态界面演示。

2024-03-04 18:56:57 818

原创 使用GitHub API 查询开源项目信息

GitHub API 是一组 RESTful API 接口,用于与 GitHub 平台进行交互。通过使用 GitHub API,开发人员可以访问和操作 GitHub 平台上的各种资源,如仓库、提交记录、问题等。本文使用httpclient工具进行开源项目信息查询,并使用jackson工具对查询结果进行反序列化。

2024-03-04 10:13:53 1292

原创 Netty的InboundHandler 和OutboundHandler

本文说明Netty的InboundHandler 和OutboundHandler的区别,并通过示例演示客户端数据在handler的数据流向。

2024-03-02 19:34:43 891

原创 Netty之ChannelHandlerMask详解

Netty的ChannelHandlerMask是用于标记ChannelHandler的位掩码。它被用于指示ChannelHandler的属性和事件处理方式。

2024-03-01 17:33:43 675

原创 如何将java程序打包成可执行文件

很多时候,我们需要把编写好的java代码传给其他人使用。大部分计算机都是没有java运行环境的,本文介绍两种方式来打包可执行程序。

2024-03-01 10:53:43 584

原创 游戏开发的艰辛历程与升级展望

从第一款游戏《贪吃蛇》开始,到《水果忍者》、《时空猎人》,再到如今风靡全国的《王者荣耀》,手机游戏迎来了百花齐放的繁华时代。怀着对游戏行业的热爱,一批一批游戏开发大军加入了队伍。即使从业道路很艰辛,我们还是一如初衷,希望在奉献自己力量的同时,能够从中收获财富与自我成长。

2024-02-28 13:57:52 3210 2

原创 服务端常用的Linux运维命令

游戏服务器开发常用的若干运维命令

2024-02-28 13:30:52 356

原创 游戏全球同服服务器支持

全球同服是指游戏中的玩家可以跨越地域限制,与全球的玩家一起进行游戏。这意味着无论你在哪个地区,你都可以与来自世界各地的玩家一起游戏。全球同服通常需要游戏服务器的支持,以确保玩家之间的连接和游戏体验。

2024-02-28 12:02:43 51

原创 orm工具saveOrUpdate()操作设计思路

当我们手写一个orm工具库的时候,都希望尽可能降低API的使用难度,合并更新和插入操作,那么我们应该如何设计saveOrUpdate操作呢?典型地,本文介绍几种设计思路。

2024-02-28 10:31:18 862

Java哲学家就餐GUI演示

java就哲学家就餐问题进行GUI演示,包含代码+资源,可直接运行

2024-02-27

并发题库 (含参考答案).md

52道java常用的并发面试题目,包含答案。

2021-02-02

空空如也

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

TA关注的人

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