在Java源代码中,字面值用于表示固定的值(fixed value)。数值型的字面值是最常见的,字符串字面值可以算是一种,当然也可以把特殊的null当做字面值。字面值大体上可以分为整型字面值、浮点字面值、字符和字符串字面值、特殊字面值。

1. 整型字面值

从形式上看是整数的字面值归类为整型字面值。例如: 10, 100000L, 'B'、0XFF这些都可以称为整型字面值。整型字面值可以用十进制、十六、八、二进制来表示。十进制很简单,二、八、十六进制的表示分别在最前面加上0B(0b)、0、0X(0x)即可,一般情况下,字面值创建的是int类型,但是int字面值可以赋值给byte, short ,char ,long ,int,只要字面值在目标范围以内,Java会自动完成转换,如果试图将超出范围的字面值赋给某一类型(比如把128赋给byte类型),编译通不过。而如果想创建一个int类型无法表示的long类型,则需要在字面值最后面加上L或者l。通常建议使用容易区分的L。所以整型字面值包括int字面值和long字面值两种。

2. 浮点字面值

浮点字面值简单的理解可以理解为小数。分为float字面值和double字面值,如果在小数后面加上F或者f,则表示这是个float字面值,如1.8F。如果小数后面不加F(f),如10.4。或者小数后面加上D(d),则表示这是个double字面值。另外,浮点字面值支持科学技术法表示。

float f1 = 1.23e-4F;

float f2 = 1.23E0F;

3 .字符及字符串字面值

Java中字符字面值用单引号括起来,如‘@’‘1’。所有的UTF-16字符集都包含在字符字面值中。不能直接输入的字符,可以使用转义字符,如‘\n’为换行字符。也可以使用八进制或者十六进制表示字符,八进制使用反斜杠加3位数字表示,例如'\141'表示字母a。十六进制使用\u加上4为十六进制的数表示,如'\u0061'表示字符a。也就是说,通过使用转义字符,可以表示键盘上的有的或者没有的所有字符。

常见的转义字符序列有:

\ddd(八进制) 、 \uxxxx(十六进制Unicode字符)、\'(单引号)、\"(双引号)、\\ (反斜杠)\r(回车符) \n(换行符) \f(换页符) \t(制表符) \b(回格符)

字符串字面值则使用双引号,字符串字面值中同样可以包含字符字面值中的转义字符序列。字符串必须位于同一行或者使用+运算符,因为java没有续行转义序列。

4 特殊字面值

null是一种特殊的类型(type),可以将它赋给任何引用类型变量,表示这个变量不引用任何东西。如果一个引用类型变量为null,表示这个变量不可用。

还有一种特殊的class literal,用type name加上.class表示,例如String.class。首先,String是类Class(java.lang.Class)的一个实例(对象),而"This is a string"是类String的一个对象。然后,class literal用于表示类Class的一个对象,比如String.class用于表示类Class的对象String。简单地说,class literal就是诸如String.class 、Integer.class这样的字面值,它所表示的就是类String、类Integer。如果输出Integer.class,你会得到class java.lang.Integer。List.class的输出为interface java.util.List。总之,class literal用于表示类型本身!

5 在数值型字面值中使用下划线。

JDK7开始,可以在数值型字面值(包括整型字面值和浮点字面值)插入一个或者多个下划线。但是下划线只能用于分隔数字,不能分隔字符与字符,也不能分隔字符与数字。

规则如下:

仅限单条下划线 ,不能多条相连。

数值开头和结尾不能出现下划线。

F、D 和 L的前后不能出现下划线。

二进制前导 b 和 十六进制 x 前后不能出现下划线。

