java的类类型转换_Java中的数据类型与类型转换

变量和类型

1. 整型变量(重点)

int

在Java中占四个字节,和操作系统无关,表示的数据 范围是 -2^31 --2^31-1 。

基本语法格式

185d90f918559dcbe974d4482c8ec606.png

代码示例

a5b734e8e1d1a27c62fc3c773a2e893d.png

注意事项

1.int表示变量的类型是一个整型

2.变量名是变量的标识,后续都是使用这个名字来使用变量

3.java中 = 表示赋值(和数学中不一样),意思是给变量设置一 个初始值

4. 初始化操作是可选的,但是建议创建变量的时候都显示初始化

5.最后不要忘记 ; 否则会编译失败

如何查看java中的整型数据范围

0346e68e428b167d9084a60a1ee85129.png

超出范围会溢出

ebdabe8e722031e3561e075915f14fc5.png **

2.长整型变量**

语言

方法

7977

MmC3u81J7Z

9440

2012.05.20 01-49-32

long

在Java中占八个字节,表示的数据 范围是 -2^63 --2^63 -1 。

基本语法格式

d7f7ec5122b1fda66001a9aae9587647.png

代码示例

df576527acabf4ea1ec5d1e564198920.png

注意事项

1.初始化设定的值为10L,表示一个长整型的数字,10l也可以,建议使用大写,因为好辨识。

2.使用10初始化也可以,但是10的类型是int,10L的类型是long,

如何查看java中的长整型数据范围

0666601657dc5aa7f76f6f2b1ab1be1e.png

3.双精度浮点型变量(重点)

double

在Java中占八字节,Java中的double虽然也是八个字节,但是浮点数的内存布局与整数差别很大,不能单纯的使用2^n来表示数据范围

基本语法格式

7b6a1bcf6b6a1d0f2f4a8de48bc0c486.png

代码示例

80d27323aceaac32b85fd6e39382e812.png

神奇代码

double num = 1.1;

System.out.println(num*num);

//执行结果 1.2100000000000002

//存在精度误差

注意事项

尽量不要用两个double类型的数据比较相等(因为存在精度误差,所以可能导致出错,建议使用做差再与预期值比较的方式来判定是否相等)

4.单精度浮点型变量

float

在java中占四字节

基本语法格式

3feaee2738c46e8f6d5506fcc1ebdd31.png

代码示例

1f3a62dcf2af33638c1612cb00c15cd2.png

注意事项

由于float表示的数据精度范围较小,一般在工程上用到浮点数都优先考虑double,不太推荐使用float

5.字符类型变量

char

在Java中占2个字节,表示的数据范围0–2^16,没有负数。

基本语法格式

e7ed5bc3c118cad3e9d3cfb32729ab09.png

代码示例

8cc71f78cef117fc2578ea4baf5da143.png

注意事项

1.Java中使用 单引号 + 单个字母的形式表示字符字面值

2.计算机的字符本质上是一个整数,在C语言中使用ASCLL表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文。

3.代码中有中文时编译加上 -encoding UTF-8

6.字节类型变量

byte

在Java中占一个字节,表示范围-17–27-1

基本语法格式

eee313c254c865c810e731d5c7fa808a.png

代码示例

68fd19a2b537028b2328cce8361db190.png

注意事项

1.字节类型表示的也是整数

2.字节类型和字符类型互不相干

7.短整型变量

short

在Java中占两个字节,表示的数据范围是 -2^15 — -2^15-1

基本语法格式

b4aa871cdf2fae8598741a62cf148810.png

代码示例

c0973963493e47f40927bb8a0717ae9d.png

注意事项

数据表示范围比较小,一般不推荐使用

8.布尔类型变量

boolean

基本语法格式

3ef4663469d021d382dcfb73e75e48c0.png

代码示例

05ea2a0f1cc710b7fa384d13712eb4ed.png

注意事项

1.boolean类型的变量只有两种取值,true表示真,false表示假

2.java的int类型和boolean类型不能相互转化,不存在1表示true,0表示false这样的用法

3.Boolean类型有些JVM的实现是占一个字节,有些是占一个比特位,这个没有明确规定

9.字符串类型变量

String

基本语法格式

99c786360673afd48c8940cf41f7b43c.png

代码示例

06bbef7bec865e3d43e7a4c70cd90721.png

注意事项

1.Java使用 双引号 + 若干字符 的方式表示字符串字面值

2.String不再是基本数据类型,而是一个标准库自带的类。类就是用户自定制的类型(高配结构体)

3.是引用类型

4.字符串中的一些特定的不太方便表示的字符需要进行转义

10.变量的作用域

Java中没有全局变量,只有局部变量和成员变量

局部变量作用域在{}内有效

Java中一般不考虑生命周期

Java中的内存释放有专门的垃圾回收机制来负责

11.常量

常量:指的是运行时类型不能发生改变

常量主要有以下两种体现形式

字面值常量

5e7329efdecde655f93d908cc7da8fe2.png

final关键字修饰的常量

final int a = 10;

注意事项

1.可以不在定义的同时初始化,一旦被初始化就不能被修改

2.final 不仅可以修饰变量还可以修饰 方法,类,接口

12.理解类型转换

int 和 long/double 相互赋值

c964171a8a9001de44b19cf60dbca04e.png

long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int. double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.

结论:不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.

int 和 boolean 相互赋值

e5c3c239062f3c0de329fda0350d4afb.png

结论: int 和 boolean 是毫不相干的两种类型, 不能相互赋值.

int字面值常量 给 byte 赋值

2c0f7d37f85804d0b61d29835ad72837.png

注意: byte 表示的数据范围是 -128 -> +127, 256 已经超过范围, 而 100 还在范围之内.

结论: 使用字面值常量赋值的时候, Java 会自动进行一些检查校验, 判定赋值是否合理.

使用强制类型转换

0dd6266a39ceb2dc2576112d54871647.png

结论: 使用 (类型) 的方式可以将 double 类型强制转成 int. 但是 1. 强制类型转换可能会导致精度丢失. 如刚才的例子中, 赋值之后, 10.5 就变成 10 了, 小数点后面的部分被忽略. 2. 强制类型转换不是一定能成功, 互不相干的类型之间无法强转.

特殊情况

afef1e4229f91eb60f4211c73301c491.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值