自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (3)
  • 收藏
  • 关注

原创 Godot学习-3D基本环境设置以及3D角色移动

本文仅仅简单介绍了模型导入、动画设置、地面创建、光照创建和角色基本移动。但是相机跟着角色旋转和移动这块还是有点问题,下次再看。

2025-04-23 23:55:18 1106

原创 Godot学习-关于3D模型选择问题

glTF/GLB和FBX是Godot中最常用的两种3D模型格式。

2025-04-22 00:39:32 287

原创 Godot学习-创建简单动画

如果你在动画面板可见时选择你的精灵,Godot 会在检查器中为精灵的每个属性显示一个小的关键帧按钮,点击这个按钮,Godot就会自动为当前动画添加一个轨道和关键帧。与洋葱皮按钮相邻的三个圆点按钮可以打开一个下拉菜单,你可以用它来调整洋葱皮的工作方式,包括在未来的帧中使用洋葱皮的能力。我们选择position这个属性,然后在0.0起始位置,鼠标右键,就会弹出 插入关键帧,我们插入即可。当我们创建好动画之后,就会注册在动画库资源的列表中。如上图所示:我们在动画面板,点击动画,然后新建,我们命名为Test。

2025-04-17 00:21:11 1126

原创 C++值传递和引用传递

特性值传递引用传递常量引用传递是否复制数据是否否是否能修改原始数据否是否性能较低(需要复制数据)较高(直接操作原始数据)较高(避免复制且不可修改)使用场景数据简单且不需要修改原始数据需要修改原始数据只需读取数据而不修改。

2025-03-25 17:43:08 404

原创 Godot Zelda教程练习1

分别是back_idle、left_idle、right_idle。

2024-10-23 22:18:22 1115

原创 Spring最早的源码

地址:Spring最早的源码

2024-07-09 10:44:12 499

原创 C++基本语法

按照下面的图片,建立Main.cpp文件。

2024-03-22 21:04:02 1234 2

原创 C++学习记录

参考B站视频学习。

2024-03-22 21:00:56 290

原创 React路由结合Material UI的ListItemButton组件完成导航示例

这篇文章主要记录我对ListItemButton的认知。下图默认重定向到HomePage页面。点击Home和About文字可以切换。

2024-03-13 23:09:05 705

原创 Material UI 5 学习04-Typography文本排版

