Java宝典-数据类型

大家好,我是你们的Vampire-wpre(也可以叫我鬼鬼!),是一位正在努力学习编程的大学生,为了能够让自己巩固知识,也为了能让大家更好地理解Java相关知识,我开了这个Java宝典的新坑~今天我们要学习的是Java当中的数据类型话不多说我们直接开始吧!

1.变量与常量

在程序当中,有些数据可能会发生改变,例如年龄/身高等,这些经常发生改变的内容,在Java中称为变量;在程序中也会有固定不变的量,不管程序运行到何处,它都是固定不变的量,例如一周有7天/一年有12个月等,这些称之为常量,也叫字面常量.
字面常量可以分为以下几类:

  • 字符串常 量:用双引号" " 括起来的,如"123"和"abcd"
  • 整型常量:在程序中直接写的数字,如1,100
  • 浮点数常量:程序中直接写的小数,如1.1,0.2
  • 字符常量:用单引号括起来的,如 ‘a’
  • 布尔常量:ture和false
  • 空常量:null

2.Java中的数据类型

Java中数据类型分为基本数据类型和引用数据类型.
基本数据类型包括:

  1. 整数类型:
    整数类型包含:字节型(byte),短整型(short),整型(int),长整型(long)
  2. 浮点数类型:
    浮点数类型包含:单精度浮点型(float),双精度浮点型(double)
  3. 布尔类型
    布尔类型表示真或假,关键字是boolean,true表示真,false表示假
  4. 字符类型:
    字符型关键字为char,用于表示一个字符

以下是这些数据类型的特点
在这里插入图片描述

划重点:
1.数据类型所占字节数与操作系统无关
2.整型和浮点型是带符号的,没有所谓的无符号数(与C语言不同!)
3.在程序中,一个整数默认是int型,小数默认是double型
4.定义变量时,使用前如果没有赋值,编译器会报错

3.整型

3.1 字节型byte

byte类型的变量占1个字节(与操作系统无关),byte的取值范围是:-128~127;包装类型为Byte,可以用包装类中的MAX_VALUE和MIN_VALUE输出byte类型的最大值和最小值

byte b = 1;
System.out.println(b);
//输出byte类型的最大值
System.out.println(Byte.MAX_VALUE);
//输出byte类型的最小值
System.out.println(Byte.MIN_VALUE);

3.2 短整型short

short类型的变量占2个字节(与操作系统无关),short取值范围是:-32768~32767;包装类型为Short,可以用包装类中的MAX_VALUE和MIN_VALUE输出short类型的最大值和最小值

short s = 10;
System.out.println(s);
//输出short类型的最大值
System.out.println(Short.MAX_VALUE);
//输出short类型的最小值
System.out.println(Short.MIN_VALUE);

3.3 整型int

int类型的变量占4个字节(与操作系统无关),int取值范围是:-2147483648~2147483647;包装类型为Integer,可以用包装类中的MAX_VALUE和MIN_VALUE输出int类型的最大值和最小值

int i = 20;
System.out.println(i);
//输出int类型的最大值
System.out.println(Integer.MAX_VALUE);
//输出int类型的最小值
System.out.println(Integer.MIN_VALUE);

3.4 长整型long

long类型的变量占8个字节(与操作系统无关),long取值范围是:-2^ 63~2 ^63-1;包装类型为Long,可以用包装类中的MAX_VALUE和MIN_VALUE输出long类型的最大值和最小值

long l = 100;
System.out.println(l);
//输出long类型的最大值
System.out.println(Long.MAX_VALUE);
//输出long类型的最小值
System.out.println(Long.MIN_VALUE);

4.浮点型

4.1 单精度浮点型float

float类型的变量占4个字节,包装类型为Float

4.2 双精度浮点型double

double类型的变量占8个字节,包装类型为Double

浮点型平时使用较多的是double,浮点数在内存中存储方式与整型不一样,浮点数的存储准寻IEE754标准,如果不了解可以看我之前写的文章:整数与浮点数在内存中的存储

5.字符型

字符型关键字为char,字符型变量占2个字节,我们学习过C语言知道,字符可以用ASCII码表示,而在Java中使用的是Unicode表示字符,两个字节能表示的字符数量更多,char的包装类型为Character

6.布尔型

布尔类型(boolean)是用来表示真假的,它的取值只有true和false,Java中,真假只能用布尔类型表示,不存在1表示真,0表示假这种说法.Java虚拟机规范中没有明确规定boolean占多少字节

7.类型转换

在Java中,如果参与运算的数据不是同一类型,则会进行类型转换,包括隐式类型转换(自动)和显示类型转换(强制)

7.1 隐式类型转换

隐式类型转换意味着:代码编译时,编译器会自动进行类型转换处理.看下面的例子

System.out.println(10);//10默认是Int
System.out.println(3.14);//默认是double

int a = 10;
long b = a;//a是int类型,范围小,long类型范围大,范围小的类型(a)赋值给范围大的类型(b)时,编译器会自动将a转换成long类型

double d = 3.14;
// float f = d;代码无法编译,d是double类型的变量,范围比float大,将范围大的赋值给范围小的,不安全

7.2 显示类型转换(强制类型转换)

当范围小的变量赋给范围大的变量时,编译器无法通过,此时我们可以进行强制类型转换.
转换语法:

(转换后的类型)变量;:
long a = 10;
int b =(int)a;
double d = 3.14;
float f = (float)d;

注意事项:

  • 如果不进行强制类型转换,数据类型不同的变量进行赋值时,范围大的变量不能赋值给范围小的变量
  • 范围大的变量赋值给范围小的变量时,需要强制类型转换,但是可能会丢失精度
  • 类型不相干的不能相互转化,如:布尔类型不能转换成其他类型

8.类型提升

一般情况下,不同类型的数据进行运算时,类型小的数据会提升为类型大的,小于4字节的类型(short,byte)会提升为int

int a = 10;
long b =20;
long c =a+b;//编译成功
int d =a+b;//编译失败
//a+b的值会提示为long类型,将long类型的值赋给int类型的变量无法编译成功
byte a =10;
byte b =20;
byte c =a+b;//编译失败
int d =a+b;//编译成功
//虽然a和b类型一样,都是byte,但是byte小于4字节,所以运算时,a和b会先提升为int,结果为int,将范围大的值赋值给范围小的变量,编译无法通过

以上就是关于Java数据类型的全部内容啦,如果老铁们认为文章对你有帮助的话别忘了一键三连~

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值