3.7.1 整数字面量

整数可能是在典型的程序中最常用的类型。任何一个数字的值就是一个整数字面量。例如1,2,3和42。这些都是十进制的值,这意味着对他们的描述基于数字10。还有另外2 种进制被整数字面量使用,八进制(octal,基数是8)和十六进制(hexadecimal,基数是16)。在Java 中对八进制的值通过在它的前面加一个前导0来表示。正常的十进制的数字不用前导零。这样,看起来有效的值09将从编译器产生一个错误,因为9超出了八进制的范围0~7。程序员对数字更常用的是十六进制,它清楚地与8的大小相匹配,如8,16,32,和64位。

通过前导的0x或0X表示一个十六进制的字面量。十六进制数的范围是0~15,这样用A~ F(或a~f)来替代10~15。

整数字面量产生int 值,在Java 中它是32位的整数值。既然Java 对类型要求严格,你可能会纳闷,将一个整数字面量赋给Java 的其他整数类型如byte 或long 而没有产生类型不匹配的错误,怎么可能呢。庆幸的是,这个问题很好解决。当一个字面量的值被赋给一个byte 或short型的变量时,假如字面量的值没有超过对应类型的范围时不会产生错误

重点在第二段:

1、整数字面量产生int值

2、当一个字面量值被赋值给一个byte或short型的时候,如果字面量值没有超出对应类型的范围不会产生错误。

我试了下,确实是这样:

byte a = 100;(可以,100没超过byte范围)

byte b = 1000;(错误,1000超过了byte范围,int不能转为byte)

这段话解决了我之前的疑惑,目前我还是觉得int a = 3;花费两个4字节的内存,3在常量池中占4个字节,a在栈中占4个字节,将3的4个字节赋值到a的4个字节中。

至于你说3是11放在哪里,也许你说的是没有载入虚拟机,在.class文件中躺着的时候。但是类被载入虚拟机后,我就无法理解11怎么存在与内存中了。

虚拟机具体是怎么弄的,空了再查看吧,工作了。

java int a=b指向_java里int a=3,给a赋值的时候,是给它3的地址,还是直接赋值二进制3?...相关推荐

  1. java int转无符号_Java中int或long等整型数值如何转换为无符号整数

    Java8 为 Integer.Long包装类增加了如下方法: static  String  toUnsignedString(int/long i):将指定int或long型整数转换为无符号整数对 ...

  2. java int值的范围_java中int的取值范围是多少

    java中int的取值范围是多少 发布时间:2020-06-26 14:53:13 来源:亿速云 阅读:159 作者:Leah 今天就跟大家聊聊有关java中int的取值范围,可能很多人都不太了解,为 ...

  3. java 数值越界的判断_java 中int 范围越界校验算法

    LeetCode上老有String 或者 char[]转int的算法,在计算之前需要分析计算是否会超过int 的范围,自己写了一个算法mark 一下.该算法用于       高位乘10 并加低位    ...

  4. java遍历是什么意思_java里这句话是怎么起到遍历的作用的? Java循环遍历什么意思...

    这个叫什么玩意来着我忘记了,反正是for里面的一个方法,你可以把他看成int m m属于这个集合中,m++:这样子,刚才查了下是叫增强型for循环,弊端是无法初始化Arraylist对象,要找数中某个 ...

  5. java执行sql列名无效_JAVA 里查找SQL数据 列名无效

    代码长这样try{Connectionconn=DriverManager.getConnection(url,username0,password0);//连接URL为jdbc:mysql//服务器 ...

  6. java转换2进制_java里怎样把文件转换成二进制

    展开全部 转换文件成为二进制数据并保存的32313133353236313431303231363533e78988e69d8331333365643661Java代码: 取出数据并还原文件到本地的j ...

  7. java 取10位时间戳_java里Date 10位时间戳(Timestamp) String 相互转换

    有很多注释,就不做过多解释了 import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseExcepti ...

  8. java最全人名数组_java 里有两个方法 第一个方法定义一个数组 每个数组都是一个学生类 每个学生有姓名 学号 年龄...

    匿名用户 1级 2015-12-01 回答 写了一半,剩下的自己来吧. /** * Filename:    student.java * Create at:   2015年11月30日 上午9:2 ...

  9. java 两位小数 四舍五入_java里的四舍五入(保留两位小数,返回double类型)

    1.最简单的操作,验证之后是准确的四舍五入 double payPercent=123.345; System.out.println((double)Math.round(payPercent*10 ...

最新文章

  1. 【建议收藏】Spring Boot注解全梳理!
  2. windows下安装ElasticSearch的Head插件
  3. 【学亮说】Java实现单例模式的8种方式(你真的搞懂单例模式了吗?)
  4. Linux学习之01_基础命令介绍
  5. 佩服!终以一作发Science的她,竟也曾经历“直博转硕士”,艰难毕业!
  6. 计算机专业刚毕业本科生,计算机专业应届本科毕业生自我鉴定
  7. NumPy 基础知识·翻译完成
  8. 吴恩达神经网络和深度学习-学习笔记-4-深度网络
  9. 细数2011TurboMail企业邮箱功能新飞跃
  10. 解决vscode下载很慢的问题
  11. Unity实现多语言切换
  12. IB心理学社会文化介绍
  13. 求职简历中一些常见的问题
  14. 用Python告诉你深圳房租有多高?
  15. 测序是测量你的遗传信息
  16. 重视论文降重,应对论文查重
  17. windows编写linux脚本,适用于 Windows 和 Linux 的脚本编写工具包
  18. 790-C语言的数组元素下标为何从0开始?
  19. 通达信接口的定义和实现
  20. 联想服务器改win7系统教程视频,联想台式电脑win10改win7系统教程

热门文章

  1. js中将html文档写入静态界面当中
  2. jQuery - 按回车键触发跳转
  3. vue从入门到进阶:Class 与 Style 绑定(四)
  4. 2、Jupyter Notebook 快速入门
  5. Android多媒体开发(3)————使用Android NKD编译havlenapetr-FFMpeg-7c27aa2
  6. 构建之法阅读笔记(二)
  7. sqlplus 登陆报协议适配器错误
  8. 如何:让Oracle表及字段显示为区分大小写
  9. dp HDU - 5074
  10. 学习日记0904并发编程socketserver模块 进程理论