return (</Box>gutterBottom的意思是给一个下边距。默认为falsevariant的值有哪些呢?可选地值还是很多的。h1-h6和css一致。variant=‘subtitle1’ 副标题1variant=‘subtitle2’ 副标题2return (subtitle1. 副标题1,我的文章概要介绍subtitle2. 副标题2,gutterBottom是CSS Material UI中的一个类</Box>body1和body2。

2024-03-11 23:00:55 615

原创 Material UI 5 学习03-Text Field文本输入框

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-03-10 22:17:03 1182 2

原创 使用AI纠正文章

泰勒斯第一次提出了水是万物本源的说法,对于泰勒斯为什么提出这样的观点,或者是这样的观点是怎么来的,我们无从所知。为什么这样说呢,因为从我们中国的五行学说来看,金木水火土五行相生相克,自然也能演化物质,但是从我们今天掌握到的自然科学知识来看,物质的构成也绝非是仅仅由于水组成的。但是,为了更清晰地表达这一观点,可以考虑加入一些具体的自然科学知识或例子,例如:“根据现代科学,我们知道物质的构成远比水复杂得多,包括原子、分子、元素等多种基本单位。从语法上看,这段文字没有明显的错误,句子结构清晰,用词准确。

2024-03-09 15:00:08 502

原创 Material UI 5 学习02-其它按钮组件

3、‘& > *’: {m: 1}这段代码的含义是:& > * 在 Sass/SCSS 中表示选择当前选择器的所有直接子元素。在这里,是 Material-UI组件的直接子元素。在这个例子中,List 组件被设置为了弹性容器,而它的所有直接子元素(ListItem)都将获得由 m: 1 定义的外边距。经过自己的测试,发现Button按钮的一些属性,在IconButton中没有,或者是不起作用的。IconButton也是没有任何背景颜色的,也没有边框的。1、Box是一个组件,类似于div,是一个布局组件。

2024-03-04 23:39:24 1154

原创 Material UI 5 学习01-按钮组件

主要的按钮

2024-03-03 19:45:55 1471

原创 rust for循环

当然上述的for n in 0.100 可以写成for n in 0. .=100这样的格式。迭代0到100,可以使用for n in 0. .100 n就是每次迭代的值。使用into_iter()之后,集合本身生命周期结束。使用iter_mut修改集合数据。

2022-10-23 23:37:09 526

原创 Rust基础语法

默认是不可变的,当定义相同名称的变量的时候,会隐藏原来的变量。执行x=x+1 是相当于隐藏的值+1进行新的变量x的赋值操作。上面的代码1是i32位的,现在用i64来接受,那么会显示编译错误。1 变量默认是不变的,但是常量总是不变的,并且不能对常量使用let关键字。因为上面的正是一个语句,所以不产生返回值,那么下面的语句是错误的。对于Rust变量来说,默认是不可变的,那么是否可以说是常量呢?使用场景是不需要使用迭代元素的值,那么变量可以使用_替代。在rust中,返回值是表达式,因此不能使用分号结束。

2022-09-13 00:39:12 4055

原创 d3力导向图

d3

2022-07-01 08:27:57 566

转载 完全理解同步/异步与阻塞/非阻塞

阻塞和非阻塞从简单的开始,我们以经典的读取文件的模型举例。(对操作系统而言,所有的输入输出设备都被抽象成文件。)在发起读取文件的请求时,应用层会调用系统内核的I/O接口。如果应用层调用的是阻塞型I/O,那么在调用之后,应用层即刻被挂起,一直出于等待数据返回的状态,直到系统内核从磁盘读取完数据并返回给应用层,应用层才用获得的数据进行接下来的其他操作。如果应用层调用的是非阻塞I/O,那么调用后,系统内核会立即返回(虽然还没有文件内容的数据),应用层并不会被挂起,它可以做其他任意它想做的操作。(至于文件内

2021-12-22 18:10:31 339

原创 Linux脚本安装minio

1、将minio安装包复制到linux指定目录2.将minio_start.sh复制到同级目录3、运行sh脚本脚本内容chmod u+x /usr/minio/minioexport MINIO_ACCESS_KEY=minioadminexport MINIO_SECRET_KEY=minioadminnohup /home/tongzhou/miniodir/minio server --address 0.0.0.0:8270 /home/tongzhou/miniodata >

2021-10-13 15:59:55 380

原创 found [date (Types#DATE)], but expecting [timestamp (Types#TIMESTAMP)]

在对应的列上加注解可以解决 @Column(name = "hiredate", columnDefinition = "DATE") private Timestamp hiredate;

2021-09-16 16:46:30 478

转载 Java 17 正式发布 ,Oracle 推出免费JDK许可证

一个小时前,JAVA 17 正式发布,这是一个LTS(长期支持)版本,带来了不少有用的新特性。关于Java 17 的一些新特性,胖哥已经在往期的文章中进行了介绍,这里就不再赘述了,有兴趣的可以移步文章 Java 17 新特性确定 。Oracle 免费 JDKJAVA 17 带来的不仅仅是新功能。更快的 LTS 节奏和免费的 Oracle JDK 使其成为有史以来支持最好的现代版本。Oracle JDK收费为人诟病,此次Oracle推出了Free Java License ,大致摘要:Oracl..

2021-09-15 10:12:14 1129

原创 git SSL certificate problem: unable to get local issuer certificate

今天使用git下载源码的时候,提示:SSL certificate problem: unable to get local issuer certificate解决:git配置去掉SSL验证git config --global http.sslVerify false

2021-09-13 15:13:34 157

原创 判断子序列(动态规划)

leetcode 392 public boolean isSubsequence(String s, String t) { boolean table[][] = new boolean[s.length() + 1][t.length() + 1]; for (int col=0; col<table[0].length; col++) { table[0][col] = true; } fo

2021-07-01 18:33:41 223

原创 使用多线程优化NIO

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言 NIO是一个Selector同时轮询多个Channel,监听读写事件。我们可以使用多线程来处理。多个Selector线程,多个处理读写的线程。让boss线程专门处理accept事件。worker线程来处理读事件。但是这里有一个问题,boss线程会阻塞worker0线程的执行,所以这里需要专门处理。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

2021-07-01 11:33:40 461

原创 海量订单产生的业务高峰期,如何避免消息的重复消费

文章目录幂等含义一、由来背景二、乐观锁方案幂等含义我们先了解一下什么叫幂等?在分布式应用中,幂等是非常重要的,也就是相同条件下对一个业务的操作,不管操作多少次,结果都是一样。提示:以下是本篇文章正文内容,下面案例可供参考一、由来背景为什么要有幂等这种场景?因为在大的系统中,都是分布式部署,如:订单业务 和 库存业务有可能都是独立部署的,都是单独的服务。用户下订单,会调用到订单服务和库存服务因为分布式部署,很有可能在调用库存服务时,因为网络等原因,订单服务调用失败,但其实库存服务已经处理完成

2021-06-26 16:04:45 273

原创 你知道如何保障生产端100%消息投递成功吗?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、分析问题二、持久化confirm机制消息提前持久化 + 定时任务前言我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。如上图:1)订单服务投递消息给MQ中间件2)物流服务监听MQ中间件消息,从而进行消费我们这篇文章讨论一下,如何保障订单服务把消息成功投递给MQ中间件,以RabbitMQ举例。一、分析问题小

2021-06-26 15:52:38 205

原创 NIO Files读取文件内容

一行读取txt内容 String content = new String(Files.readAllBytes(Paths.get("ip.txt"))); String[] ips = content.split("\r\n");txt内容如下:10.11.12.13:808010.11.12.14:808010.11.12.15:808010.11.12.16:8080

2021-06-23 21:52:06 271

原创 NIO消息边界问题处理

文章目录问题描述一、处理消息边界1、处理消息边界-容量超出2、处理消息边界-附件与扩容3、处理消息边界-bytebuffer大小分配二、写入内容过多问题三、处理可写事件问题描述@Slf4jpublic class EchoServer4 { public static void main(String[] args) throws IOException { // 创建selector,可以管理多线程 Selector selector = Selecto

2021-06-22 12:59:13 14822

原创 堆以及堆排序

文章目录前言一、heapify二、构建堆三、堆排序前言堆首先满足的条件是一棵完全二叉树。即丛上到下,从左到右依次添加节点。其次父节点大于子节点。如上图所示:堆构成的数组是:int[] arr={10,8,2,4,5,1}对于8来说。索引是1。父节点的索引是0,左孩子的索引3,右孩子的索引是4。有如下的性质:假设当前节点的索引是i。 父节点索引:index_parent=(i-1)/2。 左孩子节点索引:index_parent=2i+1右孩子节点索引:index_parent=2i+2

2021-06-22 10:06:39 14375

原创 NIO阻塞模式和非阻塞模式的处理

文章目录一、NIO阻塞服务端客户端代码二、NIO非阻塞设置三、ServerSocketChannel四、NIO Selector处理accept1、Selector的创建2、服务端3、客户端4、取消事件5、处理read事件5.1、处理空指针异常5.2、IO异常一、NIO阻塞服务端下面演示的代码是单线程处理服务端的连接,以及读取数据。import java.io.IOException;import java.net.InetSocketAddress;import java.nio.Buffer

2021-06-21 22:29:50 14992

原创 NIO组件之Channel

文章目录一、FileChannel1 获取FileChannel2 读取3 写入二、通道之间的数据交换-transferTo三、Path四、Files1 检查文件是否存在2 创建一级目录3 创建多级目录4 文件拷贝5 文件移动6 文件删除7 文件遍历8删除多级目录9 多级目录拷贝一、FileChannel FileChannel只能工作在阻塞模式下1 获取FileChannel不能直接打开FileChannel,必须通过FileInputStream、FileOutputStream或者R.

2021-06-20 16:29:21 14672

原创 Buffer API学习

文章目录一、Buffer 读API二、字符串和Buffer的转换三、分散读取四、集中写五、黏包和半包现象出现原因1 黏包2 半包解决办法一、Buffer 读APIBuffer rewind() 不改变极限,把位置设置为0,表示从头开始读取。 public static void main(String[] args) { ByteBuffer buffer = ByteBuffer.allocate(10); buffer.put(new byte[]{'a

2021-06-20 12:47:48 14719

原创 NIO组件之Buffer

文章目录一、前言二、Buffer属性1、buffer结构2、buffer实例创建3、buffer 重要API三、读取文件示例代码四、Buffer方法演示一、前言数据的输入和输出往往比较耗费性能。所以使用Buffer将数据存储起来。这样可以减少数据的读写次数。并且这块空间在创建的时候就会被分配内存空间,也会减少动态分配内存空间的次数二、Buffer属性1、buffer结构capacity(容量): 表示缓冲区可以保存多少数据limit(极限): 表示缓冲区的当前终点position(位置

2021-06-20 00:56:41 436

原创 zookeeper启动:文件名、目录名或卷标语法不正确

解决:把Server.cmd中的%JAVA%修改为Java

2021-06-10 15:32:39 17897 3

原创 为什么HashMap的长度是2的整数次幂?

结论:1 提高计算效率;2 增大Hash扰动,减少Hash碰撞文章目录一、提高计算效率二、增大Hash扰动,减少Hash碰撞一、提高计算效率假设HashMap的长度是16。index1的计算是Java8之后获取索的位置。&运算比取余运算效率更高。但是二者结果又一致。 public static void main(String[] args) { int size = 16; String key = "gosaint"; int h = key.hashCode();

2021-05-25 10:00:56 222

转载 详解布隆过滤器的原理,使用场景和注意事项

文章目录前言一、什么是布隆过滤器二、实现原理HashMap 的问题布隆过滤器数据结构支持删除么如何选择哈希函数个数和布隆过滤器长度前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和

2021-05-12 15:41:38 312

原创 ASM模拟AOP(计算方法执行时间)

ASM模拟AOPmaven依赖目标实现逻辑实现ClassVisitor和MethodVisitor增强输出class测试ASM是一个通用的Java字节码操作和分析框架。它可以直接以二进制形式用于修改现有类或动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。maven依赖 <dependency> <groupId>org.ow2.asm</groupId>

2021-04-01 18:46:26 344

原创 长生命周期对象持有短生命周期对象的引用有可能发生内存泄漏(老年代引用新生代)

具体类别1、静态集合类引起内存泄漏public class Test01 { static Vector v = new Vector(10); public static void main(String[] args) { for (int i = 0; i < 100; i++) { Object obj = new Object(); v.add(obj); obj = nul...

2021-04-01 16:21:44 1455

原创 CopyOnWriteArrayList原理

文章目录一、 CopyOnWriteArrayList介绍二、 CopyOnWriteArrayList原理三、 CopyOnWriteArrayList 属性介绍四、 构造器以及添加add方法五、 get(int index)六、 remove(int index)七、 遍历本文基于jdk-11.0.9.101-hotspot一、 CopyOnWriteArrayList介绍它相当于线程安全的ArrayList。和ArrayList一样,它是个可变数组;但是和ArrayList不同的时,它具

2021-03-26 14:36:11 29917 2

原创 一 线程基础

文章目录一、并行和并发二、进程和线程1.进程1.1 进程概念1.2 API操作2.线程2.1 线程概念2.2 线程调度2.3 多线程优势三、创建线程1.继承Thread2.实现Runnable3.匿名内部类四、Runnable和Thread的区别一、并行和并发并行:是指并排行走或者同时实施。是指两个或者多个事件同时发生。并发:同时发生,可是和并行不一样的是在宏观层面上来看是同时发生,微观上其实还是交替执行。是指两个或者多个事件在同一事件片区执行。宏观上看起来同时执行。并发是两个队列交替使用一台咖

2021-03-24 19:07:27 14515

Github基于Java的Rpg游戏

Github基于Java的Rpg游戏

2024-03-18

FMG-win32-x64.zip

架空地图本地windows安装,自由绘制。用于模拟战争,国家等信息。github下载速度比较慢。

2020-08-27

gpg4win-3.1.11.exe

GpG4加密工具。用于软件和资源加密操作。通常在jar上传maven中央仓库的时候使用。

2020-07-22

JPA培训笔记

JPA开发技术,详细的介绍了JAP的原理以及demo.结合Spring data jpa

2018-05-11

空空如也

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

TA关注的人

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