自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晚晴小筑

十日画一水,五日画一石

  • 博客(1203)
  • 资源 (59)
  • 论坛 (9)
  • 收藏
  • 关注

原创 Spring 自定义标签的解析

NamespaceHandlerResolver:根据命名空间URL找到标签解析器。public class DefaultNamespaceHandlerResolver implements NamespaceHandlerResolver {}默认实现将 META-INF/spring.handlers (spring-context-XXX中)http\://www.springframework.org/schema/context=org.springframework.contex.

2020-12-02 10:22:44 32

原创 Hashids 原理及实现

Hashids是一个将数字转化为长度较短、唯一且不连续的值的库。特点是:对非负整数都可以生成唯一短id可以设置不同的盐,具有保密性递增的输入产生的输出无法预测代码较短,且不依赖于第三方库原理进制转换:将10进制的整数转化为 62 进制(26个字母大小写+10个数字),可扩展为任意进制。 private static String hash(long input, String alphabet) { String hash = ""; final int alphabet

2020-07-04 15:32:20 577

原创 太阳圣火自动播放

var i = 0;setInterval(function () { player.sdk.seekTo(i++); updateLearn();}, 1000);study={gcid:294539,state:0,curzjid:7965,curstart:134,rnd:'05NDU65M4T',chcode:'1c98e2a54af5547011b3b95a73c2dfae'};player = new CloudVodPlayer();player.init(.

2020-07-03 22:51:06 515 1

原创 Netty中Channel、ChannelPipeline、ChannelHandler、ChannelHandlerContext之间的关系

public interface Channel extends AttributeMap, ChannelOutboundInvoker, Comparable<Channel> {// ...ChannelPipeline pipeline();// ...}

2020-06-25 10:20:26 261

原创 rime输入法配置

rime 输入法配置基本配置来源https://github.com/xiaoTaoist/rime-dictemoji 表情设置./rime-install emoji./rime-install emoji:customize:schema=luna_pinyinhttps://github.com/rime/rime-emoji执行完会在luna_pinyin.custom....

2020-04-19 11:07:30 1026

原创 使用springboot 搭建Web框架

添加链接描述

2020-04-18 09:33:52 224

原创 查找服务器可用端口号

package com.meituan.test;import java.io.IOException;import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.ServerSocket;/** * @author liguanghui02 * @date 2020/4/14 */...

2020-04-14 09:48:44 654

原创 一个馒头引发的血案

本想起 一个 0 引发的血案 ,本着无事不调侃的性取向,索性改为一个馒头引发的血案。

2020-04-08 21:49:27 430

原创 Thrift 调用分析
原力计划

Thrift 定义文件model.thriftnamespace java com.meituan.modelstruct Request { 1: required i32 age; 2: required string name;}struct Response { 1: required i16 code; 2: ...

2020-04-05 12:01:02 189

原创 使用 thrift 遇到的一个 bug

org.apache.thrift.protocol.TProtocolException: Required field 'statusCode' was not found in serialized data! Struct: com.meituan.itc.udm.mustang.thrift.JudgeResponse$JudgeResponseStandardScheme@689774...

2020-04-03 10:31:24 457

原创 Thrift 生成文件解析

thrift 文件namespace java com.meituan.modelstruct Pair { 1: required string key; 2: required string value; 3: required i16 test1; 4: optional i32 test2; 5: opt...

2020-04-03 10:27:54 488

原创 thrift-TSimpleJSONProtocol

Thrift JSON 序列化实现,只写操作。JSON 的弊端就是没有类型信息,如对于一个整数,无法区分 short,int,long,double等。 @Test public void test4() throws IOException, TException { Person person = new Person(); person.setN...

2020-04-03 10:24:21 169

原创 thrift-编解码流程

Thrift protocol 层需要进行 4 次编解码操作:客户端对请求进行编码,服务端对请求进行解码服务端对响应进行编码,客户端对响应进行解码helloservice.thriftnamespace java com.meituan.serviceinclude "model.thrift"service HelloService { model.R...

2020-04-03 10:21:58 180 4

原创 thrift-TBinaryProtocol
原力计划

TBinaryProtocol 工厂类。 public static class Factory implements TProtocolFactory { protected long stringLengthLimit_; protected long containerLengthLimit_; protected boolean strictRead_; ...

2020-04-03 10:14:08 175

原创 thrift-protocol

// Thrift 消息类型public final class TMessageType { public static final byte CALL = 1; // 调用远程方法,并且期待对方发送响应 public static final byte ONEWAY = 4; // 调用远程方法,不期待响应。即没有步骤3,4 public static final by...

2020-04-03 09:50:21 180

原创 IDL 生成文件
原力计划

IDL 生成文件在 thrift 栈中的位置。对于如下的 thrift :namespace java com.meituan.serviceservice HelloService{ string sayHello(1:string username)}生成:// thrift 0.8.0public class HelloService { public ...

2020-04-03 09:39:58 234

原创 java.lang.NoClassDefFoundError: javax/el/ELManager

HTTP ERROR 503Problem accessing /evolve/qixi/test. Reason: Service UnavailableCaused by:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframewor...

2020-03-18 09:58:58 1077

原创 google authenticator

【google authenticator】使用基于时间的一次性密码(Time-based One-time Password,简称TOTP)实现。离线实现即不需要联网。https://blog.seetee.me/post/2011/google-two-step-verification/https://segmentfault.com/a/1190000016100672https...

2020-03-18 09:54:20 190

原创 git 误传二进制文件

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5git rev-list --objects --all | grep 86bab29452f7bf6b2bf0afd5950a2365e178ee89git rev-list --objects --all | grep b234a94d1931...

2020-03-18 09:52:58 153

原创 Feistel 算法

学习资料:https://www.jiamisoft.com/blog/8903-feisteljiegouhundunjiamisuanfa.htmlhttps://blog.iwannarun.cn/2017/11/03/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E8%87%AA%E5%A2%9EID%E7%94%9F%E6%88%90%E5%8F%AF%E...

2020-03-18 09:51:50 265

原创 java nio 学习笔记

Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写...

2020-03-06 09:35:47 119

原创 thrift-transport

org.apache.thrift.transport.TTransport传输组件抽象描述。​public abstract class TTransport implements Closeable { public abstract boolean isOpen(); public boolean peek() { return isOpen(); } public ab...

2020-03-05 22:52:46 248

原创 thrift-processor

TProcessor 是服务调用组件。负责从 TProtocol 输入流读取消息,写入到 TProtocol 输出流。TProcessorpublic interface TProcessor { public boolean process(TProtocol in, TProtocol out) throws TException;}TBaseProcessorTB...

2020-03-05 22:51:55 296

原创 HashMap 分析(doing)

JDK8 中,HashMap 使用 数组+链表+红黑树来实现。getget(Object key) 的处理流程:计算 key 的 hash 值,根据 hash 值找到对应数组下标:hash & (table.length - 1)判断数组该位置处的元素(头结点)是否刚好就是我们要找的,如果不是,走第三步判断该元素类型是否是 TreeNode,如果是,用红黑树的方法进行查找;如...

2020-02-23 15:28:03 89

原创 java.net.URLClassLoader#findClass解析

​jdk1.8 中 AppClassLoader 与 ExtClassLoader 都继承于 URLClassLoader。AppClassLoader 与 ExtClassLoader 没有重写 findClass 方法,URLClassLoader重写了 findClass 方法。故 findClass 都指向 URLClassLoader。protected Class<?&g...

2020-02-23 15:22:56 2621 2

原创 Java 对象占用大小

JDK8_64_HotSpot VM这个环境中的默认配置下,压缩对象指针(UseCompressedOops)和压缩类指针(UseCompressedClassPointers)都是打开的。java -XX:+PrintCommandLineFlags Test-XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4294967296 -XX:+Prin...

2020-02-23 15:16:26 129

原创 JDK8 实现重试

@FunctionalInterfacepublic interface Supplier<T> { T get();}@FunctionalInterfacepublic interface Predicate<T> { boolean test(T t); default Predicate<T> and(Predic...

2020-02-23 15:11:59 287

原创 动态代理

jdkpackage com.meituan.test;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;interface Hello { void sayHello();}class HelloImpl i...

2020-02-23 15:09:21 124

原创 调试中遇到的一个 bug

ConstantPool.getStringAt()## A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x00000001059e73f6, pid=16016, tid=0x0000000000001803## JRE version: Java(TM...

2020-02-23 15:03:04 620

原创 sun.misc.URLClassPath 解析

作用:Java 中加载类和查找资源的路径jdk8http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/8477fd88653c/src/share/classes/sun/misc/URLClassPath.javajdk9http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/9b93380c8445/src/...

2020-02-23 14:59:53 1190

原创 sun.misc.MetaIndex

作用:文件查找的快速拒绝机制public class MetaIndex { private static volatile Map<File, MetaIndex> jarMap; private String[] contents; // 是否是只包含 class 的 jar 包 private boolean isClassOnlyJar; ...

2020-02-23 14:51:46 217

原创 sun.misc.Launcher

针对 jdk1.8,jdk9 以后就没有该文件了。http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/raw-file/8477fd88653c/src/share/classes/sun/misc/Launcher.javapublic class Launcher { // 自定义通讯协议设计 private static URLStream...

2020-02-23 14:48:52 420

原创 mac 编译 openjdk11

下载 openjdk 镜像hg clone https://hg.openjdk.java.net/jdk/jdk11/或者在 http://jdk.java.net/下载下载前置依赖brew install FreeTypebrew install Autoconf执行 configure 检查bash ./configure --with-target-bits=...

2020-02-23 14:42:54 370

原创 IO模型

你要叫滴滴打车,有以下几种做法:叫车之后,就一直在路口等着,车来了自己上去——同步、阻塞叫车之后,一边等着一边看美女,车来了自己上去——同步,非阻塞叫车之后,光顾着看美女,司机到了之后打电话给你——异步、非阻塞即是:同步就是你要自己检查车来了没有;异步就是车来了司机联系你(回调)。阻塞就是等车的时候老实等着,别干别的(被阻塞);非阻塞就是等车的时候你可以做其他事情。https:/...

2020-02-20 10:12:08 141

原创 抓包 thrift 消息

helloservice.thriftnamespace java com.meituan.serviceinclude "model.thrift"service HelloService { model.Response sayHello(1: model.Request req)}model.thriftnamespace java com.meituan.mo...

2020-02-18 23:33:26 451

原创 Thrift0.8当接口返回类型i16/i32/i64/bool时,客户端无法捕获服务端抛出的异常

测试代码:namespace java com.meituan.serviceexception BugTestException{ 1: required i32 code; 2: required string msg;}service HelloService { i32 bugCall() throws (1: BugTestException e);...

2020-02-18 23:24:32 352

原创 mac 定时任务

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> &...

2020-01-19 13:06:48 119

原创 RPC 学习笔记

RPCRPC(Remote Procedure Call) 是一种进程间通信方式。它允许程序调用另一个地址空间的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。现有的 RPC 实现基本都是由以下五部分组成:UserUser-stubRPCRuntimeServer-stubServer这里 user 就是 cli...

2019-03-30 11:52:59 304 3

原创 windows 10 linux子系统配置

更改 apt 源lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 18.04.1 LTSRelease: 18.04Codename: bionichttps://mirrors.tuna.tsinghua.edu.cn/help/...

2019-03-27 18:21:03 418

原创 windows nginx autoindex 中文目录/文件名乱码解决办法

src\http\modules\ngx_http_autoindex_module.c// 响应处理static ngx_int_t ngx_http_autoindex_handler(ngx_http_request_t *r){}可以看到默认是以 html 格式响应返回的文件列表。static ngx_buf_t *ngx_http_autoindex_html(ngx_ht...

2019-03-05 19:53:13 4114 1

c++实现查询天气预报

c++实现查询天气预报,简单实现!

2013-11-21

ipwryQQwry的升级版

ipwryQQwry的升级版

2013-11-17

ipwry cnss出品

ipwry cnss出品

2013-11-17

ipwry源码 qqwry的升级版

ipwry源码 qqwry的升级版

2013-11-17

voice yeapp player2003

voice yeapp player2003

2013-11-17

堆栈平衡(简单main函数演示)

堆栈平衡(简单main函数演示)

2013-10-29

堆栈平衡ppt

讲解堆栈平衡很不错的一个ppt,通俗易懂

2013-10-28

C++书写规范

C++书写规范

2013-09-03

运筹学teachdp动态规划

运筹学teachdp动态规划

2013-05-31

差分约束系统

差分约束系统

2013-05-22

浅析字母树在信息学竞赛中的应用

浅析字母树在信息学竞赛中的应用

2013-05-22

迷宫问题实现

迷宫问题实现

2013-05-03

深度优先搜索

深度优先搜索

2013-04-27

广度优先搜索

广度优先搜索

2013-04-27

ACM搜索算法

ACM搜索算法

2013-04-21

C ++中的map容器

C ++中的map容器

2013-04-13

C ++标准模板库

C ++标准模板库

2013-04-13

C++STL介绍

C++STL

2013-04-13

背包九讲

背包九讲

2013-04-12

动态规划2-张惜今

动态规划2-张惜今

2013-04-12

动态规划1-张惜今

动态规划1-张惜今

2013-04-12

ACM递归与动态规划

ACM递归与动态规划

2013-04-09

国际大学生程序设计竞赛指南

国际大学生程序设计竞赛指南

2013-04-07

C语言链表学习

C语言链表

2013-03-31

IT学生解惑真经

IT学生解惑真经

2013-03-31

汉诺塔问题

汉诺塔问题

2013-03-31

C与C++基础001

C与C++基础001

2013-03-14

C语言入门书籍

C语言入门书籍

2013-03-10

彻底搞定C指针

彻底搞定C指针

2013-03-07

PotPlayer64

PotPlayer64.rar

2012-11-17

KMPlayer单文件播放器

只有一个文件的播放器

2012-11-17

Windows文件监视器

Windows文件监视器

2012-11-17

扩展欧几里德算法的理解

扩展欧几里德算法的理解

2012-09-07

小葵转换工具

进制转化等URL SQL HEX ASI MD5 BASE

2012-08-31

NT6_HDD_Installer

NT6_HDD_Installer

2012-08-31

K8智能机器人

K8智能聊天QQ机器人V1.5 MS12020蓝屏版+带教程

2012-08-31

lua-cjson-2.1.0-已编译

LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译

2018-04-16

mybatis plugin 3.21

将压缩包里的 MyBatis plugin 文件夹解压到 .IntelliJIdea\config\plugins 目录即可使用

2017-12-26

mybatis plugin 3.21破解补丁

mybatis plugin 3.21破解补丁 mybatis plugin 3.21破解补丁 mybatis plugin 3.21破解补丁

2017-11-13

QQWry-源码

QQWry源码,包括:ipsearcher、ipwry以及转换器。 QQWry源码,包括:ipsearcher、ipwry以及转换器。 QQWry源码,包括:ipsearcher、ipwry以及转换器。

2017-11-13

N3verL4nd的留言板

发表于 2020-01-02 最后回复 2020-02-18

为什么删我博文

发表于 2017-12-20 最后回复 2019-10-12

恢复博文

发表于 2018-10-19 最后回复 2018-10-19

发表博客链接打不开

发表于 2018-01-09 最后回复 2018-01-10

该博客违反了网站规则被关闭

发表于 2016-08-05 最后回复 2016-11-11

该博客违反了网站规则被关闭

发表于 2016-07-01 最后回复 2016-07-01

该博客违反了网站规则被关闭

发表于 2016-01-13 最后回复 2016-01-13

string里保存的utf8如何输出?

发表于 2013-11-19 最后回复 2013-11-20

学习、成长中的困惑

发表于 2012-09-13 最后回复 2012-12-20

空空如也

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

TA关注的人 TA的粉丝

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