最近在学习网络编程,需要指定传输IO缓存内存大小,所以重新回顾了一下数据类型在在内存中的分配情况,现记录一下:
首先得清楚数据类型所占的字节数:
java数据类型 字节 表示范围
----------------------------------------
byte(字节型) 1 -128~127
short(短整型) 2 -32768~32767
int(整型) 4 -2147483648~2147483647
long(长整型) 8 -9223372036854775808 ~ 9223372036854775807
float(浮点型) 4 -3.4E38~3.4E38
double(双精度型) 8 -1.7E308~1.7E308
char(字符型) 2 从字符型对应的整型数来划分,其表示范围是0~65535
boolean(布尔型) 1 true或false
先来看一下byte,byte占一字节,一字节等于八位。
一个位能表示的状态:0或1(计算机内部bit位,为0或1),即2的一次方=2个状态(或数据)
两位能表示的状态: 00,01,10,11,即2的2次方=4个状态
三位: 000,001,010,011,100,101,110,111,即2的3次方=8个状态
一此类推,8位即有2的8次方个状态,为256
上面说了一个字节为8位,最小为:00000000,最大为:11111111
无符号的情况可以表示 0~255 共256个数字,有符号则可以表示-128~+127,也是256个数,第一位(最左边一位)表示正负,这样最大只能表示127
16位,32位一个道理,所以就有了上面的类型表示小范围:
1 byte = 1字节 = 8bit 可表达 2的八次方个数字
1 short= 2字节 = 16bit 可表达2的十六次方个数字
1 int = 4字节 = 32bit 可表达2的32次方,等等
Bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范筹;
Byte意为“字节”,是计算机文件大小的基本计算单位;
这两者应用的场合不同。通常用bit来作数据传输的单位,因为物理层,数据链路层的传输对于用户是透明的,而这种通信传输是基于二进制的传输。在应 用层通常是用byte来作单位,表示文件的大小,在用户看来就是可见的数据大小。比如一个字符就是1byte,如果是汉字,则是2byte。
分享到:
相关推荐
在C语言的学习中,数据类型是基础知识中的核心部分,它决定了变量能够存储的数据种类以及占用的内存大小。在通信软件基础中的C语言复习,特别强调了数据类型的学习,目的是为了让初学者能够更好地掌握这一部分内容。...
- **内存分配**:可以通过`malloc`、`calloc`等函数动态分配内存。 - **内存释放**:使用`free`函数释放不再使用的内存。 #### 三、导致内存破坏的指针操作类型 - **未初始化的内存**:在使用指针之前未对其进行...
当我们在代码中创建一个新的对象时,实际上是在堆内存中为该对象分配了一块内存空间。 #### 类变量与实例变量 - **类变量**:静态变量,属于类级别,所有对象共享同一份副本。 - **实例变量**:非静态变量,属于...
C语言中的指针被广泛应用于数组、字符串、动态内存分配、函数参数传递等操作中。为了深入了解指针,我们将详细讲解以下知识点: 一、指针基本概念与操作回顾 1. 地址与指针概念回顾:计算机程序在执行时需要内存来...
在程序设计基础中,我们...这些知识点涵盖了C语言中的基本数据类型、运算符优先级、结构体与联合体、宏定义、自增运算符的使用、数组与指针、内存管理和循环逻辑等多个方面,是学习C语言时需要重点理解和掌握的内容。
在探讨Redis中String数据结构的奥秘前,我们先回顾一下Redis之所以高效的原因。单线程机制避免了上下文切换,基于内存的操作大大提升了访问速度,而多路复用网络模型确保了即使在单线程环境下也能高效处理客户端请求...
在描述中的“137_指针17_何谓变量的地址 一个指针变量到底占几个字节【难点】.swf”中,可能会讲解到每个指针变量在内存中占用的字节数,这通常取决于系统架构(32位或64位),一般情况下,32位系统中指针占4个字节...
指针的易错点通常发生在对只读数据段的写操作,例如尝试修改一个字符串常量。另外,函数中传入指针参数后,需要注意不要改变其指向,除非在函数内部做好相应的内存管理。在C语言中,指针的内存管理非常关键,比如...
在计算机三级嵌入式系统考前回顾中,将详细讨论嵌入式处理器的体系结构、ARM体系结构、数据存储格式、汇编语言伪指令、CPU状态转移指令、USB总线技术、实时操作系统特性、串行通信接口UART、ARM9内核S3C2410处理器的...
局部变量表中的槽位是根据编译期间确定的各种基本数据类型(如int、long、float、double等)以及对象引用类型来分配的。对于64位数据类型(如long和double),需要占用两个连续的槽位。 **操作数栈**:操作数栈用于...
2. **结构体**:结构体是C语言中的一种复合数据类型,它允许我们将不同类型的变量组合在一起作为一个单一的实体。通过定义结构体类型,可以创建自定义的数据结构,比如`struct student {int id; char name[50]; ...
在嵌入式系统中,选择合适的数据类型对于节省内存和提高程序效率至关重要。 2. **控制结构** - **条件语句** (`if`, `else`, `switch`): 用于根据不同条件执行不同的代码路径。 - **循环语句** (`for`, `while`...
首先,让我们回顾一下在Go中字符串和字节切片的常规转换方式。通常,你可以使用`[]byte(s)`将字符串`s`转换为字节切片,或者使用`string(b)`将字节切片`b`转换为字符串。这种转换在大多数情况下是直观且可靠的,但是...
第76讲 字节码与数据类型 00:09:34 第77讲 加载指令 00:09:33 第78讲 运算指令 00:10:24 第79讲 类型转换指令 00:13:42 第80讲 对象创建与访问指令 00:09:38 第81讲 操作树栈指令 00:03:27 第...
例如,`DB 5`会在内存中分配一个字节的空间并初始化为5。这些伪操作对管理程序数据结构、存储常量和变量至关重要。 **存储器分配伪操作** 除了定义数据,汇编语言还提供了存储器分配伪操作,如RESB(预留字节)、...
接下来是垃圾回收器和内存分配策略,这是JVM性能调优中的重要一环。垃圾回收(GC)的目的是自动释放不再使用的对象占用的内存空间,分为值传递和引用传递两种类型。引用类型包括强引用、软引用、弱引用和虚引用。...
`sizeof`运算符用于获取某种数据类型或表达式的字节数,常用于动态内存分配或数组操作。 #### 25. `volatile` `volatile`关键字用于声明变量的值可能会在未知的情况下改变,指示编译器不要优化这个变量的访问,确保...
第76节字节码与数据类型00:09:34分钟 | 第77节加载指令00:09:33分钟 | 第78节运算指令00:10:24分钟 | 第79节类型转换指令00:13:42分钟 | 第80节对象创建与访问指令00:09:38分钟 | 第81节操作树栈指令00:03:27...