自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zane的博客

衣带渐宽终不悔,为伊消得人憔悴——学无止境

  • 博客(17)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 Golang + Laya引擎实现的简易版“球球大作战”小游戏

开发动机学习Golang语言以来,先后实现了个人博客,生活美食推荐系统,以及一些如日志收集工具等开发能用到的小工具,但还没写过游戏。前不久,利用闲暇时间,写了套简易的分布式游戏框架,心想写好了不投入实践使用,不能看到效果啊,所以决定写一个小游戏案例来玩一玩!技术支持服务器框架只实现了简单的服务间通信,中心管理,游戏配置,网络传输层,db等功能,传输协议使用TCP + Protobuf ...

2019-09-30 14:52:31 1298 3

原创 设计模式遵循的六大原则

1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面...

2019-08-27 11:47:39 745

原创 Golang版本的log4j日志收集工具实现

前言大家如果使用过 Java 语言进行开发,就应该多少会用到Log4j系列日志组件工具,其格式化的输出方式深受大家喜欢,支持info,debug,error等分类打印,支持控制台、文件、以及利用 Log4j2 还能实现分布式日志收集等,对于后期维护、问题定位,提供了很好的支撑能力。Golang作为新兴语言,自然还没有像成熟的 Java 这么多的开源工具,但我想在 Golang 中也使...

2019-07-27 16:28:21 3072 1

原创 源码剖析来学习ConcurrentHashMap

为什么要分析ConcurrentHashMap(以下简称 CHM)呢?HashMap-HashTable,对Java熟悉的应该知道,HashMap操作高效,在平常工作时会经常用到,但它是无锁的,没考虑多线程环境,所以对于多线程环境下不适用,操作不安全,容易造成数据混乱,为此JDK特意出了一个HashTable的工具类,HashTable采用synchronized关键字修饰方法,使得多线程环境...

2019-06-10 14:29:40 184

原创 GO实现构建完全二叉树并实现层次、先序、中序、后序遍历的递归和非递归算法

一、树及节点定义/* 树 */type Tree struct { rootNode *TreeNode // 根节点确定一棵树}/* 树节点 */type TreeNode struct { nodeValue int32 Parent *TreeNode // 父节点,根节点没有 LNode *TreeNode // 左子节点 RNode *TreeNode ...

2019-05-09 15:55:50 1321

原创 Golang编写的爬取网页图片的小程序

学习Golang语言也有一段时间了,对Golang的一些特性和优点也了解了不少,工作闲暇之余写了个爬取网页图片的小工具玩,有喜欢的码友可以下载下来编译玩玩,项目代码路径:https://github.com/xiezhijun/spidderGO.git代码中主要是用 go 和 channel 配合使用,开启多个线程并发处理,一边爬取并解析网页,一边下载图片,如图所示: waitG...

2019-04-11 17:08:07 921

原创 Java自动热更class文件方案

1、需要准备一个更新文件目录 updateDir,已知的项目运行目录 classDir,备份目录 bakDir2、根据我上篇文章写的文件监听去监听 updateDir,如果发现该目录有新增文件,则去 classDir 找对应的class文件,同时备份到 bakDir,然后使用 Agent 代理的方式去重加载 class 文件进行热更替换;对于没有找到对应的 class 热更文件,可打日志或忽略...

2019-01-05 17:16:44 895

原创 Java实现监听文件变化的监听器

1、准备 commons-io 2.0 以上版本Jar包,这里我才用 Maven 库依赖<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version>&l

2019-01-05 16:52:09 14405 4

原创 Go语言实现简单的HashMap(string:string)

这是用Go实现的简单的Hash Map,类型是 string , string, 只实现了简单的 get、put、remove等方法,大家感兴趣的可以看一下。后面会跟进完善它,并且实现并发安全 Hash Map以及支持 泛型 的Hash Map,下面上代码:package HashMapimport ( "hash/crc32")// map of string typet...

2018-11-08 16:13:17 745 1

原创 Go语言实现简单的socket案例

最近利用空余时间学了一会Go语言,写了个简单的socket案例,不多说,直接上代码Server 端代码:package mainimport ( "fmt" "net")// 服务器地址:端口var serverAddress = "localhost:1234"func start() { acceptor,err := net.Listen("tcp", serv...

2018-11-02 11:58:05 709

转载 JVM原理讲解和调优

一、什么是JVM    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而

2018-05-09 10:24:22 138

原创 Windows安装Maven问题,M2_HOME is set to an invalid directory 的解决方案

Windows安装Maven问题,M2_HOME is set to an invalid directory 的解决方案

2018-04-26 11:18:37 7125

原创 ELK+log4j2实现分布式日志系统

ELK+log4j2实现分布式日志系统,本文内容不多,就简单介绍了下 ELK + log4j2 实现的分布式日志系统,可以实现多服务器日志收集任务,对于分布式应用中查找问题,分析问题,效率能得到很大提升,希望能帮到大家。

2017-12-01 15:28:15 2831

原创 自定义类加载器的问题

自定义类加载器的问题

2017-11-24 16:45:58 720

原创 Java8利用stream对集合的复杂操作(顺序处理,并行处理)

又是一个很平常的周六,习惯性地来到公司,中午看了会Java8实战,发现其中讲到Stream实现集合的复杂操作,于是自己动手写了个Demo,并测试了下效率。结果是并行处理的效率远远高于顺序处理。可能与我在公司用的电脑有关(我用的是8核)。话不多说,直接放代码:package xie.test.stream;import java.util.ArrayList;import ja...

2017-09-16 15:56:46 6611 1

转载 Android,iOS,Java,C#,C++,PHP,大数据等学习资料干货分享

作为一名程序猿,学习资料很重要。这篇文章包含许多编程语言及技术的学习视频,我自己为了方便学习把它记录下来,同时也方便大家能一起学习。

2017-09-07 15:47:32 2644 1

原创 Windows下编写shell脚本出现\r错误解决方法

使用Notepad++工具1、利用notepad++工具打开脚本文件2、在菜单栏找到“显示符号”下的“显示所有字符”,然后就可以看到换行符了,Linux下换行符为\n,而Windows下为\r\n,此时可看到为两个字符3、继续在菜单栏找到“编辑”选项下的“文档格式转换”,点击“转换为UNIX格式”,此时发现换行符只有一个字符了4、问题解决啦,测试脚本,运行通过

2017-07-05 16:15:25 2809

protobuf.exe 2.6.1

protobuf 2.6.1 编译器 protobuf.exe,适合于64位系统,将其放在proto文件同目录,运行即可编译,也可以用bat批处理protoc命令指定路径编译。

2017-12-05

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

TA关注的人

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