1、字面常量

常量:程序运行期间,固定不变的量。

Java 字面值常量类 java的字面常量不包括_intellij-idea

上图中"hello world", 666,3.14,'A',true,false都是常量,将其称为字面常量。

字面常量的分类:

(1)字符串常量:用" "括起来的常量,比如"abcde","你好"。

(2)整型常量:程序中直接写的数字(注意没有小数点),比如100,520。

(3)浮点数常量:程序中直接写的小数,比如3.14,9.98。

(4)字符常量:用' '括起来的单个字符,比如'A',' 1 ','张'。

(5)布尔常量:只有true和false两种。

(6)空常量:null。

2、数据类型

在Java中,数据类型主要分为基本数据类型和引用数据类型。

基本数据类型又分为四类八种:

四类:整型、浮点型、字符型、布尔型

八种:

Java 字面值常量类 java的字面常量不包括_intellij-idea_02

 注意:

(1)不论是在32位系统还是64位系统,int都占用4个字节,long都占用8个字节。

(2)整型和浮点型都是有符号的。

(3)整型默认为int,浮点型默认为double。

(4)字符串属于引用数据类型,该种类型后续介绍。

(5)计算机中表示空间大小的单位有:bit(比特位),byte(字节),kb,mb,gb......

  其中,1byte=8bit,1kb=1024byte,1mb=1024kb,1gb=1024mb......

3、变量

变量:顾名思义就是经常改变的量,数据类型就是用来定义不同种类的变量。

定义变量的语法格式:数据类型 变量名 = 初始值;

Java 字面值常量类 java的字面常量不包括_intellij-idea_03

 注意:

(1)在给变量赋初始值时,值不能超过该变量类型的取值范围,否则会导致溢出。

(2)变量在使用之前必须要赋初始值(如果没有合适的初始值,可以先赋0),否则编译会报错。

(3)布尔类型的变量只有两种取值:true表示真,false表示假。布尔类型和int不能相互转换,不存在0表示false,非0表示true的用法。

Java 字面值常量类 java的字面常量不包括_字符串_04

 4、类型转换

在Java中,当参与运算的数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)。

自动类型转换(隐式):即代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。

特点:数据范围小的转为数据范围大的时会自动进行。

Java 字面值常量类 java的字面常量不包括_java_05

 强制类型转换(显式):当进行操作时,代码需要经过一定的格式处理,不能自动完成。

特点:数据范围大的到数据范围小的。

Java 字面值常量类 java的字面常量不包括_数据类型_06

注意: 

(1)不同数据类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型。

(2)如果需要把范围较大的类型赋值给范围小的,需要强制类型转换,但可能导致精度丢失。

(3)将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查。

(4)强制类型转换不一定能成功,不相干的类型不能互相转换。

5、类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升为数据类型大的。

int与long之间,int会被提升为long

Java 字面值常量类 java的字面常量不包括_Java 字面值常量类_07

byte与byte之间 

Java 字面值常量类 java的字面常量不包括_Java 字面值常量类_08

byte和byte都是相同类型,报错的原因是,虽然a和b都是byte类型,但在计算a+b时会先将a和b都提升成int,再进行计算,而计算的结果也是int,这时把int赋给byte,就会报错。

由于计算机的CPU通常是按照4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte、short这种低于4个字节的类型,会先提升为int,再进行计算。

正确的写法:

Java 字面值常量类 java的字面常量不包括_数据类型_09

6、字符串类型 

在Java中使用String定义字符串类型,比如:

Java 字面值常量类 java的字面常量不包括_intellij-idea_10

字符串和整型数字之间的相互转换:

int转换成String:

Java 字面值常量类 java的字面常量不包括_Java 字面值常量类_11

String转换成int:

Java 字面值常量类 java的字面常量不包括_字符串_12

(本篇只是简单认识字符串)