java程序员是幸福,因为相对于C/C++的不跨平台,JVM为我们屏蔽了大量的底层细节和复杂性,让我们能够将精力放在实现特定的业务逻辑上,所以使用java开发项目效率是比较高的。同时java程序员是悲哀的,就是因为JVM屏蔽了很多技术细节,导致java程序员基本功普遍较差,对一些基本概念理解不深,甚至根本没有听说过。作为一个java程序员,我深深的感到自己知识面的狭窄。无意中看到了字节序,以前竟然都不知道,这里记录下,扫个盲。

使用C/C++进行网络编程的程序员,肯定会接触到“字节序”的概念,但是使用java进行网络编程,却根本不会接触到“字节序”。为什么会这样呢?我们先从字节序说起。字节顺序是指占用内存多于一个字节类型的数据在内存中的存放顺序,有小端、大端两种顺序。小端字节序(little endian):低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序(bigendian):高字节数据存放在低地址处,低字节数据存放在高地址处。

java中一个int型数据占用4个字节,假如有一个16进制的int数,int value = 0x01020304;采用不同的字节序,在内存中的存储情况见下图:

显然大字节序,是比较符合人类思维习惯的。

至于计算机到底是BIG-ENDIAN、LITTLE-ENDIAN、跟CPU有关的,一种CPU不是BIG-ENDIAN就是LITTLE-ENDIAN。IA架构(Intel、AMD)的CPU中是Little-Endian,而PowerPC 、SPARC和MotZ喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcm9sYbSmwO3G98rHQmlnLUVuZGlhbqGj1eLG5Mq1vs3Kx8v5zr21xNb3u/rX1r3a0PKho7b4zfjC59fWvdrQ8srH1rjK/b7d1NrN+MLnyc+0q8rkyrHKx7Tzzbe7ucrH0KHNt7XEo6zU2kludGVybmV0tcTN+MLn19a92tDyysdCSUctRU5ESUFOoaPL+c69tcRKQVZB19a92tDy1ri1xMrH1NpKQVZB0OnE4rv61tC24NfWvdrA4NDNyv2+3bXEtOa3xcuz0PKjrEpBVkHX1r3a0PLSssrHQklHLUVORElBTqGjv8m8+834wue6zUpWTba8ssnTw7XEyse089fWvdrQ8qOsuPbIy7jQvvW+zcrH0vLOqtXi1tbX1r3a0PKxyL3Pt/u6z8jLwOC1xM+wud+ho9PJ09pKVk274bj5vt2117LjtcSy2df3z7XNs7rNQ1BV19S2r7340NDX1r3a0PK1xNequ7ujrMv50tTO0sPHyrnTw2phdmG9+NDQzfjC57Hgs8yjrLy4uvW40L71sru1vdfWvdrQ8rXEtObU2qGjPC9wPgo8cD4gICAgICDEx8O0amF2YcDvw+ajrNT1w7TF0LbPxOO1xLzGy+O7+srHtPO2y7TmtKKhoru5ysfQobbLtOa0osTYo79KREvOqs7Sw8fM4bmp0ru49sDgQnl0ZU9yZGVyo6zNqLn90tTPwrT6wuu+zb/J0tTWqrXAu/rG97XE19a92tDyPC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9"brush:java;">System.out.println(ByteOrder.nativeOrder());在java.nio包下提供了ByteOrder、ByteBuffer等于字节序相关的类,我们也可以改变JVM中默认的字节序。该例子来源于

http://blog.csdn.net/veryitman/article/details/6819017

代码如下:

执行结果如下:

默认字节序 BIG_ENDIAN, 内存数据 [1, 2, 3, 4]

修改字节序 LITTLE_ENDIAN, 内存数据 [4, 3, 2, 1]

