1、字面常量
如System.Out.println("Hello World");语句中的Hello World 就是字面常量。常量即在程序运行期间,固定不变的量称为常量,又如:a、b、你好等等
public class
Demo
{
public static
void
main
(
String
[]
args
){
System
.
Out
.
println
(
"hello world!"
);
System
.
Out
.
println
(
100
);
System
.
Out
.
println
(
3.14
);
System
.
Out
.
println
(
'A'
);
System
.
Out
.
println
(
true
);
System
.
Out
.
println
(
false
);
}
}
其中hello world、100、3.14、'A'、true、false,这些都是常量,将其称为字面常量。
字面常量的分类:
1.
字符串常量:由
""
括起来的,比如
“12345”
、
“hello”
、
“
你好
”
。
2.
整形常量:程序中直接写的数字
(
注意没有小数点
)
,比如:
100
、
1000
3.
浮点数常量:程序中直接写的小数,比如:
3.14
、
0.49
4.
字符常量:由 单引号 括起来的当个字符,比如:‘A’、
‘1’
5.
布尔常量:只有两种
true
和
false
6.
空常量:
null
注意:字符串、整形、浮点型、字符型以及布尔型,在
Java
中都称为数据类型
2、数据类型
java中数据类型主要分为两类:基本数据类型和引用数据类型。
基本数据类型又分为四类八种:
1.四类:整型、浮点型、字符型和布尔型
2.八种:
![](https://img-blog.csdnimg.cn/direct/f26dcf9895154088bea6ba49d77cd5bd.png)
3.变量
变量顾名思义即会经常改变的量,如人的年龄、时间、分数等
对
于这些经常改变的内容,在
Java
程序中,称为变量
。
而数据类型就是用来定义不同种类变量的
。
语法格式:
数据类型 变量名
=
初始值
;
如:int a = 100;
要注意取得的初始值不要超过数据类型的可取最大值,如byte类型为1个字节8个比特位,byte的取值范围为:-128~127
byte a = 128; //java系统会报错
4.类型转换
java在不同类型之间的变量相互赋值时会自动检验
int
a
=
10
;
long
b
=
100L
;
b
=
a
;
//
可以通过编译
a
=
b
;
//
编译失败
在Java
中,当参与运算数据类型不一致时,就会进行类型转换。
Java
中类型转换主要分为两类:自动类型转换
(
隐 式)
和 强制类型转换
(
显式
)
4.1自动类型转换
(
隐式
)
即代码不需要经过任何处理,在代码编译时,编译器会自动进行处理
。特点:
数据范围小的转为数
据范围大的时会自动进行
。
System
.
Out
.
println
(
1024
);
//
整型默认情况下是
int
System
.
Out
.
println
(
3.14
);
//
浮点型默认情况下是
double
int
a
=
100
;
long
b
=
10L
;
b
=
a
;
// a
和
b
都是整形,
a
的范围小,
b
的范围大,当将
a
赋值给
b
时,编译器会自动将
a
提升为
long
类型,然后赋值
a
=
b
;
//
编译报错,
long
的范围比
int
范围大,会有数据丢失,不安全
4.2强制类型转换
(
显式
)
强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。
int
a
=
10
;
long
b
=
100L
;
b
=
a
;
// int-->long
,数据范围由小到大,隐式转换
a
=
(
int
)
b
;
// long-->int,
数据范围由大到小,需要强转,否则编译失败
注意:
1.在不同数字类型的变量之间赋值,通常
表示范围更小的类型能隐式转换成范围较大的类型
2.
如果需要把范围大的类型赋值给范围小的
,
需要强制类型转换
,
但是
可能精度丢失
3.byte类型和byte类型之间的赋值会报错的原因是cpu一次计算可读取4个字节,为了方便读取一般会把byte数据类型提升到int类型去计算,