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

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,在赋值给其他变量时同样要进行类型转换。

原文地址:https://blog.51cto.com/10984944/2457595

时间: 2024-11-01 16:06:09

Java基本数据类型与类型转换的相关文章

Java中数据类型及其之间的转换

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对

java各种数据类型之间的转换

1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) Str

java基本数据类型,变量

变量 存储空间 存储数据 强类型: 变量的类型和变量中数据类型必须一致 定义变量: 变量类型 变量名; int a; 为变量赋值: 变量名=变量值 a = 10; int a = 10; int a , b; int a = 10 , b =20; int a = 10 , b; 局部变量 : 定义在方法内部的变量 1.先赋值,再使用 2.作用范围:从定义开始,到其所在的代码块结束 3.重合范围内,不允许2个局部变量同名 数据类型 1.简单类型 原始类型 基本类型 byte 1B -128 --

Java基本类型与类型转换咋就这么烦?

在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型.(一个字节等于8个bit) 1.整型类型              存储需求     bit数    取值范围      备注int                 4字节           4*8 short             2字节           2*8    -32768-32767long              8字

java基础之java基本数据类型

1.Java数据类型基本概念: 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格.数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:简单类型和复杂类型. 简单类型:简单数据类型是不能简化的.内置的数据类型.由编程语言本身定义,它表示了

JAVA基本数据类型及其转换

Java语言是一种强类型语言.这意味着每个变量都必须有一个声明好的类型.Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型.Java另外还提供大数字对象,但它不是Java的数据类型. 1.整数: 定义:没有小数部分的数字,负数是允许的. 种类:Java提供四种整数类型: byte 1个字节(8bit) -128到127(-27~27-1)  默认为0 ,如 byte b=28; short 2个字节(16bit) -32,768到32,767(-

Java中数据类型及其之间的转换(转)

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对

Java基本数据类型知识总结

Java基本数据类型一览表 原生类型 占位数 是否有符号位 最小值 最大值 默认值 包装类 备注 boolean 1 无 -- -- false Boolean boolean类型是孤独的皇后,她无法和其他类型转换 byte 8 有 -2^7=-128=Byte.MIN_VALUE 2^7-1=127=Byte.MAX_VALUE 0 Byte IO流中经常使用 char 16 无 '\u0000'=0=Character.MIN_VALUE '\uFFFF'=2^15*2-1=65535=Ch

Java基础数据类型二进制转换

前言: 本文主要介绍java基础类型的二进制转换和二进制的基本概念. 二进制: 1,二进制是以0和1为码,逢2进1,比如3=11=1*2+1. 2,在计算机当中其它进制的算法基本基于2进制,因为计算机只认识0和1,比如16进制数则意味着一位16进制码由4位2进制码数表示. 3,在Java语言中byte代表最小计量单位,byte由8位2进制数组成. Java基本数据类型与表示范围(boolean忽略) 1,byte(整型):8位,short(整型):16位,char(字符型):16位,int(整型