java 主机字节序_java字节序、主机字节序和网络字节序扫盲贴相关推荐

  1. java检测文件修改_Java 实例 – 查看主机指定文件的最后修改时间

    Java 实例 - 查看主机指定文件的最后修改时间 以下实例演示了如何查看主机指定文件的最后修改时间: /* author by w3cschool.cn Main.java */ import ja ...

  2. java.net.url 兼容_java.net.Url类的应用(网络编程)

    一.认识URL 类 URL 代表一个统一资源定位符,它是指向互联网"资源"的指针.资源可以是简单的文件或目录,也可以是更为复杂的对象的引用,例如对数据库或搜索引擎的查询. 简单的可 ...

  3. java转网络字节序_【转】网络字节序与主机字节序

    最近在项目开发过程中,需要在采用JAVA作为语言的服务器与采用C++作为语言的服务器间进行通信,这就涉及到这两种语言间数据类型的转换以及网络字节序与主机字节序的区别.该文主要说说网络字节序和主机字节序 ...

  4. php 字节序,Linux_Linux中网络字节序和主机字节序,主机字节序就是我们平常说的 - phpStudy...

    Linux中网络字节序和主机字节序 主机字节序就是我们平常说的大端和小端模式:不同的 CPU 有不同的字节序类型,这些字节序是指整数在内存中保存的顺序 这个叫做主机序.Big-Endian和Littl ...

  5. 网络字节序与主机字节序的相互转换

    1.网络字节序与主机字节序 在Linux网络编程中,经常碰到网络字节序与主机字节序的相互转换.说到网络字节序与主机字节序需要清晰了解以下几个概念. 字节序,顾名思义,指字节在内存中存储的顺序.比如一个 ...

  6. 【linux网络编程】网络字节序、地址转换

    网络字节序 故事的起源 "endian"这个词出自<格列佛游记>.小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endia ...

  7. 【网络篇】第四篇——网络字节序

    网络字节序和本机转换 字节序转换函数 网络字节序和本机转换 计算机在存储数据时是有大小端的概念的: 大端模式: 数据的高字节内容保存在内存的低地址处,数据的低字节内容保存在内存的高地址处. 小端模式: ...

  8. 本地字节序与网络字节序的相互转换(IP地址、端口号)

    一般数据在内存中是按照字节存储的,存储的方式分为大端和小端.在不知道对方主机的存储方式的情况下,我们不知道是否需要转换数据的存储方式.因此,TCP/IP协议规定:发送到网络的数据流应采用大端字节序! ...

  9. 本地字节序和网络字节序的转换

    1.背景 "端口号"或者"点分十进制的IP"必须先转化为"网络字节序",才能在网络环境中传输. TCP/IP 规定,网络数据流采用大端字节序 ...

  10. 网络传输大端序_基于大端法、小端法以及网络字节序的深入理解

    关于字节序(大端法.小端法)的定义<UNXI网络编程>定义:术语"小端"和"大端"表示多字节值的哪一端(小端或大端)存储在该值的起始地址.小端存在起 ...

最新文章

  1. 如何优雅地训练大型模型?
  2. 不理解Zookeeper一致性原理,谈何异地多活改造
  3. R构建朴素贝叶斯分类器(Naive Bayes Classifier)
  4. yield - python
  5. mysql查询根据季度查询_Mysql 按年、季度、月查询统计
  6. .NET中书写XML的一种简单方法
  7. AtCoder AGC043D Merge Triplets (DP、组合计数)
  8. 怎么才能更好的掌握Python这门语言?该怎么学呢?
  9. .netCore2.0 依赖注入
  10. java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘
  11. 三大开源生信基础教程和视频课程
  12. 正在此计算机上搜索更新,安装用友T3卡在最后一步windows update这里提示正在此计算机上搜索更新没有反应...
  13. 微型计算机2016年12月下,2016年12月计算机一级MS Office练习及答案
  14. 批量裁剪或延伸的lisp程序_10 行 Python 代码,批量压缩图片 500 张,简直太强大了...
  15. 关于docker的日常操作(二)
  16. centos6安装python3.4和pip3
  17. Microsoft Visual Studio 的下载与安装(傻瓜式)
  18. 业务流程图绘制方法经验谈(上篇)
  19. android、ios、windows等平台回声消除的解决方案
  20. 电脑屏幕怎么截取,常见的几种电脑截屏方法

热门文章

  1. C# 设置文件默认打开程序
  2. 般若波多密心经读书心得(一)
  3. 输入一个数字n,输出一个n层的特定三角形
  4. 实验指南:BGP路由汇聚(下)
  5. npm安装任何包都报错解决方法
  6. DevOps名言警句 - 2021
  7. 去日本东京旅行(1)-- 机场篇
  8. 【转】MUD教程--巫师入门教程4
  9. [cesium] | 3d特效渲染
  10. 393高校毕业设计选题