自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

与望

你不会找到路,除非你敢于迷路。

  • 博客(313)
  • 资源 (6)
  • 收藏
  • 关注

原创 启动 WSL 2时报错“参考的对象类型不支持尝试的操作”

启动 WSL 2时报错“参考的对象类型不支持尝试的操作”。或者是:占位程序接收到错误数据一番搜索 发现说和代理有关。

2023-08-17 23:08:31 881

原创 ThreadPoolExecutor源码详解

谈到池化,通常我们会想到线程池、连接池、对象池等池子。在Java线程池通常指的是。

2023-08-12 11:59:48 185

原创 【探讨】Java POI 处理 Excel 中的名称管理器

最近遇到了一些导表的问题。原本的导表工具导不了使用名称管理器的Excel。首先我们有两个Sheet。B1用的是名称管理器中的AAA, 而B2用的对应的公式。第二个sheet,名为Test2:这意味着无法解析这个命名统计后的值。为啥公式可以执行。但是从名称管理器拿不到?是否可以通过拿名称对应的公式来计算出相应的结果?这么看来RichString可以拿到我们想要的值。但是当我把Sheet2中对应的值改为数字:这里我想拿到一个可以区分是Name还是Formula的属性。

2023-07-28 10:05:02 1628

原创 fastutil简单测试下性能

简单测试一下fastutil的实现和Java类库实现的速率。使用jmh进行测试。简单解释一下,每轮测试预热2次,每次1s;实测2次,每次1秒。进行5轮测试。数组大小3种。

2023-07-27 11:56:55 309

原创 Github中Contribution activity不展示commit相关的信息

Github中Contribution activity不展示commit相关的信息

2023-04-19 16:01:56 359 1

原创 IDEA使用AWS CodeWhisperer

IDEA2023.1安装AWS codewhisperer。

2023-04-14 15:00:36 5429 1

原创 fastjson2中Json下划线转Java驼峰命名

fastjson2中Json下划线转Java驼峰命名。

2023-02-22 09:51:27 2548

原创 Vim文本对象中的句子s、段落p

引言使用了快半年的ideaVim了,是时候反馈社区了~~vim文本对象中大部分的文本对象都很容易理解。本文主要针对的是其中比较少用和比较难理解的句子和段落,进行代码的展示和理解。参考文献vim帮助文档正文这里我们需要先了解他们的定义:句子s一个句子以 ‘.’、’!’ 或者 ‘?’ 结尾并紧随着一个换行符、空格或者制表符。结束标点和空白字符之间可以出现任何数量的闭括号和引号: ‘)’、’]’、’"’ 和 ‘’’。段落和小节的边界也视为句子的边界。如果 ‘cpoptions’ 包含 ‘J

2022-02-28 11:12:47 620

原创 Vim快速选中一段方法/函数

