解析java中的字面量和字符类型

1.字面量含义

固定不变的量,我们人为所给的一些数据。例如77和88都是整型字面量,1.88和1.99F是浮点型字面量,'中’是字符型字面量,"dfguyfg"是字符串字面量。

2.为什么要用字面量?

它是和变量进行区分的一个概念,字面量是赋值给变量的数据,也就是说变量里面存储的值就是字面量.

3.怎么用?

a.整数型字面量

a.1 整型字面量在java当中的数据类型默认都是int类型

a.2 但是如果定义的变量的数据类型是byte,short char这三种且没有超过他们的取值范围,那么此时就可以直接赋值,不会出现int类型转换成byte类型可能有损失这种情况。

那么如何表示long类型的字面量呢?
在数值后面加上L或l即可(建议大写,小写l看上去像个1),如189L就是个long类型的字面量

b.浮点型字面量

浮点型字面量在java当中的数据类型默认都是double类型
那么如何表示float类型的字面量呢?
在数值后面加上F或f即可,例如1.99f,9.89F都是属于float类型的字面量

4.易错问题分析与解答

a.整数型字面量

1.阅读以下代码,你觉得是报整数过大,超出其范围的错误还是int类型转换成byte类型可能会有损失的错误呢?

public class Test{public static void main(){byte m=128;}
}

正确答案: 在cmd窗口中运行时程序会报错,提示的报错信息为: 不兼容的数据类型,int类型转换成byte类型可能会有损失

理由:因为128属于整数类型的字面量,而整数类型的字面量默认都是int类型的数据,你把一个int类型的数据赋值给一个byte类型的变量,就相当于是大范围的数传给小范围的数,是需要强转的,而此题并没有进行强转,因此会出现int类型转换成byte类型会有损失这样的错误提示

代码运行截图如下所示:

2.阅读以下代码,你觉得是报整数过大,超出其范围的错误还是不报错???

public class Test{public static void main(){long m=2147483648;//int类型的上限值为21474836647}
}

正确答案: 在cmd窗口中运行时程序会报错,提示的报错信息为: 过大的整数: 2147483648

理由:因为2147483648属于整数类型的字面量,只有在数值后面加上了L或l才代表该数为long类型的字面量数据,而整数类型的字面量默认都是int类型的数据,

而int类型的取值范围为[-2147483648,2147483647],很显然2147483648超出了int类型的范围,因此会出现整数过大(实际上意思是超出了其取值范围)的错误提示

代码运行截图如下所示:

b.浮点型字面量

1.阅读以下代码,你觉得是报浮点数过大,超出其范围的错误还是double类型转换成float类型有损失

public class Test{public static void main(){float number=2147483648.0;}
}

正确答案: 在cmd窗口中运行时程序会报错,提示的报错信息为: 不兼容的数据类型,double类型转换成float类型可能会有损失

理由:因为2147483648.0属于浮点型类型的字面量,而浮点型类型的字面量默认都是double类型的数据,这时你把一个double类型的数据赋值给一个float类型的变量,就相当于是大范围的数传给小范围的数,是需要强转的,而此题并没有进行强转,因此会出现double类型转换成float类型可能会有损失这样的错误提示

代码运行截图如下所示:

2.阅读以下代码,你觉得是报错还是不报错???

public class Test01 {public static void main(String[] args) {// TODO Auto-generated method stubfloat m=2147483648.0f;System.out.print(m);//float类型的上限值和int类型的上限不是一样的,它比int类型的上限要大很多//因此它不能用2147483648去进行范围的比较操作//这个.0也可以去掉,为了使大家看的更具体}
}

正确答案: 在eclipse里面可以运行,不报错

理由: 浮点型的数据值的算法和整数型数据值的算法完全不一样,且float类型比int类型的上限值2147483647要大很多

代码运行截图如下所示:

解析字符类型

1.含义

​ 用来标识单个英文字母、单个中文含子或者特殊符号(转义字符)的数据类型

2.为什么要用这个?

因为电脑是看不懂我们写的英文字母或者中文汉字的,所以需要一个映射表,根据映射表把英文字母或者中文汉字解析成对应的数字,数字再进一步解析成0101这种的机器语言,这样操作系统就可以根据机器语言对英文字母和中文单词进行操作了。

3.怎么用?

语法: char 字符类型的变量名=‘单个字符’

​ char 字符类型的变量名=数字;

需要注意的事项如下:

1.第二种语法实际上是拿数字去映射表上找对应的字符,然后把字符存储到char类型的变量中.因此数字不能超过char类型的取值范围[0,65535]

2.char类型的变量无论是采用哪种语法,输出的结果都是一个字符,如果你想让其输出字符在映射表上对应的数字,只需要输出的字符前加上**(整型数据类型)**即可,这个整型数据类型是byte,short,int,long都行,示例代码如下所示:

public class Work01 {public static void main(String[] args) {char temp='F';System.out.print((long)temp);}
}

示例运行截图如下所示:

解析java中的字面量和字符类型相关推荐

