自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Java和Go字符串编码分析

Java和Go字符串编码分析Java字符串编码Go字符串编码Java不用UTF-8的原因Java9对String类型的改造Java字符串编码java String用的utf-16编码。一般是占用2个字节,有的不常见字符也会占用4个字节。所以java String内部用的char[]数组(jdk9以前)来存字符。一个char占用两个字节,而不常见的特殊字符,可能就需要两个char来存了,这时使用charAt等api就会出现问题。Go字符串编码Go string默认用UTF-8编码,我们用for ra

2021-04-11 22:54:43 406

原创 16进制转指定编码的字符串

  前几天公司进行业务升级,需要将数据上链(之前只是将业务hash上链),上链后发现区块链平台没有对上上去的数据进行处理,取下来就是一串16进制的字符。因为我们这边需要将上链的数据进行回显,所以需要对这些16进制数据进行转换。问了区块链平台的人,这些字符是char类型且是按utf-8编码的,所以就可以确定是2个字节为一组的。思路最终肯定是要调用jdk提供的方法,按照utf-8进行解码。但是java直接处理16机制数不太方便,所以思路就是先将16进制数转换为10进制数存入byte数组中,最后调用new S

2020-08-02 17:54:58 539

原创 springIOC源码refresh方法源码分析(1)

   spring源码是个庞大的体系,如果想要深入理解的话,一定得抓住一条主线,得对总体流程有个整体的认知。每当看到某个地方不得其解的时候,尝试回想这条主线,然后分析当前正看的模块在这条主线中的作用,以及上下模块的关系。带着这样的思路去研究spring源码,至少保证你不会迷失在码海中。总体流程spring核心就是refresh方法,不管是通过注解还是xml配置的方式,都绕不开这个方法,这个方法的流程也就基本涵盖了spring注入、实例化、以及各种拓展点等核心内容,所以我们先从这个方法入手:public

2020-07-27 07:08:02 121

原创 由Semaphore源码切入,学习AQS

   AQS是concurrent包的基础和核心,但的确很难理解,因为用的模板方法模式,所以它要适配各种并发工具,看源码的时候里面就会产生很多让人百思不得其解的地方。再加上,独特的代码风格,阅读起来的确很费劲。今天尝试由Semaphore切入,来理解下AQS相关的设计。用Semaphore来切入的原因是Semaphore代码比较简单一些,主要就一个acquire方法和一个release方法,用来理解代码设计会轻松一些。Semaphore介绍  源码上的注释说的是,Semaphore 从概念上讲维护了一组

2020-07-12 22:43:02 121 1

原创 dubbo + zipKin实现链路追踪 (注解方式)

工作原因主要研究了下dubbo框架和相关生态,选取的是dubbo+nacos(注册和配置中心)+zipKin的搭配方式。dubbo和nacos不必多说,都想详细的开发文档和中文社区的支持,按着文档走就行。但zipKin相关的资料就少了很多,主要看的官网github上的文档。百度出来的示例,多是以xml配置的方式呈现的,因为公司统一框架都是采用springboot,也不像xml和注解混用的方式来实现,所以用纯注解的方式来集成了zipKin,这个过程也的确踩了很多坑:zipKin安装这个没啥好说的,gith

2020-07-05 23:39:45 1089 1

原创 git rebase其他分支时相关细节点以及merge时添加--no-ff参数的效果

git rebasegit rebase在个人项目或者没有复杂线上分支管理流程的项目中应该算是使用比较频繁的一种操作,但这个操作也有一些入门难度,使用上也会出现很多让人迷惑的地方。常用的两个方式就是git rebase -i 和git rebase 分支名。其中-i的方式是整理自己当前分支的提交记录的(压缩提交记录,修改提交记录备注信息等),这个自然不必多说。但是git rebase 其他分支的操作其实和merge类似,但更难理解,也容易出现一些问题,或是让人感到一些迷惑:我把git rebase

2020-06-21 23:03:14 646

空空如也

空空如也

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

TA关注的人

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