
javase
java基础
JavaGameServer
java游戏服务器
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【推荐!!!】用枚举实现多态(避免类内容过长爆炸)
【代码】【推荐!!!】用枚举实现多态(避免类内容过长爆炸)原创 2025-05-28 10:41:47 · 88 阅读 · 0 评论 -
迭代器iterator的使用
抽奖记录保留最近100条,其余多余的删除掉,如果使用for循环,其实稍微麻烦了,此时迭代器就很方便了。原创 2025-04-17 11:54:50 · 113 阅读 · 0 评论 -
NotNull告诉编译器这里不会是空,防止总是空指针提示
原创 2024-12-04 10:40:15 · 109 阅读 · 0 评论 -
java中浮点数Double的比较 Double.compare
【代码】java中浮点数Double的比较 Double.compare。原创 2024-08-28 09:47:32 · 644 阅读 · 0 评论 -
UTC时间设置
1)linux上设置下utc时间。2)java启动时是utc。原创 2024-08-07 16:58:11 · 301 阅读 · 0 评论 -
【泛型】学习笔记
【代码】【泛型】学习笔记。原创 2024-07-12 17:47:54 · 262 阅读 · 0 评论 -
IDEA远程Debug java程序
1)服务器启动时就要打开远程debug端口。2)在idea中添加一个远程debug命令。3)点击调试按钮进行运行即可。原创 2024-05-16 18:47:13 · 242 阅读 · 0 评论 -
字符串拼接性能对比(Double.compare存一个类最快,不要存String)
因此推荐: new StringBuilder().append(x)....toString()方式。原创 2024-04-29 15:37:18 · 370 阅读 · 0 评论 -
定点数: 用于浮点数的精确比较(左移16位)
定点数: 用于浮点数的精确比较(左移16位)int x = (int)(dir.x * (1 << 16));乘以65536倍,这样就ok了原创 2021-03-14 17:42:10 · 793 阅读 · 0 评论 -
0xff到底是多少(0x是16进制,f对应11111,因此是11111111,也就是2的8次方-1=255)
var a = 0xff;console.log(a); // 255/*ff也就是8个111111111 ->2的8次方-1*/分析:0x其实就是16进制,15*16 + 15 = 255或者:转化为2进制,就是8个1,因此也是255...原创 2019-07-29 11:07:58 · 32684 阅读 · 0 评论 -
win下:1.下载jdk 2.修改maven镜像 环境搭建
1)阿里云镜像<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>...原创 2021-03-14 16:08:46 · 115 阅读 · 0 评论 -
AtomicBoolean的使用
【代码】AtomicBoolean的使用。原创 2023-12-29 14:55:00 · 412 阅读 · 0 评论 -
【支持双向绑定的Map之BiMap】 1.forcePut 2.inverse
理解:我觉得还是用forcePut比较好。原创 2023-12-21 11:10:42 · 466 阅读 · 0 评论 -
通过泛型+接口实现多变的参数
【代码】通过泛型+接口实现多变的参数。原创 2023-11-30 15:14:18 · 451 阅读 · 0 评论 -
Table和HashBasedTable的使用案例
【代码】Table和HashBasedTable的使用案例。原创 2023-11-21 11:38:21 · 562 阅读 · 0 评论 -
体会jdk17对于空指针的增强
jdk17jdk11。原创 2023-10-07 15:11:50 · 871 阅读 · 0 评论 -
Java Unsafe类学习笔记
正如其名字,是不安全的,因为java语言层面是不允许直接操作内存的,为了扩展这个能力,引入了Unsafe类。4.class对象相关。6.对象操作,获取对象属性偏移,再操作。3.线程调度中Park和Unpark。2.cas中比较交换的cpu的指令。原创 2023-08-05 15:38:17 · 79 阅读 · 0 评论 -
巧妙使用System.exit(1)实现关服流程
【代码】巧妙使用System.exit(1)实现关服流程。原创 2023-08-03 16:38:02 · 102 阅读 · 0 评论 -
xdb和CompletableFuture学习笔记 死锁的思考
并不是真的把任务取消了,而是仅仅是一个标记,任务是否执行不一定,很可能执行了。标记完后,去拿结果,就会触发CancellationException。父任务再等待子任务执行,但是:有很多个父任务,把线程池占满了,但是又在等待子任务执行。子任务又没线程可执行,就死锁了。CompletionStage // 实现编排接口。解决办法:父任务 和 子任务 要用线程池进行隔离。4)runAsync 和 supplyAsync。如果任务已经完成了,那取消也没用了。1)可组合 + 异步。3)构建依赖树的过程。原创 2023-07-24 18:24:54 · 220 阅读 · 0 评论 -
Arrays.copyOf是浅拷贝
可见对于dst的修改,src也变了。原创 2023-07-17 10:24:16 · 110 阅读 · 0 评论 -
死循环排查
可以看出:一个线程在关服时,一直处于:运行状态。可以看出:cpu很高。原创 2023-04-17 15:53:11 · 111 阅读 · 0 评论 -
使用JavaAssist获取方法参数名
【代码】使用JavaAssist获取方法参数名。原创 2023-04-07 14:44:18 · 474 阅读 · 0 评论 -
理解弱引用
【代码】理解弱引用。原创 2023-04-06 21:21:57 · 257 阅读 · 0 评论 -
简单的链表
【代码】简单的链表。原创 2023-03-25 14:35:30 · 79 阅读 · 0 评论 -
BufferedReader进行文件一次读取一行字符串
【代码】BufferedReader进行文件一次读取一行字符串。原创 2022-12-31 11:48:44 · 772 阅读 · 0 评论 -
奇怪的文件路径问题(\ \\ / //等) getAbsolutePath与getCanonicalPath
不断地修改SERVER_PATH 和 PROTO_PATH,发现构造出来的路径千奇百怪,但是最终构造出来的File,发现都是存在的。其实,File内部有一定的纠错能力,如果不是标准的路径,会进行一定的处理。// 这种是报错的,\是特殊符号,因此需要写成 "\\"转义下才行。原创 2022-12-20 15:38:39 · 303 阅读 · 0 评论 -
Runtime 执行命令与StringTokenizer的知识
总结:StringTokenizer构造方法默认传入要处理的字符串,分隔符的话,默认使用 \t \n 空格等,这样子就可以解析出来了。在Runtime run = Runtime.getRuntime();进入exec内部,就可以看到对于命令会先进行分割。原创 2022-12-20 15:31:22 · 100 阅读 · 0 评论 -
【通过arthas实战Java线程的6种状态】
Java线程的6种状态及切换(透彻讲解)_潘建南的博客-优快云博客_线程状态原创 2021-10-09 10:44:55 · 522 阅读 · 0 评论 -
【java黑科技之-字节码的2种应用】1.javassist 2.agent(监控与调试)
毫无疑问,java最实用的一个就是“热更新”机制了,go语言再好,这点很难实现,java这一点就是非常牛逼的,不管你性能再高,热更新实现不了,在游戏服务器这里,绝对是硬伤。我觉得这就是java最牛逼的地方了,有了字节码这个中间层,我们能做的东西实在太多太多了,像go这种,我认为就只能适合写中间件了,做游戏这块,抽象能力差,热更新机制很难实现,那就不太适合了。比如:统计方法耗时,或者做任何你想到的增强功能,都是可以。自己手写的话,可以用于实现动态代理,动态增强类的功能。原创 2022-11-25 23:46:21 · 688 阅读 · 0 评论 -
深入理解类加载机制
【代码】深入理解类加载机制。原创 2022-09-05 00:46:57 · 234 阅读 · 0 评论 -
关于Exception e日志的打印
2.其它类型的需要打印详细信息的,则使用:void error(java.lang.String s, java.lang.Object... objects);1.对于异常的打印,使用:logger.error(String s, Throwable e),而且第1个参数写:""原创 2022-11-01 16:25:45 · 799 阅读 · 0 评论 -
使用位运算实现权限管理的数据存储
【代码】使用位运算实现权限管理的数据存储。原创 2022-10-20 15:29:52 · 284 阅读 · 0 评论 -
Object转泛型的坑
【代码】Object转泛型的坑。原创 2022-09-29 11:40:49 · 413 阅读 · 0 评论 -
构造方法引用
【代码】构造方法引用。原创 2022-09-22 14:57:33 · 108 阅读 · 0 评论 -
Serialiable接口和serialVersionUID的作用及其在redisson中的应用
2.serialVersionUID如果不指定,修改了代码后,如果直接读取class文件,可能会出现序列号冲突。1.Serialiable接口是标记型接口,是给人看的。原创 2022-08-22 10:41:37 · 788 阅读 · 0 评论 -
config文件夹+BufferedReader实现配置文件的读取
结论:1.直接运行java,则是位于项目路径下2,。打包后运行jar,则是和jar包同级目录下原创 2022-06-05 00:12:11 · 218 阅读 · 0 评论 -
jd-gui的使用
1)直接在github中下载jd-gui对应的jar包。2)搞好目录3)编写好运行脚本 jd-gui.sh#!/bin/bashcd `dirname $0`cd ..java -jar jd-gui-1.6.6.jarpause思考 :可以直接查看 jar包中的代码。可以实现代码的跳转。......原创 2022-04-29 17:07:06 · 5493 阅读 · 0 评论 -
汉字和英文字符对齐
package org.example.basic;public class Test3 { public static void main(String[] args) { info(1, "rtert书rterrterrterrtererterterrterr", 33.3f); info(22, "r书编te编书r", 45.5f); info(10000000, "哈f书编书编书编书书编书编编tererter", 20.3f); .原创 2022-04-13 18:38:54 · 716 阅读 · 0 评论 -
移位和10进制(用于游戏中互斥的状态表示)
public class Test16 { public static void main(String[] args) { int LOGIC_INVISIBLE1 = 0x10; int LOGIC_INVISIBLE2 = 0x0010; int LOGIC_INVISIBLE3 = 1 << 8; System.out.println(LOGIC_INVISIBLE1); System.out..原创 2022-04-02 11:27:20 · 3186 阅读 · 0 评论 -
@Data @AllArgsConstructor标记在Model上实现hash和equals和get set方法、构造函数
package org.example.testEqualsAndHashCode;import com.google.common.collect.Sets;import lombok.AllArgsConstructor;import lombok.Data;import java.util.Set;public class Main { public static void main(String[] args) { Set<ItemModel> .原创 2022-03-31 20:09:46 · 266 阅读 · 0 评论