【JavaSE】数据类型和变量

Java中的数据类型和变量和C语言有相似的地方,也有不同的地方,这里只针对不同的地方进行重点介绍

目录

1.字面常量

2.数据类型

3.整型变量

4.浮点型变量

4.1单精度浮点型

4.2双精度浮点型

5.字符型变量

6.布尔型变量

7.不同数据类型变量的转换

7.1强制类型转换

7.2数据类型提升

 8.字符串

8.1String和int的转换


1.字面常量

常量即固定不变的量,不管程序如何运行,其本身并不会改变,Java中的字面常量如下:

1.由双引号括起来的字符串,比如:"12"、"call"等

2.程序中直接写的整数和小数,比如:13、15.2等

3.由单引号括起来的字符,比如:'a'、'5'等

4.布尔常量true和false

5.空常量

2.数据类型

Java的数据类型可分为两类:基本数据类型和引用数据类型

基本数据类型包括:整型、浮点型、字符型和布尔型四类

引用数据类型包括:字符串、数组、类等

本篇的重点是基本数据类型和字符串,引用数据类型后续再介绍

3.整型变量

数据类型关键字占用内存(字节)取值范围包装类
整型int4-2^31~(2^31)-1Integer
长整型long8-2^63~(2^63)-1Long
短整型short2-32768~32767Short
字节型byte1-128~127Byte

什么是包装类这里暂时跳过,在后面的博客中会给出答案,上述数据类型需要注意的点:

1.C语言中16位的操作系统int占两个字节,但在Java中int就是4个字节,和操作系统无关,long同理

2.整型没有无符号整型一说,都是带符号的,浮点数也是

3.整型默认为int,浮点数为double

4.Java中变量一定要初始化,未初始化程序会报错

5.初始化的值不能超过其取值范围,否则会溢出

6.关于长整型需要注意的是,因为整型默认是int,所以使用和int有所不同:

long a=5L;

后面的L没有规定必须是大写,但为了防止将小写的l错认为是数字1,所以建议大写

4.浮点型变量

浮点型变量又单精度浮点型和双精度浮点型两种,浮点数的存储同C语言中浮点数的存储,这里就不再赘述

想了解的去这篇博客👉C语言内置数据在内存中的存储_星鸦wyk的博客-CSDN博客

4.1单精度浮点型

关键字:float

所占空间大小:4个字节

包装类:Float

由于浮点数默认是双精度浮点型,所以float使用如下:

float a = 1.3f;

4.2双精度浮点型

关键字:double

所占空间大小:8个字节

包装类:Double

有一点需要明确:不管是double还是float,它们的值都是近似值,不可能绝对准确,但double的精确度要高于float

5.字符型变量

关键字:char

所占空间大小:2个字节

包装类:Character

回想一下C语言的char:我们将一个整数赋值给char然后以%c的形式打印,会打印对应的ASCII码值,那么Java中的char是否也能这样使用?

答案是可以,Java中打印的是Unicode字符集中的内容

6.布尔型变量

关键字:boolean

所占空间大小:没有明确规定

包装类:Boolean

在C语言中有0表示false,非0表示true的情况,但在Java中这种情况不存在,布尔型变量只有true和false两个值 

7.不同数据类型变量的转换

7.1强制类型转换

一般变量由数据范围小的转换为数据范围大的情况编译器会直接处理,而反过来则需要手动处理,即强制类型转换

依旧是使用小括号,用法和C语言类似

7.2数据类型提升

不同数据类型变量进行计算,依旧是数据类型小的会被提升到数据类型大的

需要注意的是小于4个字节的数据类型:

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

所以类似下面的代码会报错:

 要想不报错c改为int,或a+b强制转换为byte

 8.字符串

包装类:String

在C语言中一般会用数组来接收字符串,在Java中有所不同

String a = "call";

两个字符串可以使用符号“+”来进行拼接,这一点是C语言不具有的,C语言中拼接两个字符串需要用到库函数strcat

8.1String和int的转换

  • int转换为String
int a = 10;

//方法1
String str1 = a + "";

//方法2
String str2 = String.valueOf(a);
  • String转换为int
String str = "100";
int a = Integer.parseInt(str);

数据类型和变量到此结束,完

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鸦wyk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值