【晓风残月】byte,short,int,long——八种基本类型

2 篇文章 0 订阅


前言

周末,朋友约出去玩呢,但是也不能周周出去浪,学了一个月竹笛,也有点心累。本来准备休息一天的,给自己身体充个电。

结果前同事抱着他的硬件来找我研究电路了,哈哈,接着GG了。坐家里坐了一天软件,好端端的一个周末,结果搞了一天软硬件,身心疲惫【还好请我吃饭,不然我非呵呵他一脸】

没办法,贪财好色,喜新厌旧,俗人一个。有点点好处都会赴汤蹈火,哈哈哈

在这里插入图片描述

在这里插入图片描述

废话不多说,总结下今天的成果以及踩的坑

一、第一个坑【数据丢失】

在这里插入图片描述

EMQX给我发的消息,分了两段,以为是丢包了,但是看数据也不像,后来以为是需要黏包,但是个人能力有限,黏包代码写不出来,哈哈哈,还是太菜。问了下硬件客服售后工程师,说让改下超时时间就可以了。【还好没写,不然得哭晕在厕所】【方向不对,再努力也是白费】
在这里插入图片描述

然后果断可以了,真的很6,果然闻道有先后,术业有专攻。

【请教别人,并不是一种很丢人的事,不懂装懂才是】

在这里插入图片描述

二、第二个坑【byte集合无法转换byte数组】

在这里插入图片描述一直以为,数组和集合,都可以随意转换的,结果怎么转都不对,什么Arrays.as,什么Stream,什么方法都用了还是不行,然后问了启蒙师傅
在这里插入图片描述
就给我回复了【toArray】6个字母,其中的道理自己去悟吧。果然大佬都是指点一二。不详细解说,查了之后发现,果然是可以转换的

【师傅领进门,修行靠个人】

废话不多说,上代码

Byte[] toArray = bytes.toArray(new Byte[0]);

三、第三个坑【Byte[]转byte[]】

这个比较简单,循环遍历就可以了,往里面一个一个塞即可

【最笨的方法,往往是最有效的方法】

 Byte[] toArray = bytes.toArray(new Byte[0]);
        byte[] littleByte = new byte[toArray.length];
        for (int i = 0; i < toArray.length; i++) {
            littleByte[i] = toArray[i];
        }

四、第四个坑【16进制转byte】

这个费的时间最久,一直想问师傅,又不敢,一天不能总是问,程序猿要多动脑,就一直扣,一开始提示8C转换类型错误

Byte.parseByte

这个解析里面的数大于127,超出了byte的最大值

解决方法:因此我们需要使用下面的方法,先转成integer,然后byteValue()

byte a = Integer.valueOf("8C", 16).byteValue(); 

总结

一直感觉上学学的那8种基本类型没什么用,当真正用到的时候,真的很难受

现在理解了很多之前不懂的道理:

为什么计算机只认识0和1?
万物都是0和1,8个bit位即可以代表所有数字。00000001这就是计算机1了。00000010,这就是计算机的2

为什么硬件开发都用16进制?
16进制只需要两位,十进制的千位数万位数,都可以用两个字节诠释一切,通讯比较方便

在这里插入图片描述
8种基本数据类型,要常记于心。

或许最基础的才是最需要掌握的

1Byte=8bit

快一年没写博客了,貌似都不记得过去的自己了

向前看:前路漫漫亦灿灿

向后看:轻舟已过万重山

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值