首页 / JAVA / java内存,大端小端判断
java内存,大端小端判断
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java内存,大端小端判断,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1263字,纯文字阅读大概需要2分钟。
内容图文
![java内存,大端小端判断](/upload/InfoBanner/zyjiaocheng/948/a6e7aa3398aa4b18a6a15e31c8729aad.jpg)
一,简介
在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中,
除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short,
也有四个字节(32个bit)的long(在不同的编译器下可能不同)。对于16位或者32位的处理器,
即就是大于8位的处理器,由于寄存器的宽度大于一个字节,
那么就存在如何将一个多字节的变量的数据如何存放的问题——所以,就有了大小端之分。
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端。
小端模式,是指数据的高字节保存在内存的高地址中,低位字节保存在在内存的低地址端。
优势,劣势:
小端模式 :强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。
大端模式 :符号位的判定固定为第一个字节,容易判断正负。
二,java判断大端小端示例:
long a = UNSAFE.allocateMemory(8); try { UNSAFE.putLong(a, 0x0102030405060708L); //存放此long类型数据,实际存放占8个字节,01,02,03,04,05,06,07,08 byte b = UNSAFE.getByte(a); //通过getByte方法获取刚才存放的long,取第一个字节 //如果是大端,long类型顺序存放—》01,02,03,04,05,06,07,08 ,取第一位便是0x01 //如果是小端,long类型顺序存放—》08,07,06,05,04,03,02,01 ,取第一位便是0x08 switch (b) { case 0x01: ByteOrder byteOrder = ByteOrder.BIG_ENDIAN; break; case 0x08: byteOrder = ByteOrder.LITTLE_ENDIAN; break; default: assert false; byteOrder = null; } }catch (Exception e){ }
内容总结
以上是互联网集市为您收集整理的java内存,大端小端判断全部内容,希望文章能够帮你解决java内存,大端小端判断所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。