java中整数数值默认是int类型,这句话正确吗?
高洛峰
高洛峰 2017-04-18 10:51:57
[Java讨论组]

比如byte b = 1; char c = 1;,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
迷茫

首先,整数类型默认是int。这个毫无疑问。
其次,在允许的类型范围内,在此处byte:-128~127
而整数int 1 在这个范围,编译器会对常量自动进行向下的转化。
如果超出这个范围的常量,编译器直接报错。

天蓬老师

byte,short,char,boolean在底层都是当做int来处理的

天蓬老师

不对的,两个整形相加,如果小于等于int,则默认是int,如果其中一个为long,则默认按照long;

你试试申明两个byte变量,然后相加赋值给另一个byte变量,编译器会提示出错的,需要强制类型转换的

PHP中文网

看看这篇:http://www.programgo.com/arti...

阿神

分自动转换和强制转换的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号