引言使用了快半年的ideaVim了,是时候反馈社区了~~正文在方法中跳到方法开始的地方:[m进入行选中模式:shift + v匹配整个方法:%后言如果有更好的方法请留言赐教~~

2022-02-25 18:04:08 1400

翻译 Java17 switch表达式

Java 17关于switch新增一些便利的写法。本文是基于谷歌翻译后调整的译文。

2021-12-13 14:27:48 5593

翻译 JAVA record

Java17发布的新特性record,基于谷歌翻译再大致改下不通畅的地方。

2021-12-13 11:48:40 15146

原创 JAVA热更新

引言知识储备先看这篇文章:JAVA Instrument在这个案例中我们会利用Instrument机制实现一个简单的热更新案例。总体来说,步骤如下:创建一个带permain方法的jar包。这个方法定时检测某个文件然后进行热更新。命令行启动业务类时使用参数-javaagent,例如java -javaagent:jarpath[=选项] Main。网上有很多案例都是用Maven打jar包的,但是这里我讲的是纯命令行的做法。代码实现结构如下这个是编译后的结构,这里先从逻辑实现说起。1.

2021-11-02 13:46:33 3667

翻译 【翻译】JAVA Instrument

概述Package java.lang.instrument: 提供允许Java编程语言代理检测JVM上运行的程序的服务。检测机制是修改方法的字节码。其中包含两个接口:ClassFileTransformerInstrumentation一个类:ClassDefinition以及几个异常类:IllegalClassFormatExceptionUnmodifiableClassException使用方式命令行启动:java -javaagent:jarpath[=选项]

2021-10-29 16:27:32 478

原创 【案例】Netty客户端从控制台读取内容发送到服务端

引言最近在看《Netty实战》,其中一个案例是一个回显的客户端/服务端实现。这个以前在用原生jdk时是经典的案例。但是唯一的区别在于以前是从控制台读取输入。这个就是一个实现从控制台读取输入的案例。服务端import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;i

2021-10-28 09:03:58 560

原创 【异常处理】rocketmq /lib/ext is not supported. Use -classpath instead.【rocketmq】

前言JAVA的版本是11的,在安装rocketmq时会报错,当下报了这个错:wyw@weiyuwang-ubuntu:~/Downloads/rocketmq-all-4.9.1-source-release/distribution$ sh bin/mqnamesrv-Djava.ext.dirs=/jre/lib/ext:/home/ligang/Downloads/rocketmq-all-4.9.1-source-release/distribution/bin/../lib:/lib/ext

2021-08-29 14:45:36 665

原创 一次SpringBoot定时任务优化

前言有些以前工作时写的博文,没有同步到博客过来。这一篇可能是1年多前写的,希望能给读者一些启示。我们是多款游戏公用一个数据后台,通过不同的配置区分不同的游戏和环境。通过指定application.properties的spring.profiles.active来决定读取哪套配置。例如我们需要发布到代号为sfish下的prd环境就选择spring.profiles.active=sfishlyprd,同时我们的配置文件在resources/config下有application-sfishlyprd.

2021-08-24 18:03:56 551

原创 一次JAVA内存泄露排查

前言有些以前工作时写的博文,没有同步到博客过来。这一篇可能是1年多前写的,希望能给读者一些启示。首先要介绍下项目的背景。我们的项目是部署到tomcat的,一个tomcat下有若干的Java项目在跑,我们发现在每次重新部署(把war包直接丢进webapps目录下)项目时经常会出现长时间卡顿等现象,并且后续的解决方案一般是重启tomcat。这个是我做的一次排查尝试。1. 首先开启tomcat manager界面。具体步骤为:/tomcat/conf/tomcat-users.xml添加:&lt

2021-08-24 10:58:37 331

原创 Java获取对象的内存地址

前言我们知道在Java中对于synchronized对于同步方法锁的是当前的实例对象。例如以下这段代码:import java.util.concurrent.TimeUnit;public class Test { public static void main(String[] args) { Test test = new Test(); test.helper(); } public synchronized void helper

2021-08-02 21:51:17 6025 3

原创 synchronized锁定的对象

前言现在在复看一遍《Java并发编程的艺术》,其中有段话如下:Java中的每一个对象都可以作为锁。具体为:普通同步方法,锁是当前实例对象。静态同步方法,锁是当前类的Class对象。同步方法块,锁是括号内配置的对象。一直没有验证,今天验证下。正文测试代码很简单,就是打印一句话,然后休眠5s。分3中情况看看不同的dump信息。普通同步方法import java.util.concurrent.TimeUnit;public class Test { public stati

2021-08-02 21:07:00 713 3

原创 skynet源码分析 make

文章目录skynet源码分析 make前言正文platform.mkMakefilejemallocskynet附录skynet源码分析 make前言本文的版本选择的是skynet v1.4.0。编译skynet不可以避免的就是make。本文就具体看看make相关的实现。关于make可以参考 阮一峰的网络日志。另外本文只涉及最上层的Makefile,对于子目录下的Makefile就不做分析了。附录是一些GCC的参数。正文当我们在skynet目录下执行make linux实际上我们就是在执行

2021-07-23 23:25:11 498

原创 Makefile |

Makefile |前言在学习skynet项目中的Makefile时,遇到以下这个语句时不是很明白:3rd/jemalloc/Makefile : | 3rd/jemalloc/autogen.sh cd 3rd/jemalloc && ./autogen.sh --with-jemalloc-prefix=je_ --enable-prof百度时也搜不到相关的消息,现在大概了解了相关的意思,写个博文记录下。正文谷歌中发现了官方的文档:https://www.gnu.org/

2021-07-22 22:55:11 164

原创 LUA实现数据结构:定长队列

前言之前发过一篇博文是关于双端队列的。这次的定长队列就基于上次的结构进行改造。LUA实现数据结构:双端队列这种数据结构在游戏可见各种记录。例如抽奖记录会不断的更替,后面产生的记录会替代先前的记录。客户端展示的时候可能需要展示10条,但是你这边存应该存20条之类的。代码定长队列实际上是个FIFO的队列,一端进一端出,同时队列的大小固定:在原本的基础上我们增加了length表示队列当前的长度,一个max_length表示队列的最大长度。当入队时判断是否大于max_length,大于的话就把先进

2021-04-08 10:36:40 444

原创 LUA实现数据结构:双端队列

前言lua内置的数据结构总的来说就一个:table。然而很多时候我们的业务需要各种各样的结构,这些结构都能基于table来写。双端队列的方法双端队列提供的方法主要有几种:左进左出右进右出在《programmer in lua》中提供了这样的结构:function listNew() return {first = 0, last = -1}endfunction pushFirst(list, value) local first = list.first - 1 l

2021-04-02 16:01:06 318

原创 ImportError: DLL load failed while importing _sqlite3: 找不到指定的模块

前言在学习Django遇到了上面这个问题。需要交代下背景python用的anaconda安装的。查阅结论查阅了相关的资料可以得出这个结论:python 内置了这个模块,而anaconda没有解决方法是将一个名为sqlite3.dll的文件放到DDLs目录下:D:\anaconda\DLLs衍生出了这些解决方案。解决方案plan A:在目录D:\anaconda\Library\bin下我发现了这个文件 复制到上述的目录下,程序可以正常启动。plan B:下载一个。网址:htt

2021-03-07 00:28:47 10540 21

原创 LUA在列表的循环中移除元素

前言在code的时候想到这个案例:local t = {1, 2, 3, 4, 5}for i = 1, #t do if i == 3 then table.remove(t, i) end endfor i = 1, # t do print(t[i])end不知道在LUA程序表现的效果是怎么样的。因为通常是不支持在循环中进行元素的删除操作。这种操作放到其他语言可能会抛异常。例如在JAVA中这种操作是不支持的,在迭代器中才能正确的删除。结论跑了一下,发现能正常跑:1

2021-02-02 10:19:16 1767

原创 声明变量的好处

前言最近在复读《C Primer Plus》其中有一部分内容给出了声明变量的好处。了解我的读者应该知道我之前使用的主语言是JAVA,要使用一个变量那必然需要事先声明,这是毫无疑问的事情。所以当然从来也没有思考过为什么要声明变量~现在流行的语言Python允许不声明变量直接使用。类型有强弱之分,这里也思考下强弱类型在声明的时候有哪些好处。正文C Primer Plus的原文提炼把所有变量放在一起可以让读者更容易掌握程序的内容。给变量起个有意义的名称。例如次数times会比一个a更加容易

2020-12-27 18:31:56 553

原创 第一次运行skynet

前言说实话,skynet我从来没有接触过,就连lua也只是看了些基础,C也是五年前上课的时候学过一学期。但是我相信我能完成这些挑战。前一节已经是安装完skynet了。这一节摸索下skynet的启动。在项目README.md中我们可以看到作为安装成功后的测试步骤为:Run these in different consoles:./skynet examples/config # Launch first skynet node (Gate server) and a skynet-master

2020-12-08 15:21:01 466

原创 安装skynet以及一些异常的处理

安装skynetstep1 : 克隆git库:git clone https://github.com/cloudwu/skynet.git这一步可选。切换版本,项目使用的版本是:fd1b230,也就是:V1.0.0 rc5git checkout `fd1b230`step2 : 进入目录skynet-1.0.0,执行命令:make linux原本的目录为:安装完成后:比较发现多了cservice和luaclib和skynet这三个。可能遇到的异常:/bin/sh: .

2020-12-08 15:05:50 1362

原创 windows consul的安装

第一步:官网下载https://www.consul.io/downloads第二步:解压安装第三步:运行打开当前路径下的命令行:一个方式是这样:另一个是按住shift右键打开。再或者添加到环境变量PATH中。尝试以下命令查看版本:consul --version跑起来:consul agent -dev...

2020-09-24 16:38:47 144

原创 IDEA 删除SVN文件

前言昨天发生了一个比较悲剧的事情。有一个需求是删除掉项目中的一些模块,主要是两个工作,一个是大块的删除文件,一个是删除这些文件的引用。我在IDEA/PyCharm删除完本地的文件后修改一些文件然后进行了SVN的提交。然后进行了一次更新。(这里我提交前知道没有其他人会提交)然后悲剧的发现我删除掉的文件全部回来了。。。问题原因在IDEA中直接删除是删除掉了本地的文件,而SVN发现这些东西缺失就下载回来了。解决方案摸索了一下,找到了这样的解决方案(不确定是否最佳):打开最下面的版本控制窗口,查

2020-09-22 09:49:31 4053

原创 记录一个LUA时间相关的坑

前言最近在做游戏里的活动配置需求,上线后有一天运营和我说配置的时间没有失效,而在QA时明明测试过功能是正常开启的。为此我查询了一番log,发现其中的奥秘,并直呼:坑。事故现场其实就是一个LUA里的时间转 Unix时间戳的问题,先看以下这段代码:date = os.time({year=2020,month=8,day=31,hour=0,min=0,sec=0})print(date)-- 1598803200然鹅,如果不了解LUA的源码可能就会踩到以下的这个坑:local date =

2020-09-08 22:38:32 769

原创 -bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

前言在vmvare虚拟机下通过 rpm安装jdk,首次安装的时候选错了jdk类型导致后续安装失败。首次下载的安装包为:jdk-8u261-linux-i586.rpm安装时报错,后下载:jdk-8u261-linux-x64.rpm安装时没有提示错误,但是安装后调用:-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录解决办法:先重新安装第一个包,发现相关的提示是 xxx 已经安装,这时候用r

2020-07-15 09:05:52 813

原创 lua实现堆排序

堆排序:local function swap(t, i, j) local temp = t[i] t[i] = t[j] t[j] = tempendlocal function heapInsert(t, i) -- i 下标的 父下标为 i / 2 while i > 1 and t[i] > t[i // 2] do swap(t, i, i // 2) i = i // 2 endend

2020-06-12 16:33:31 651

原创 lua string.split 类似JAVA中的string方法

function string.split(s, delimiter, limit) limit = limit or math.maxinteger local res = {} local pos = 0; for vstart, vend in function() return string.find(s, delimiter, pos, true) end do if #res >= limit then return res end

2020-06-11 10:37:00 281

原创 lua string.trim 类似JAVA中的string方法

lua中没有string.trim函数,实现上用模式匹配进行替换。这里gsub返回的是两个值,用括号可以只返回一个数据。function string.trim(s) return (s:gsub("^%s+", ""):gsub("%s+$", ""))endprint( string.trim(" abcdef gabegs "))...

2020-06-10 16:18:37 986 1

原创 svn打开仓库慢

SVN打开仓库很慢,显示 svn please wait while the repository browser is initializing在 settings中 → Log Caching → Power user defaults

2020-06-10 10:42:01 1080

原创 lua string.indexOf

在lua中没有string.indexOf方法,取而代之的是一个string.find方法,string.find是一个很强大的函数,但是在这里我只展示一个可以直接用的。需要注意的是lua中字符下标是从1开始。function string.indexOf(s, pattern, init) init = init or 0 local index = string.find(s, pattern, init, true) return index or -1;endprin

2020-06-08 18:09:56 2538

原创 linux手动安装ldoc

下载包:https://github.com/stevedonovan/LDoc/releases安装:tar -xzvf LDoc-1.4.6cd LDoc-1.4.6sudo make install# 测试Penlight和LDoc是否成功lua ldoc.lua tests/example/tests/modtest.lua注意安装LDoc需要先安装Penlight:...

2020-05-06 13:46:49 244

原创 linux手动安装Penlight

Penlight下载安装包:https://github.com/Tieske/Penlight/releases安装步骤:tar -xzvf Penlight-1.7.0cd Penlight-1.7.0cd luasudo cp -R p1/ /usr/local/share/lua/5.3/# 测试luafilesystem是否安装成功lua run.lua example...

2020-05-06 13:42:27 355

原创 linux手动安装luafilesystem

首先是下载安装包:https://github.com/keplerproject/luafilesystem/releases/总体来说就是这几步:tar -zxf luafilesystem-1_8_0cd luafilesystem-1_8_0makesudo cp src/* /usr/local/share/lua/5.3/sudo cp src/* /usr/local/...

2020-05-06 13:40:22 487

探讨Java POI 处理 Excel 中的名称管理器 示例的excel

【探讨】Java POI 处理 Excel 中的名称管理器 示例的excel

2023-07-28

手动安装ldoc需要的安装包

linux下手动安装ldoc相关的安装包:https://yuwang.blog.csdn.net/article/details/105949269

2020-05-06

Do+JSON+with+Jackson+by+Baeldung.pdf

Baeldung 的jackson教程。写的非常详细。官网下载可能需要科学上网,还要通过邮件等操作。

2020-01-08

微信小程序数学题库代码

https://blog.csdn.net/saywhat_sayhello/article/details/80110735 配合文章食用

2018-04-27

微信小程序数学题库

https://blog.csdn.net/saywhat_sayhello/article/details/80110735。配合文章使用。是题库!是一张张由选项和题目构成的题库。

2018-04-27

设计模式期末作业(要求5个以上的设计模式的模拟系统)

这是我的设计模式作业:运用5个以上的设计模式创建一个系统。其中包括:1.单例模式 2.原型模式 3.抽象工厂模式+模板方法模式 4.代理模式 5.策略模式 详见博文:http://mp.blog.csdn.net/mdeditor/index/78696300

2018-01-24

Struts-2.5.14.1 项目最小需求jar包

Struts2 项目最小需求jar包 Struts-2.5.14.1 项目最小需求jar包。

2017-12-11

空空如也

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

TA关注的人

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