public class Underline {

public static void main(String[] args) {

double d = 123_456_789.123_345;

System.out.println(d);

int i = 0b1111_1010_1111_1010_1111_1010_1111;

System.out.println(Integer.toBinaryString(i));

System.out.printf("%x%n", i);

long l = 0xfa_fa_fa_f;

System.out.printf("%x%n", l);

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

注意: Java 中 System.out.printf() 或 System.out.format() 中可以使用 %n 实现忽略平台间差异的换行符。对于 System.out.println(),仍然必须使用 \n。

参考:Java完全参考手册第八版

java 字面值_Java基础之字面值相关推荐

  1. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  2. java 必备_Java基础必备

    标签: 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希 ...

  3. cmd运行java文件_Java基础 前传

    微信搜一搜秃然编程 一.关于MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统.在美国微软公司推出Windows1.0.Windows3.0.1995年8月24日推出的操 ...

  4. java基本命令_java基础篇 快捷键 常见Dos命令等等

    (一) 计算机基础介绍 (二) jdk 安装 (三) 环境变量介绍及配置 (四) HelloWorld 实现 一 . 计算机概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算 ...

  5. java嵌套循环_java基础之嵌套循环

    一. for循环双层嵌套 首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环.(外循环控制行数,内循环控制每一行的个数) f ...

  6. java三板斧_JAVA基础学习 三板斧

    JAVA基础学习 -1 三板斧 1. 引子 最近因为工作需要,开始学习JAVA,我之前常用的编程语言是C,C#,C++,基本没有用JAVA,JAVA需要从基础开始学习了. JAVA是从C++优化而来: ...

  7. java包装_Java基础之神奇的包装类(一)

    1. 导读 JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题: .1 什么是包装类? 有了基本类型, 为什么还需要有包装 ...

  8. java练习_Java基础笔试练习(一)

    Java基础笔试练习(一) 1. 若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于() ? A.本地方法 B.最终方法 C.静态方法 D.抽 ...

  9. 判断三角形java代码_java基础编程题之异常处理

    以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力.今天的练习的十八题是java的异常处理的使用. 1.检测年龄不能为负数和大于 ...

  10. java数据类型_JAVA基础篇(数据类型)

    首先请大家想想这几个问题: 1.java数据类型是什么? 2.Java数据类型有什么用? 上一节(JAVA基础篇(函数))有个add函数,里面有两个int类型,int类型就是整数的意思,这一节我们来学 ...

最新文章

  1. 抱歉,我觉得有些人做副业并不靠谱
  2. “Hello,Github!——如何配置并上传一个已有项目到Git上
  3. 分布式数据库在金融应用场景中的探索与实践
  4. 实战系列-Java中线程安全集合类(二)
  5. SQL 存储过程中,将串连的字符串当表用。
  6. QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)
  7. coreos mysql_CoreOS 实战:在 UOS上体验CoreOS 操作全记录
  8. 如何修改朋友圈定位到其他异地城市
  9. centos查询 硬盘序列号查询_linux centos7非常有用的硬件信息查询命令
  10. 程序员的第一款 Hello World
  11. 4G升级5G需要换手机还是换手机卡,还是都不用换?
  12. js拆字分图程序 _拆分字帖_使用方法
  13. ncre计算机职业英语,NCRE计算机职业英语一级考试样卷.doc
  14. 奇安信2022面试题
  15. stlink故障修复
  16. 获取处于选中状态的checkbox的id值
  17. 因果关系发现:推开认知世界的大门
  18. 英语口语学习——洋话侃中国
  19. 推荐三大文献检索下载网站,超级实用!重点是免费
  20. D3.js树图tree 组织机构分布图(基于vue)

热门文章

  1. 将CString转换成string ...
  2. 《水晶报表自动补空行,补格线思路》 修正版 兼答Richard lee
  3. Java 集合中的快速失败(fail-fast)和安全失败(fail-safe)机制
  4. SQL查找是否存在,别再count了
  5. arm 环境下安装selenium+chrome
  6. 一份来自滴滴运维工程师的监控系统建设心得
  7. 移动先行之谁主沉浮? 带着你的Net飞奔吧!
  8. 关于数据库死锁的检查方法
  9. Directional Light,Ambient,Specular,光照感性认识...
  10. LSI存储论坛:6Gb SAS让DAS焕发新活力?