JAVA数据类型

1.JAVA是强数据类型:所有变量必须先定义后使用

特点:安全性高,速度慢

2.数据类型分类

在这里插入图片描述

扩展:位、字节

位(bit):是计算机内部数据储存的最小单位,例如,11001100是一个八位二进制数。
字节(byte):是计算机中数据处理的基本单位。1B(byte,字节)=8bit(位)

2.1基本类型

2.1.1整数类型

二进制:0b;八进制:0;十六进制:0x

//查看一个整数对应的二进制的方法:
            int i2 = 300;
            System.out.println(Integer.toBinaryString(i2));//100101100

byte占1个字节范围,也就是1x8个位,8位,取值范围是-27~27-1,最高位是符号位。
int占4个字节范围,也就是4x8个位,32位,取值范围是-231~231-1。
其它整数类型类似。
整数类型默认为int。

2.1.2浮点类型

浮点类型默认为double。
建议代码中用D和L,小写的l容易被看成1。

//定义一个float类型的浮点数
            float i=1.0F;
            System.out.println(i);

在这里插入图片描述

上述情况是因为float具有以下特点:有限,离散,舍入误差,大约,接近但不等于。我们最好完全避免用浮点数进行比较。在实际业务中我们使用大数值来解决这种问题。

在java.math包中有两个类:
BigInteger:任意精度的整数
BigDecimal:任意精度的浮点数
静态方法valueOf可以将普通数值转换为大数值,然后可以用大数值类中的add、multiply等方法进行运算。

一道面试题:

float number=3.4;有没有问题?为什么?
答:有问题,因为3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型,可能会造成精度损失,所以必须进行强制类型转换,正确的写法是float number =(float)3.4;/ float number =3.4F;。

2.1.3字符类型

字符只能是一个字符,字母,数字或者符号。字符的本质是数字。
字符串不是数据类型,String类型是Immutable的,一旦创建就不能够被改变。

//字符的本质是数字
            char ch='a';
            System.out.println(ch);//a
            System.out.println((int)ch);//97

转义字符:
在这里插入图片描述
编码:按照某种规则,将字符存储到计算机中。
字符集也叫编码表。
分类:
1.ASCII码
2.GBK:两个字节表示一个中文
3.Unicode:万国码,其实就是宽字节字符集,它对每个字符都固定使用两个字节即16位表示,于是当处理字符时,不必担心只处理半个字符。
4.UTF-8:三个字节表示一个中文
字符的编码表体现:

            char ch='\u0061';
            System.out.println(ch);//a
            System.out.println((int)ch);//97

2.1.4布尔类型

true、false
不能与整形值相互转换

2.2类型转换

类型等级由低到高:
byte short char -->int–>long–>float–>double

自动类型转换:等级低的类型自动提升为高的类型

 //自动类型转换
            int i =1;
            long a=5;
            a=i;
            System.out.println(a);//1

强制类型转换;
格式:数据类型 变量名=(数据类型) 被转数据值

 //强制类型转换
           short s=1;
           s=s+1;//编译报错,1是int,s自动类型提升为int,结果为2,int类型,再赋给short类型的s编译报错
           s=(short)(s+1);//类型转换后,正确

类型转换存在的问题:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.转换时可能存在内存溢出或者精度损失的问题

//强制转换内存损失
            int i=128;
            byte b=(byte)i;
            System.out.println(b);//-128
 //强制转换精度损失
            System.out.println((int)35.42);//35
            System.out.println((int)-4.5F);//-4

枚举类型不是数据类型,是个特殊的类。
引用数据类型中的其他会在后面写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值