为什么java中的int型占4个字节,而c语言中的int却占2个字节, 一个整型值占多少个字节不是取决于电脑吗?
3个回答
2023-03-08
展开全部
好问题。
首先c语言的int类型的字节数并不是固定的,它与编译器相关,这也是c语言这类语言的一个缺点,就是它与机器有关,你在这台机器上的c代码能正常编译运行,换一台机器可能就有问题。
而java的一个最大的优点是跨平台,就是所谓的Write once,run everywhere,同一份java代码编译成功后可以到处运行。但既然是代码,总要跟机器打交道吧,难道就不会出现不兼容的问题吗?会的,但是这部分jvm已经给你做好兼容了,你不需要再考虑。所以java的int就是占4个字节,在Windows上占4字节,在linux上也占4个字节。作为java程序员就不用去考虑机器兼容性的问题了。
为什么c语言的int要用2字节而不是一开始就定义为4字节?因为c语言出现得很早,在当时内存还是很宝贵的资源。比如90年代初一台pc的内存可能只有64M,在这64M上除了要跑一个操作系统,还得跑其他软件,这就要在内存方面能省则省。当然在省内存方面任天堂的FC游戏机卡带似乎更有发言权,有兴趣可以了解一下。
现在的程序员特别是做应用层的在写代码时可能不会再把省内存当做是很重要的事了,毕竟现在一个手机的内存都有8G起了,完全够开发人员挥霍的。
首先c语言的int类型的字节数并不是固定的,它与编译器相关,这也是c语言这类语言的一个缺点,就是它与机器有关,你在这台机器上的c代码能正常编译运行,换一台机器可能就有问题。
而java的一个最大的优点是跨平台,就是所谓的Write once,run everywhere,同一份java代码编译成功后可以到处运行。但既然是代码,总要跟机器打交道吧,难道就不会出现不兼容的问题吗?会的,但是这部分jvm已经给你做好兼容了,你不需要再考虑。所以java的int就是占4个字节,在Windows上占4字节,在linux上也占4个字节。作为java程序员就不用去考虑机器兼容性的问题了。
为什么c语言的int要用2字节而不是一开始就定义为4字节?因为c语言出现得很早,在当时内存还是很宝贵的资源。比如90年代初一台pc的内存可能只有64M,在这64M上除了要跑一个操作系统,还得跑其他软件,这就要在内存方面能省则省。当然在省内存方面任天堂的FC游戏机卡带似乎更有发言权,有兴趣可以了解一下。
现在的程序员特别是做应用层的在写代码时可能不会再把省内存当做是很重要的事了,毕竟现在一个手机的内存都有8G起了,完全够开发人员挥霍的。
展开全部
C的数据类型占的字节数不同应该和编译器有关,比如int和long不同编译器就不一样。
char就不一样了,java占两个字符,C占一个字符。这就像楼上说的java使用unicode编码,而C用ASCII编码。所以java要占两个字节,而且char可以存储汉字
而java和C在int方面没有可比性。C中的
int范围应该等于java的short吧
char就不一样了,java占两个字符,C占一个字符。这就像楼上说的java使用unicode编码,而C用ASCII编码。所以java要占两个字节,而且char可以存储汉字
而java和C在int方面没有可比性。C中的
int范围应该等于java的short吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果我没说错的话这应该跟编程语言的编码方式有关
C语言的编码方式是ASCII码而Java用的是Unicode字节码
C语言的编码方式是ASCII码而Java用的是Unicode字节码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询