变量占据的字节数的问题。

来源:互联网 发布:小区物业管理系统源码 编辑:程序博客网 时间:2024/05/19 04:27

# 不同语言相同的基本数据类型

在C语言中基本数据类型

C语言中的数据类型我们肯定很熟悉了,比如int , float, double , char之类的。学习比较仔细的同学可能曾经疑惑过很多东西。比如整型int 在内存中所占据的字节数的大小。因为有人说是4字节,也有人说是2字节。我也疑惑过。所以请看下文。

在这里我们浅谈基本数据类型占据的字节数

浅谈C语言中基本类型所占用的字节数:计算机的发展,由于操作系统的发展逐渐分为两种:Win32位和Win64位。而C语言规定:每种类型所占用内存的大小由编译器和编译系统自行决定.在Win64系统,vc++6.0内规定了int型占用4字节。但是不同的编译器在不同的操作系统上为同一类型的数据分配的内存空间是不相同的。如vc++6.0,在Win64系统上为int分配4字节。但在Win32操作系统上分配2字节。所以每种基本数据类型在不同的编译器和不同的操作系统中,分配的大小是不相同的。也就是说C语言中的基本类型所占用的大小不仅仅由编译器决定,同样也由操作系统和编译系统决定。二者共同决定。

但是JAVA就不一样了。由于JAVA运行在JVM(java虚拟机),所以JAVA是不依赖操作系统和编译系统的。字节数的大小是确定的。在Sun公司出品的Hotspot这种JVM就直接规定了各种基本类型数据的大小。他的大小由JVM决定。二者对比。

java中的基本类型数据与C语言的区别

说道这里还有一点没有说过。C语言中基本数据类型存在普通类型和无符号类型,而JAVA中并不存在无符号类型的基本数据类型,只有普通的int, float, double之类的。听说微软好像有一年对某一个人的面试中提到过这个东西。问了无符号的int在64位操作系统的条件下vc++6.0表示的数据的范围。相信很多人都不记得普通的int类型在这种情况下,他的表示范围。你可以在不看书,不查百度的情况下自己测试测试自己的细心程度。当然这种问题答不出来并不算什么,答出来也只说明平时比较认真而已。不必深计较。但是认真的人肯定不会错。32次方和31次方的区别从0开始和从负的2的31次方这两个东西可以看看书。

记得笔者入坑JAVA的时候,曾经和JAVA老师交流过关于字节数大小的问题。老师也给了很多他自己的看法。笔者的老师曾经是一位JAVA开发工程师,虽然当老师已经10多年了。但是从撸代码的速度和质量上来看确实和其他任课老师有较大的优势。是我最尊敬的老师之一。

因为笔者明年找实习的时候可能不会做C语言相关的工作,入坑JAVA了,所以大部分东西还是对比着JAVA。关于更多JVM后续会在相关地方发布学习体会。后续也会推送一些关于JAVA的东西。都是很浅显的理解。

细小的知识需要平时的累积,我觉得一个人的学习态度从很多地方可以看出。做软件开发的同学第一点就应该是细心。在此再引申一个问题:出栈和入栈的时候是先进行自加自减,还是先操作数据的。同样的提现的是一个人的细心程度和写过代码的能力。这些经常写代码的同学应该是知道的。加油咯。可以自己测试测试自己的细心程度。

原创粉丝点击