自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一百度的风的博客

我不生产代码,我只是代码的搬运工~

  • 博客(46)
  • 收藏
  • 关注

原创 uid 生成器(数据区主键)

随件字符。数字

2022-12-15 17:31:10 610 1

原创 varchar与char区别,以及最大长度

varchar与char区别

2022-08-26 15:14:02 3211

原创 java8 Date与LocalDataTiem工具类

java日期时间工具类

2022-08-10 11:01:16 265

原创 Collection,Map与String互相转换

集合,Map与String互相转换

2022-08-04 17:33:50 1131

原创 ReentrantReadWriteLock读锁作用

为什么要有读锁

2022-08-02 15:38:41 336

原创 集合排序 List.sort

集合排序

2022-07-29 15:46:07 644

原创 用状态压缩来表示游戏中宝箱领取状态

如何使用状态压缩来表示宝箱领取状态

2022-07-26 15:50:14 810

原创 Redis分布式锁-基于jedis

redis分布式锁-jedis实现

2022-07-10 22:21:23 182

原创 常用SQL语句

常用sql语句整理

2022-07-09 21:29:54 86

原创 百度词库bdict转txt

import structimport binascii class Baidu(object): def __init__(self, originfile): self.originfile = originfile self.lefile = originfile + '.le' self.txtfile = originfile[0:(originfile.__len__()-5)] + 'txt' self.buf

2021-12-21 10:41:12 863

原创 苹果内购 订单验证 21002 坑

苹果官方文档上说:要从设备上的 app 检索收据数据,请使用 NSBundle(英文) 的 appStoreReceiptURL(英文) 方法来找到 app 的收据,再对该数据进行 Base64 编码。接着将这个以 Base64 编码的数据发送到您的服务器。意思是,客户端拿到收据receipt数据后,要进行Base64加密后,发给服务器,然后服务器再向App Store进行验证,但是客户端拿到的收据数据其实是已经加密过的,再次加密就会收到 App Store 返回的21002错误码...

2021-12-02 11:50:43 5577

原创 Java自带工具

jps (JVM Process Statues Tool)看当前用户下的java进程的pid及基本信息格式:jsp[options][hostid]options-q 显示进程id-m 显示进程id,主类名称,以及main方法的参数-l 显示进程id,主类全名-v 显示进程id,主类名称,以及传入JVM的参数-V 显示进程id,主类名称[-mlvV] 可以任意组合使用hostid主机或者服务器ip,不指定默认为当前的主机或是服务器jstat (JVM Statistic

2021-11-25 20:29:15 450

原创 log4j-logback-slf4j

预览1. log4j1.1 基本用法1.2 配置 logj.properties1.2.1 logger1.2.2 appender1.2.3 layout1.3 log4j完整配置示例2. 门面模式3. slf4j与log4j联合使用4. 开发技巧4.1 选择恰当的日志级别4.2 日志级别较低时,进行日志开关判断4.3 使用参数占位`{}`,而不是用`+`拼接4.4 不要使用e.printStackTrace()4.5 禁止在线上环境开启 debug4.6 日志文件分离1. log4j1.1 基本用法

2021-10-01 17:53:55 552

原创 Java8-Optional类简单使用

// Optional类简单实用 public static void main(String[] args) { testOptional(null); System.out.println("分割线--------------------------"); testOptional("qw"); } // 在不能保证参数是否为空时 public void testOptional(String str) { .

2021-04-01 23:11:17 119

原创 Netty-聊天室

1. 实例要求编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过 channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发 得到)目的:进一步理解 Netty 非阻塞网络编程机制2. 代码GroupChatServer.javapublic class GroupChatServer { // 监听端口 private int p

2021-03-11 16:15:52 238

原创 NIO-聊天室实现

案例要求:编写一个 NIO 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过 channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发 得到)目的:进一步理解 NIO 非阻塞网络编程机制NIOChatServer.javaimport java.io.IOException;import java.net.InetSocketAddress;import java

2021-02-25 17:02:28 154

原创 NIO-Client&Server

