摘要: 简介 区块链是一种防篡改的共享数字分布式账本,可记录公共或私有对等网络中的交易。分布式账本分布到网络中的所有成员节点,以加密散列链接的块的顺序链,永久记录网络中对等点之间发生的资产交换的历史记录。 区块链的广为人知是从比特币开始的,但是区块链不是比特币,区块链只是比特币底层的技术基础。比特币可以看做 阅读全文
posted @ 2020-05-21 07:02 flydean 阅读(872) 评论(1) 推荐(2) 编辑
摘要: 简介 自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Spring作为一个轻量级的J2EE应用框架,就是针对EJB的复杂特性而设计的,最后毫无疑问,Spring凭借它的简洁,可理解性和可用性赢得了最后的胜利。 Spring从最初的xml配置到后面的注解配置,一直都在不断的进步, 阅读全文
posted @ 2020-05-20 06:59 flydean 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 简介 是什么让java世界变得更好,程序员变得更友爱,秃头率变得不是那么的高,让程序员不必再每天996,有时间找个女朋友? 是Spring。 是什么让企业级java应用变得简单易懂,降低了java程序员的进入门槛,导致了现在遍地都是java程序员的窘境? 是Spring。 是什么从无冕之王变成了事实 阅读全文
posted @ 2020-05-20 06:45 flydean 阅读(3814) 评论(1) 推荐(2) 编辑
摘要: java作为第一大编程语言,可谓源远流长,一代又一代的java程序员前仆后继走在java学习的路上。java程序员的学习之路在2020年又有什么变化呢?本文详细附上了每一个部分所需知识的教程链接地址,并会持续更新,希望能够和大家一起进步! 阅读全文
posted @ 2020-04-13 10:20 flydean 阅读(2703) 评论(1) 推荐(0) 编辑
摘要: 简介 在json之前,xml是最常用的数据传输格式,虽然xml的冗余数据有点多,但是xml的结构简单清晰,至今仍然运用在程序中的不同地方,对于netty来说自然也提供了对于xml数据的支持。 netty对xml的支持表现在两个方面,第一个方面是将编码过后的多个xml数据进行frame拆分,每个fra 阅读全文
posted @ 2022-05-13 14:08 flydean 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 简介 字符串是我们程序中最常用到的消息格式,也是最简单的消息格式,但是正因为字符串string太过简单,不能附加更多的信息,所以在netty中选择的是使用byteBuf作为最底层的消息传递载体。 虽然底层使用的ByteBuf,但是对于程序员来说,还是希望能够使用这种最简单的字符串格式,那么有什么简单 阅读全文
posted @ 2022-05-12 16:10 flydean 阅读(146) 评论(0) 推荐(1) 编辑
摘要: 简介 在现代计算机系统中,可以有多个CPU,每个CPU又可以有多核。为了充分利用现代CPU的功能,JAVA中引入了多线程,不同的线程可以同时在不同CPU或者不同CPU核中运行。但是对于JAVA程序猿来说创建多少线程是可以自己控制的,但是线程到底运行在哪个CPU上,则是一个黑盒子,一般来说很难得知。 阅读全文
posted @ 2022-05-11 15:36 flydean 阅读(185) 评论(2) 推荐(0) 编辑
摘要: 简介 什么是callback呢?简单点说callback就是回调通知,当我们需要在某个方法完成之后,或者某个事件触发之后,来通知进行某些特定的任务就需要用到callback了。 最有可能看到callback的语言就是javascript了,基本上在javascript中,callback无处不在。为 阅读全文
posted @ 2022-05-10 14:35 flydean 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 简介 前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢? 不用怕,JNA提供了Structur 阅读全文
posted @ 2022-05-09 16:27 flydean 阅读(155) 评论(1) 推荐(0) 编辑
摘要: 简介 在JNA中,为了和native的function进行映射,我们可以有两种mapping方式,第一种是interface mapping,第二种是direct mapping。虽然两种方式不同,但是在具体的方法映射中,我们都需要在JAVA中定义一个和native方法进行映射的方法。 而这个JAV 阅读全文
posted @ 2022-05-06 14:10 flydean 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 简介 我们知道在native的代码中有很多指针,这些指针在JNA中被映射成为Pointer。除了Pointer之外,JNA还提供了更加强大的Memory类,本文将会一起探讨JNA中的Pointer和Memory的使用。 Pointer Pointer是JNA中引入的类,用来表示native方法中的指 阅读全文
posted @ 2022-05-05 14:07 flydean 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 简介 现在是互联网的世界,大家从各种网站中获取各类资源和信息,通常我们只需要牢记一个网站地址即可,至于这个网站后台的服务器在什么地方,我们并不需要关心。当我们的请求指向这个网址之后,接下来就只需要等待请求被转发到该网址的后端服务器上,得到返回的处理结果即可。 这个将网站名称解析成为服务IP地址的服务 阅读全文
posted @ 2022-04-29 13:51 flydean 阅读(147) 评论(1) 推荐(0) 编辑
摘要: 简介 netty中的数据是通过ByteBuf来进行传输的,一个ByteBuf中可能包含多个有意义的数据,这些数据可以被称作frame,也就是说一个ByteBuf中可以包含多个Frame。 对于消息的接收方来说,接收到了ByteBuf,还需要从ByteBuf中解析出有用而数据,那就需要将ByteBuf 阅读全文
posted @ 2022-04-28 13:52 flydean 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 简介 netty提供了一个从ByteBuf到用户自定义的message的解码器叫做ByteToMessageDecoder,要使用这个decoder,我们需要继承这个decoder,并实现decode方法,从而在这个方法中实现ByteBuf中的内容到用户自定义message对象的转换。 那么在使用B 阅读全文
posted @ 2022-04-27 13:50 flydean 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 简介 程序和程序之间的数据传输方式有很多,可以通过二进制协议来传输,比较流行的像是thrift协议或者google的protobuf。这些二进制协议可以实现数据的有效传输,并且通过二进制的形式可以节省数据的体积,在某些速度和效率优先的情况下是非常有效的。并且如果不同的编程语言之间的相互调用,也可以通 阅读全文
posted @ 2022-04-26 13:50 flydean 阅读(161) 评论(1) 推荐(0) 编辑
摘要: 简介 我们知道netty中数据传输的核心是ByteBuf,ByteBuf提供了多种数据读写的方法,包括基本类型和byte数组的读写方法。如果要在netty中传输这些数据,那么需要构建ByteBuf,然后调用ByteBuf中对应的方法写入对应的数据,接着套用netty中标准的模板即可使用。 对于byt 阅读全文
posted @ 2022-04-25 13:49 flydean 阅读(180) 评论(1) 推荐(0) 编辑
摘要: 简介 我们知道数据在netty中传输是以ByteBuf的形式进行的,可以说ByteBuf是netty的数据传输基础。但是对于现代的应用程序来说,通常我们需要用到其他的数据结构或者类型。 为了方便我们在程序中的编写,一种方式就是在将数据传入到netty中的时候由程序员自身将数据格式进行转换,然后再调用 阅读全文
posted @ 2022-04-22 14:06 flydean 阅读(246) 评论(1) 推荐(0) 编辑
摘要: 简介 之前的文章中,我们讲解了netty中从一个message转换成为另外一个message的框架叫做MessageToMessage编码器。但是message to message只考虑了channel中消息在处理过程中的转换,但是我们知道channel中最终传输的数据一定是ByteBuf,所以我 阅读全文
posted @ 2022-04-20 15:20 flydean 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 简介 在netty中我们需要传递各种类型的消息,这些message可以是字符串,可以是数组,也可以是自定义的对象。不同的对象之间可能需要互相转换,这样就需要一个可以自由进行转换的转换器,为了统一编码规则和方便用户的扩展,netty提供了一套消息之间进行转换的框架。本文将会讲解这个框架的具体实现。 框 阅读全文
posted @ 2022-04-18 13:56 flydean 阅读(183) 评论(1) 推荐(0) 编辑
摘要: 简介 JNA提供JAVA类型和native类型的映射关系,但是这一种映射关系只是一个大概的映射,我们在实际的应用中还有很多需要注意的事项,本文将会为大家详细讲解在使用类型映射中可能会出现的问题。一起来看看吧。 String 首先是String的映射,JAVA中的String实际上对应的是两种nati 阅读全文
posted @ 2022-04-15 14:43 flydean 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 简介 JNA中有很多种映射,library的映射,函数的映射还有函数参数和返回值的映射,libary和函数的映射比较简单,我们在之前的文章中已经讲解过了,对于类型映射来说,因为JAVA中的类型种类比较多,所以这里我们将JNA的类型映射提取出来单独讲解。 类型映射的本质 我们之前提到在JNA中有两种方 阅读全文
posted @ 2022-04-14 15:12 flydean 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 简介 不管是JNI还是JNA,最终调用的都是native的方法,但是对于JAVA程序来说,一定需要一个调用native方法的入口,也就是说我们需要在JAVA方法中定义需要调用的native方法。 对于JNI来说,我们可以使用native关键字来定义本地方法。那么在JNA中有那些在JAVA代码中定义本 阅读全文
posted @ 2022-04-13 14:50 flydean 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 简介 我们知道计算机中的文件可以分为两种,一种是人肉眼可读的文本类文件,一种是肉眼不可读的二进制文件。一般来说二进制文件如果用文本编辑器打开的话会显示乱码,并且二进制文件和文本文件的存储和传输方式是不一样的,那么有没有什么办法将二进制文件转换成为文本文件进行传输或者存储呢?答案是肯定的。 这种编码方 阅读全文
posted @ 2022-04-11 13:50 flydean 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 简介 什么是Base64编码呢?在回答这个问题之前,我们需要了解一下计算机中文件的分类,对于计算机来说文件可以分为两类,一类是文本文件,一类是二进制文件。 对于二进制文件来说,其内容是用二进制来表示的,对于人类是不可立马理解的。如果你尝试用文本编辑器打开二进制文件,可能会看到乱码。这是因为二进制文件 阅读全文
posted @ 2022-04-08 18:06 flydean 阅读(189) 评论(0) 推荐(0) 编辑