`
nicegege
  • 浏览: 590792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于byte字节类型数据的思考

 
阅读更多

1.java有8个基础数据类型,分别是byte,short,int,float,double,long,char,boolean;今天主要讨论byte数据类型。byte数据类型表示字节数值数据。内存中占一个字节,即8位。byte数据类型范围很小,最小-128,最大127.范围就是-128至127.java很有意思的地方就是如果小于-128或大于127的数字转换为byte类型数据时要强类型转换,而且结果还是127和-128.

2.我们经常会用byte数组去读写。例如字符串编码,文件的下载中也会用字节数组(实质上byte[]数组可做缓冲的作用),在网络通信是不管是TCP还是UDP,MulticastSocekt广播数据打包的时候都使用byte[]数组。关于通过二进制字节流过渡的转换基本上离不开byte数组。byte数组的元素无非就是-128至127的数值。我现在想问的就是为什么使用byte数组去描述二进制字节流?我很欣赏java用这么简单的方式去处理如此复杂的工作。但是我心中始终有一个疑问:byte数组为什么描述二进制流,难道就是因为它内存中占一个字节的缘故?

总结:内存最小单元就是字节,Intel的x86芯片内存地址是按字节编的,那指针可以指向的最小内存单元就是一个字节,而其他的一些CPU按字编地址,CPU没有操作存储器中单一字节的指令,那指针可以指向的最小内存单元就是一个字,对于16位的机器就是两个字节,32位的机器就是四个字节.

二进制,位,字节的概念:

二进制是计算机中表示数的办法,也是实现运算的唯一途径。
位能表示一个二进制数,0,或者是1,可以用来代表低电平,高电平。或者无,有

字节是8位二进制数,从00000000到11111111,相当于十进制数的0-255.可以用来表示一个不大于255的无符号数或者-128到127的有符号数,或者一个符号。

关于byte[]数组表示二进制字节流其实本质因该是用一个字节的方式读取二进制流,读完一个字节读取下一个字节。如果一次读取两个字节,可能会出问题或者假如二进制流是99个字节,读取最后一个字节的时候读不到2个字节,所以可能想办法克服一次读不到2个字节的问题。但是用字节数组表示的话,就不会出这样的问题,因为字节是最小的存储单元,不会出现读不到的问题。

分享到:
评论

相关推荐

    关于C 的思考

    字节顺序(Byte Order)是指多字节数据类型(如整数)在内存中存储时各个字节的排列顺序。常见的字节顺序有两种: - **大端模式(Big Endian)**:最高有效字节存储在最低地址。 - **小端模式(Little Endian)**:...

    C# 流数据旋转 90度 图像旋转 90度

    ### C# 流数据旋转 90 度 图像旋转...综上所述,本文不仅介绍了如何使用 C# 对图像进行旋转的基础知识,还提供了一些关于如何优化性能和扩展功能的思考方向。这对于从事图像处理领域的开发者来说是非常有用的参考资料。

    大数据思考与练习答案 (1).pdf

    7. 计算机存储容量单位:1KB,基本单位是字节(Byte),一个汉字通常需要两个字节的存储空间,一个字节可以容纳一个英文字符。 8. 数据生命周期管理:数据应用开发与管理是执行方法,包括数据的收集、存储、管理和...

    2--实验2.doc

    实验2的目的是深入理解Java编程的基础知识,包括符号常量的定义、数据类型的数值范围、类型转换、程序开发流程、程序调试以及程序的层次结构。这些知识点是Java初学者必须掌握的基本技能。 首先,符号常量是程序中...

    深入理解计算机系统答案(超高清电子版)

    大端序与小端序是指多字节数据在内存中的存储顺序。在大端序系统中,最重要的字节(most-significant byte,MSB)存储在最低的存储位置;而在小端序系统中,最不重要的字节(least-significant byte,LSB)存储在...

    java 实例课间

    字节流主要用于处理字节数据,如二进制文件,而字符流则处理字符数据,考虑到了国际化的编码标准。字节流的顶级抽象类是`InputStream`和`OutputStream`,它们提供了`read()`和`write()`等关键方法。例如,`...

    P7思考题2

    但在处理按字节(byte)操作的设备,比如串行通信接口或者某些I/O控制器,BE信号就很重要,它允许CPU选择性地读写内存或外设中的单个字节。 【定时器中断模式】 官方提供的定时器有两个中断模式:模式0和模式1。...

    Java面试题、面经.pdf

    - **基本数据类型**:包括byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2字节)和boolean(非固定,实际占用4字节或1字节)。 - **封装类**:为每个基本...

    深入理解计算机系统习题答案

    1. 字节序(Byte Order):在计算机系统中,字节序是指多字节数据的存储和传输顺序。常见的有两种,大端序(Big-Endian)和小端序(Little-Endian)。大端序指的是最高有效字节(Most Significant Byte, MSB)存储在...

    串口接收模块电路设计

    接收模块的代码需要对数据位进行同步化处理,并在适当的状态下采样每一位数据,最终得到完整的字节数据。 总结来说,串口接收模块电路设计包括对数据帧的正确同步与采样、状态机设计用于处理不同的通信阶段、分频器...

    魔乐Java 李兴华 Java面向对象

    基本数据类型包括数值型(整型如byte、short、int、long,浮点型如float、double,以及字符型char和布尔型boolean),它们在内存中直接存储值。引用数据类型则包括数组、类和接口,它们在内存中存储的是对象的引用,...

    计算机考试思考题答案.docx

    计算机考试思考题答案涵盖了多个IT领域的基本概念,包括计算机硬件、软件、计算机系统、性能指标、计算机历史、工作原理以及数据处理等方面的知识。以下是这些知识点的详细解释: 1. **摩尔定律**:摩尔定律是由...

    Java企业级开发编程详解

    不论是简单数据类型(例如基本数据类型:byte、boolean、short、char、int、float、long、double)还是复杂数据类型(由基本类型组合而成的自定义结构),都是为了在计算机系统中合理地存储与处理信息而定义的编程...

    5--实验5.doc

    2. 自动类型转换发生在数据类型之间兼容且不需要额外操作时,例如从`int`到`long`,或者从`byte`到`char`。强制类型转换则是在需要将数据类型转换为不兼容类型时进行的,需要程序员明确指定,例如从`double`到`int`...

    jvm内部结构大解密

    在 Java 虚拟机(JVM)中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,...

    毕业设计基于Cesium时空数据可视化后台Java SSM框架.zip

    对程序员来说,这意味着要注意其中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和...

    2021-2022计算机二级等级考试试题及答案No.1599.docx

    1. 数据类型占用内存大小:在大多数编程语言中,`Boolean`通常占用1个字节,`Byte`占用1个字节,`Integer`占用2个字节,`Single`(单精度浮点数)占用4个字节,所以`Byte`是最小的。 2. 设置窗体标题栏属性:在许多...

    JavaSE基础学习笔记

    在面试中,可能会遇到关于数据类型、方法重载、类与对象关系等方面的问题。例如,方法的重载是指同一类中方法名相同但参数列表不同的方法,而多态的注意事项包括某些方法不能被重写,如final方法和实例方法不能与...

Global site tag (gtag.js) - Google Analytics