  1. java byte 字面量_Java中的字面量

    在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(natation).几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数.浮点数以及字符串:而有很多也对布尔类型和 ...

  2. java 字符串是对象吗_解析Java中的String对象的数据类型

    解析Java中的String对象的数据类型 2007-06-06 eNet&Ciweek 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所 ...

  3. java 获取spring对象数组_解析Java中如何获取Spring中配置的bean

    解析Java中如何获取Spring中配置的bean Java中如何获取Spring中配置的bean?下面是由百分网小编为大家整理的解析Java中如何获取Spring中配置的bean,喜欢的可以收藏一下 ...

  4. java method field_java_解析Java中的Field类和Method类,Field类 Field类中定义了一些方 - phpStudy...

    解析Java中的Field类和Method类 Field类Field类中定义了一些方法,可以用来查询字段的类型以及设置或读取字段的值.将这些方法与继承而来的member方法结合在一起.就可以使我们能够 ...

  5. 解析java中的继承

    解析java中的继承 1 含义 在符合当代社会的约定俗成的逻辑的情况下,很多类具有相同的属性和方法,我们这些共有的属性和方法抽象成一个类后,通过extends关键字使得很多类与抽象成的类建立父子关系, ...

  6. 解析java中的方法重写

    解析java中的方法重写 1 含义 子类继承父类后,可以在子类中书写一个与父类同名同参的方法,从而实现对父类中同名同参数的方法的覆盖,我们把这一过程叫做方法的重写(override) 2 为什么要使用 ...

  7. 解析java中方法的重载和重写之间的区别与联系

    解析java中方法的重载和重写之间的区别与联系 1 不同点 1.1 方法重写是在不同的类中(父子类),方法重载是在同一类中 1.2 方法重载最初的目的是构造方法的多样化,方法重写的目的是让重写的方法满 ...

  8. 解析java中的除法运算和取模运算

    解析java中的除法运算和取模运算 A.除法运算 a.含义及其语法 除法运算就是被除数除以除数的这一过程 语法: 被除数/除数 注意:除数不能为0,且被除数和除数都得是数字 b.应用场景 1.和取模运 ...

  9. 简要解析Java中的throw和throws关键字

    解析Java中的throw和throws关键字 1 throws关键字 1.1 作用 向上抛异常,把异常交给调用处处理,实际上自身并没有处理异常. 1.2 原理 一旦方法体出现异常,仍会在异常代码出生 ...

最新文章

  1. 使用alterMIME实现添加message footer功能
  2. 《转》每天起床时,优秀创业者都会问自己这3个问题
  3. 下载量超 20 亿的 8 款 Android 应用涉广告欺诈,谁在“猎杀”猎豹移动?
  4. java 获取本机mac地址并转为字符串
  5. HR_Hash Tables: Ransom Note
  6. 利用access创建数据字典_VBA数组与字典解决方案54讲:利用字典和数组提取数据并按行回填...
  7. MySQL安装包下载地址(含所有版本)
  8. html5新标签转换插件,GOOGLE推出SWIFFY插件 一键转换SWF到HTML5
  9. 解决springboot上传文件报错:The field XXX exceeds its maximum permitted size of 1048576 bytes
  10. 步态分析——信度以及效度
  11. 安卓设计师不容错过的15款实用UI界面设计工具
  12. Excel程序员常用快捷键
  13. 修改已经上线的小程序名称
  14. photoshop图层锁无法解开编辑不能新建图层很多功能灰色不能操作 原因新建时选了RGB32位。选8或16位才能新建图层
  15. android将图片转成字符串,再将字符串转成图片
  16. Hadoop3.2.1 【 YARN 】源码分析 : ApplicationMasterService 源码浅析 [ 一 ]
  17. 关于oracle数据库死锁的解决 以及产生的原因
  18. window服务如何通过程序如何打开谷歌浏览器并登陆指定网站_亚马逊如何看listing销量,亚马逊如何看销量排名...
  19. zzuli oj 1122 小明同学的调查作业
  20. 福利爬虫妹子图之获取种子url

热门文章

  1. 搭建 SVN Linux服务器
  2. 计算机桌面图标教案,个性化桌面 教案
  3. mongodb备份集合
  4. 应该没有消遣式学习,提高时间碎片的价值
  5. char 类型与lpcwstr_CString与LPCWSTR、LPWSTR等数据类型的转换 | 学步园
  6. android 系统天气插件,天气插件平台-天气预报插件-免费天气预报代码—中国天气网...
  7. Android之?,@,@+代表的作用和意义
  8. 谷歌开源Gumbo:纯C语言实现的HTML5解析库
  9. 深入浅出PaddlePaddle函数——paddle.arange
  10. 【iOS内购支付】Uniapp拉起苹果内购支付注意事项、实现步骤以及踩过的坑(手把手教程)