案例要求:编写一个 NIO 入门案例,实现服务器端和客户端之间的数据简单通讯(非阻塞)(客户端写 服务端读)目的:理解 NIO 非阻塞网络编程机制NIOClient.javaimport java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SocketChannel;import java.util.Scanner;/**

2021-02-24 20:26:49 171

原创 java-redis排行榜value+time排序

本文预览需求思路代码总结需求做一个送花排行榜根据玩家送花数量倒叙排列送花数量相同时,先送花的在前面思路用redis存取数据,自动维护有序集合 。但值一样时,无法保证谁在前谁在后。所以可以把存入的时间考虑进去。这样排序就变成了: 数值 + 时间。因为送花数量是整数,那能不能把时间变成小数加在后面呢,这样取数据的时候,直接取整就是原始数据了。公式:newValue = value + 1 - time / Math.pow(10, (int) Math.log10(time) + 1d

2021-01-09 18:54:21 548 1

原创 Java-双亲委派机制

目录双亲委派机制双亲委派机制优势工作原理破坏双亲委派模型双亲委派机制某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。双亲委派机制优势采用双亲委派模式的是好处是Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。其次是考虑到安全因素,java核心api中定义

2020-12-25 15:22:08 3402 1

原创 单例模式:饿汉式与懒汉式

目录单例模式介绍实现方式饿汉式懒汉式synchronized 加锁双重检查锁 (Double Checked Locking)静态内部类枚举单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己

2020-12-24 21:33:53 141

原创 git中.gitignore文件的使用

目录1 写在前面2 .gitignore不生效3 过滤规则单语句举例:多语句规则易错点修改 .gitignore 文件之后1 写在前面在项目开发过程中,难免会生成一些中间文件。很多时候一个项目包含多个文件,当借助git工具进行版本控制时,如果一个一个添加太麻烦,通常是采用git add .语句将项目中的所有文件一次性添加,此时就会出现将一些不需要的中间文件上传到仓库的情况。在这个时候.gitignore文件的忽略规则就能起到很大的帮助,借助其忽略规则,我们可以把不想提交的文件都过滤掉。ps:在gi

2020-12-24 10:27:28 472

原创 Java-类加载器

https://blog.csdn.net/javazejian/article/details/73413292https://www.cnblogs.com/czwbig/p/11127222.html目录写在前面类加载类加载过程类加载器Java提供的三种加载器虚拟机自带的加载器启动类加载器(引导类加载器,Bootstrap ClassLoader)扩展类加载器(Extension ClassLoader)应用程序类加载器(系统类加载器,AppClassLoader)用户自定义类加载器类的唯一性双亲

2020-12-14 23:31:08 892 1

原创 Homebrew-Mysql-Redis

文章目录Homebrew 介绍安装 Homebrew常用参数安装Mysql登录mysql安装Redis登录redisHomebrew 介绍Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。安装 Homebrew终端下操作。因为墙的原因,下面是我从网上找的国内可以使用的镜像资源。$ /bin/zsh -c "$(curl -fsSL https://git

2020-12-10 18:25:03 241

原创 TCP 长连接 短连接 保活机制keepalive

当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接 时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的TCP 短连接我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发

2020-11-27 15:20:28 1044

原创 TCP 三次握手 四次挥手

什么是TCPTCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务端保存的一份关于对方的信息,如ip地址、端口号等。TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。一个TCP连接由一个4元组构成,分别是两个IP地址和两个端口号。一个TCP连接通常分为三个阶段:连接、数据传输、退出(关闭)。通过三次握手建立一个链

2020-11-26 15:31:00 433

原创 什么是哈希Hash

为什么要有哈希?假设我们要设计一个系统来存储将员工手机号作为主键的员工记录,并希望高效地执行以下操作:插入电话号码和相应的信息。(插入)搜索电话号码并获取信息。(查找)删除电话号码及相关信息。(删除)我们可以考虑使用以下数据结构来维护不同电话所对应的信息:数组链表平衡二叉树(红黑树等等)直接访问表对于数组和链表而言,我们需要以线性的方式进行查找,这在实际应用中代价太大;如果我们使用数组且保证数组中电话号码有序排列,那么使用二分查找可将查找电话号码的时间复杂度降到O(logN),但同.

2020-11-20 17:51:46 1105

原创 Java-Stream distinct 去重

写在前面distinct()返回由该流的不同元素组成的流。distinct()是Stream接口的方法。distinct()使用hashCode() 和equals()方法来获取不同的元素。因此,我们的类必须实现hashCode()和equals()方法。对象去重代码实例 未重写hashCode()&equals()public class Student { private String name; private int age; private int type

2020-11-11 19:19:38 3747 2

原创 Java-TreeSet HashSet 去重原理

Set集合的特点是具有唯一性,那么具体是如何实现的呢,下面将要讨论。Set 去重原理继承图 |-- SortedSet接口-----TreeSet实现类set接口------|-- HashSet实现类 |-- LinkedHashSet实现类源码中 Set.java 定义了 add() 的抽象方法,具体实现需要看 TreeSet 和 HashSet 的实现// @return true if this set did not already co

2020-11-11 15:56:38 1057 2

原创 Java-Random类和Math.random方法

Random类包路径:java.utilimport java.util.Random; public class MyTest { public static void main(String args[]) { Random random = new Random(); //以系统当前时间作为随机数生成的种子 System.out.println(random.nextInt(100)); //返回一个[0,100)之间的整数 Sy

2020-11-03 15:14:32 469 1

原创 Cocos2d-x3.x Node源码学习

介绍节点是场景图的基础元素。Node类继承自Ref类。场景图的元素必须是Node对象或它的子类。最常见的Node对象是:Scene,Layer,Sprite,Menu,Label。节点的主要特征是:它们可以包含其他节点的对象(addChild,getChildByTag,removeChild等)他们可以安排定期的回调(schedule,unschedule,等)他们可以执行动作(runAction,stopAction,等)函数解读:public functions //

2020-08-08 20:38:42 232

原创 lua元表元方法之__index&__newindex

元表(metatable)Lua中每个值都有一个元表。table和userdata可以有各自独立的元表,而其他类型的值,则共享其类型所属的单一元表;元表本身就是一个常规的表,任何人、任何函数都可以使用它们;一个tabel可以作为自己的元表在Lua中只能设置table的元表,其他类型的值的元表,必须通过C代码来完成;新创建的表table没有元表;两个很重要的函数: -- 对指定表t设置元表mt,如果mt中存在 __metatable 键值,setmetatable 会失败。 s

2020-08-07 09:58:50 562

原创 cocos2dx各个类的继承与派生关系

CCObject类这个类是其他大部分类的基类。主要三个功能:引用计数器,进行内存计数,设定友元类CCAutoreleasePool来对CCObject实例的对象内存进行管理;通过脚本ID访问相应的脚本;定义了一些宏来取得回调函数的指针,包括了定时器响应、普通回调函数、菜单响应函数、事件响应函数。所以,在许多类中,如创建一个sprite,可以使用static类型的creat()函数创建( 这种方法叫静态工厂,比较方便,避免内存泄露):CCNode类cocos2d-x是树状继承,则此类是所有节

2020-08-06 18:23:25 542

原创 cocos2dx-lua 序列帧动画Animation

简介Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。我们使用Animation类描述一个动画,而精灵显示动画的动作则是一个Animate对象。动画动作Animate是精灵显示动画的动作,它由一个动画对象创建,并由精灵执行。需要了解的几个类:SpriteFrame:精灵帧类。精灵帧包含了对应纹理在大的纹理区域中的位置和大小,

2020-08-06 17:06:04 1165

原创 lua-求两数组的交集并集

本文使用的方法是元表local res = {}-- 元表local mt = {}-- 数组转化成键值对tableres.new = function(list) local tab = {} setmetatable(tab, mt) -- 设置元表 for _, v in pairs(list) do tab[v] = true end return tabend -- 交集 a,b为键值对形式的tableres.union

2020-08-05 15:30:01 1692

原创 pngquant&tinypng 使用教程

介绍pngquant是一个命令行工具和一个用于有损压缩PNG图像的库。转换显着减少文件大小(通常高达70%),并保留完整的alpha透明度。生成的图像与所有网络浏览器和操作系统兼容。官网:https://pngquant.org/GitHub源码:https://github.com/kornelski/pngquant下载forWindows:https://pngquant.org/...

2020-04-27 00:37:41 2455

原创 cocos eventDispatcher 事件分发机制

简介cocos的事件分发机制,先创建事件,然后注册到事件管理中心_eventDispatcher,通过发布事件得到响应进行回调,完成事件流。_eventDispatcher是Node的属性,通过它管理当前节点(场景、层、精灵等)的所有事件的分发。但它本身是一个单例模式值的引用,在Node的构造函数中,通过Director::getInstance()->getEventDispatch...

2020-04-11 10:19:19 1156

原创 cocos-lua 贝塞尔曲线 抛物线

简介贝塞尔曲线(Bézier curve)又被称为贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线,它的数学基础是伯恩斯坦多项式(Bernstein polynomial,since 1912),1959年法国数学家Paul de Casteljau提出了数值稳定的de Casteljau算法,开始贝塞尔曲线的图形化应用研究,而贝塞尔曲线的名称来源于一位就职于雷诺的法国工程师Pierre...

2020-04-09 14:57:02 3023

原创 lua 颜色:十六进制转十进制

获取 rgb格式的颜色 #996c33 ----> cc.c3b(153, 108, 51),cc.c4b(153, 108, 51, 255)function getColorOfRGB(str) -- 去掉#字符 local newstr = string.gsub(str, '#', '') -- print("newstr is --"..newstr) -- 每次截取两...

2020-02-25 17:23:45 1776

原创 lua 数组随机排序

打乱有序数组,产生随机数组function randomTable(_table, _num) -- _table:需要随机的表(有序的),_num:随机个数,默认全部随机 local _result = {} local _index = 1 local _num = _num or #_table while #_table ~= 0 do l...

2020-02-12 10:47:09 1280

原创 lua 获取字符串长度

注意区分几种不同的字符。lua代码如下:function string.widthSingle(inputstr) -- 计算字符串宽度 -- 可以计算出字符宽度,用于显示使用 local lenInByte = #inputstr local width = 0 local i = 1 while (i<=lenInByte) do ...

2019-11-17 16:51:40 962

空空如也

空空如也

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

TA关注的人

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