java基本数据类型与类型转换

     2022-05-20     813

关键词:

Java基本数据类型与类型转换

文本关键字:8种、基本数据类型、整数类型、浮点类型、字符类型、布尔类型

一、基本数据类型

1. 概述

在Java中,所使用到的类型可以分为两大类,一类是基本数据类型,一共有8种,包含:整数,小数,字符,布尔。另外一类是引用类型,包含:字符串,数组以及各种Java类。

2. 整数类型

整数类型是一个很常用,也比较简单的类型,在计算机中以二进制的方式存储,其中有一位是符号位。

  • byte:-2^7 ~ 2^7 - 1
    • 1字节
    • 8bit
  • short:-2^15 ~ 2^15 - 1
    • 2字节
    • 16bit
  • int:-2^31 ~ 2^31 - 1
    • 4字节
    • 32bit
  • long:-2^63 ~ 2^63 - 1

    • 8字节
    • 64bit

      3. 浮点类型

      对于浮点(小数)类型,存储的方式与整数有所不同,其中符号位固定为1位,另外两部分为指数部分和小数部分。我们都学过科学计数法的表示方式,对于十进制,小数点前的部分的取值范围为1-9,在存储前也会整理成二进制的形式,会变成(+/-)1.b × 2^a。那么指数部分对应的就是a,尾数部分对应的就是b。
      对于float,指数部分为8位,尾数部分为23位。对于double,指数部分为11位,尾数部分为52位。

  • float:约1.4 × 10^-45~3.4 × 10^38,精度为6~7位
    • 4字节
    • 32bit
  • double:约4.9 × 10^-432~1.7 × 10^308,精度为15~16位

    • 8字节
    • 64bit

      4. 字符类型

      对于字符类型,在进行存储时,也同样是一个整数,只不过在使用时会进行编码。说的直白一些就是,建立起了一个数字和字符之间的对应关系,只要明确字符对应的数字,或者直接将字符给出,都能够正确表示出一个字符。

  • char

    • 2字节
    • 16bit

      5. 布尔类型

      布尔类型是一个范围最小的数据类型,只用一个二进制位就可以来记录,0表示false-假,1表示true-真。

  • boolean:true/false
    • 1字节
    • 1bit

      6. 字面值

      当我们在使用一个数据类型时,总会进行一些直接赋值的操作,完整的格式如下:

  • 数据类型 变量名称 = 变量值

如:int i = 5;char c = ‘中‘;double = 3.14;那么出现在等号右侧的值就被称为字面值。

  • 整数类型字面值
    • 默认十进制(int类型):136,当非常大的数需要用long存储时结尾需要添加字母L/l
    • 二进制(0b开头):0b101
    • 八进制(0开头):073
    • 十六进制(0x开头):0xAC23
  • 浮点类型字面值
    • 单精度(以F/f结尾):236.935f
    • 双精度(默认小数类型):68263.2811

二、数据类型转换

技术图片

1. 自动类型转换

图中黑色的部分,可以自动进行转换,并且不会出现任何使用上的问题,只不过存储数据空间需要变大些,这也就是由低精度向高精度的转换。
其中红色箭头的部分,也可以自动进行转换,即:代码上不需要添加转换的操作,且编译不会出现问题。但是在使用时会出现精度丢失的问题,因为对于整数类型,在其所支持的存储范围内精度都是可以保证的,而对于float和double类型,精度只有相应的6~7和15~16位,所以在使用时一定要注意!

2. 强制类型转换

那什么时候需要手动来进行类型转换呢?就是与箭头方向相反时,以及由高精度到低精度来进行赋值操作时,必须要手动进行强制转换。这意味着,你知道这其中的风险,并一定要这样做,那么无法被记录的字节将被直接截断和丢弃,最高位被识别为符号位。所以,只有当数据本身不会超出目标数据类型时,我们才会进行转换,否则有可能会得到各种奇怪的结果。

3. 表达式中的类型提升

当我们在使用表达式进行计算时,如最基本的四则运算,加减乘除。

short s1 = 40;
short s2 = 40;
short s3 = s1 + s2;// 该行编译错误,why?
short s4 = (short)(s1 + s2);// 编译通过

对于以上的情况,是因为出现了类型提升,当符号两侧出现整数时,运算结果的类型将被提升为默认的整数类型:int,而将int类型赋值给short是需要类型转换的。同样,运算符号两侧出现小数类型时,运算结果的类型将被提升为默认的浮点数类型:double,在赋值给其他变量时同样要进行类型转换。

java基本数据类型转换

一:Java的基本数据类型和引用数据类型1:基本数据类型2:引用数据类型二:基本数据的类型转换基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能... 查看详情

java基础(36):string与基本数据类型之间的双向转换

