Java数据类型

数据类型

强类型语言

  • 要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用
  • 安全性高,但速度变慢
  • 我们日常学习的Java也是一种强类型语言

弱类型语言

数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

Java的数据类型分为两大类

  • 基本类型(primitive type) 包括 整数浮点数字符布尔
  • 引用类型(reference type)包括数组接口

基本类型

(primitive type)

数据类型关键字内存占用取值范围
字节型byte1个字节-128—127
短整型shot2个字节-215—215-1
整型int(默认)4个字节-231—231-1
长整型long8个字节-263—263-1
单精度浮点数float4个字节1.4013E-45~3.4028E+38
双精度浮点数double8个字节4.9E-324~1.7977E+308
字符型char2个字节0-65535
布尔类型boolean1个字节true / false

小编在这里给大家举例

public class Hello {
    public static void main(String[] args) {
        //八大基本数据类型

        //整数
        int num1  = 10;        //最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L;       //Long类型要在数字后边加个“L”

        //小数:浮点数
        float num5 = 52.10000000F;    //float类型要在数字后边加个“F
        double num6 = 3.14159265;

        //字符
        char num7 = '中';

        //字符串,String不是关键字,也不是类
        //String name = "北屿";

        //布尔值  只有“true”和“false”
        boolean a = true;
        boolean b = false;

    }
}

如果大家不明白数据类型的取值范围,不知道这个数用什么类型,小编这里教大家一招

我们找到数据类型所对应的“类”,比如int对应的是Integer

  • 在IDEA空白初输入Integer
  • 按住Ctrl,用鼠标点击刚才输入的Integer就能进入对应的“类”里

在这里插入图片描述

基本数据类型对应的小编在这里都给大家整理好了

基本数据类型对应名对应类
byteBytejava.lang.Byte
shortShortjava.lang.Short
intIntegerjava.lang.Integer
longLongjava.lang.Long
floatFloatjava.lang.Float
doubleDoublejava.lang.Double
booleanBooleanjava.lang.Boolean
charCharacterjava.lang.Character

引用类型

(reference type)

除了基本数据类型以外的数据都叫引用类型,这里小编能力有限,平时用的极少,就不跟大家细聊了嘻嘻嘻

在这里插入图片描述

类型转换

  • 由于Java语言是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

    -------------------------->byte
        short  ==> int ==> long ==> float ==> double
        char 
    
  • 运算中,不同类型的数据先转换为同一类型,然后进行运算

  • 自动转换:当数据类型比较小的转变成类型比较大的时候,不需要自动转换,本身可自动转换

  • 强制转换当我们定义了一个比较大的类型的时候,这时候我们想转给比较小的类型的时候,但超出了小的范围,这时候就会出现以下报错

    例如:

    在这里插入图片描述

在这里插入图片描述

解决办法就是将类型进行强转

在我们定义的变量i前边加上要转化的类型 即类型·+变量名

在这里插入图片描述

这里i的结果没错,但j的值变成了复数,由于byte类型的范围是 -128—127,比最大值大,所以这里就涉及到一个问题——内存溢出

注意:

  • 不能对布尔类型转换

  • 不能把对象类型转换为不相干的类型

  • 在把高容量类型转换到低容量的时候,强制转换

  • 转换的时候可能会存在内存溢出,或者精度问题!、

溢出问题

操作比较大的数的时候,注意溢出问题,小编在这里给大家举个例子看哦~

在这里插入图片描述

int类型最大取值为21亿,这里用两个int类型范围内的数相乘的出来的结果远大于21亿,而控制台输出的结果却为负数,这是为什么呢?

因为在转换的时候已经存在问题了,所以在这里用更大类型的的long或者float以及double是不行的

我们可以把代码像这样改写

先将一个数转换为long类型,这样就能进行后续

在这里插入图片描述

什么是字节

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数

  • 字节(btye):是计算机数据处理的基本单位,习惯上用大写字母B来表示

  • 1B(byte)= 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bti表示1位

  • 1Byte表示一个字节 1B = 8b

  • 1024B = 1KB

  • 1024KB = 1M

  • 1024M = 1G

  • 1024G = 1T

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北屿北屿北屿

你的鼓励就是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值