Java中基本类型和字符串之间的转换在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1.使用包装类的toString()方法2.使用String类的valueOf()方法3.用一个空字符串加上基... 查看详情

java基础基本数据类型包装类int与string之间的相互转换

为什么会有基本类型包装类?将基本类型数据类型封装成对象,这样的好处可以在对象中定义更多方法操作该数据。包装类常用的操作就是用于基本数据类型与字符串之间的转换问题:inta=100;为什么不能使用Strings=(String)a;Strings... 查看详情

java学习笔记4.4.2包装类-基本数据类型包装类与字符串相互转换

文章目录零、本讲学习目标一、基本数据类型转换成字符串(一)转换方法(二)案例演示二、基本数据类型转换成包装类(一)转换方法(二)案例演示(三)注意事项三、将字符串数据转换成基本数据类型(一)转换方法(... 查看详情

java--基本数据类型的转换(自动转换)

...Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。  Java中数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类... 查看详情

基本数据类型,包装类型,string类型数据之间的转换

...所有的类都从java.lang.Object类派生而来,在java语言中,除基本数据类型以外,基本数据类型有java类库体统了包装类:Integer类保存整形变量,Boolean类保存布尔变量,Float类保存单精度变量,   基本数据类型与包装类、St... 查看详情

从零开始的java开发1-5-2包装类与基本数据类型常用api基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池(代码片段)

文章目录包装类与基本数据类型包装类常用方法基本数据类型与包装类之间的转换基本数据类型和字符串之间的转换包装类相关知识包装类的初始值包装类对象间的比较对象常量池总结包装类与基本数据类型Java的数据类型:... 查看详情

零基础快速学java韩顺平p52-59基本数据类型转换(自动强制)与string类型的转换(代码片段)

课程p52-59基本数据类型转换自动类型转换publicclasstemppublicstaticvoidmain(String[]args)//演示自动类型转换intnum='a';doublenum2=50;System.out.println(num);System.out.println(num2);输出:9750.0注意事项和细节多种 查看详情

java自动拆装箱

介绍Java5增加了自动装箱与自动拆箱机制,方便基本类型与包装类型的相互转换操作。(关于基本类型与包装类型之前有记录过https://www.cnblogs.com/xiuzhublog/p/12822045.html)我们认为包装类是对基本类型的包装,所以,把基本数据类... 查看详情

基本类型包装类(代码片段)

基本类型包装类需求问题:在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要... 查看详情

数据类型

Java提供了两类数据类型:一种是基本数据(原始类型),一种是引用类型。数据类型图:基本数据类型:注意:1.在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。比如:int永远占4... 查看详情

java八大基本数据类型与运算符(代码片段)

java八大基本数据类型与运算符✏️变量和类型✏️整型变量(重点)✏️长整型变量✏️双精度浮点型变量(重点)✏️单精度浮点型变量✏️字符类型变量✏️字节类型变量✏️短整型变量✏️布尔类型变量✏️字符串类型变量(重... 查看详情

java八大基本数据类型与运算符(代码片段)

java八大基本数据类型与运算符✏️变量和类型✏️整型变量(重点)✏️长整型变量✏️双精度浮点型变量(重点)✏️单精度浮点型变量✏️字符类型变量✏️字节类型变量✏️短整型变量✏️布尔类型变量✏️字符串类型变量(重... 查看详情

java中string与数组基本数据类型等的转换(代码片段)

字符串-->基本数据类型、包装类Integer包装类的publicstaticintparseInt(Strings):可以将由“数字”字符组成的字符串转换为整型。类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成... 查看详情

java基本数据类型,标识符语法,基本数据类型强制转换

JAVA基本数据类型,标识符语法,基本数据类型强制转换(学习资料bilibili狂神)复习publicclassone1{  publicstaticvoidmain(String[]args){    //这是一个exercise    //复习,注释,基本数据类型,标识符语法,基本数... 查看详情

java基础:java基本数据类型详解(代码片段)

1.java基本数据类型java有八种基本数据类型:4种整型:byte,short,int,long2种浮点型:float,double(3.14F位浮点型,没有F默认为double)一种字符型:char一种boolean型:boolean基本数据类型... 查看详情

java学习笔记4.4.1包装类-基本类型与包装类相互转换

文章目录零、本讲学习目标一、为什么需要包装类二、基本类型-包装类对照表三、基本类型与包装类相互转换(一)自动装箱(Autoboxing)(二)自动拆箱(AutoUnboxing)(三)案例演示(四)课堂练习零、本讲学习目标理解为何... 查看详情

java基本类型与引用类型

目录java基本类型与引用类型目录一基本数据类型二引用类型三基本类型与引用类型的区别默认值内存分配自动装箱自动拆箱自动装箱拆箱带来的问题程序的性能空指针异常对象相等比较时一、基本数据类型java中一共分为8种基本... 查看详情