Java基本数据类型

今天小编就来给大家分享Java基本数据类型,希望可以帮助到大家;

操作方法

  • 01

    1. 数据类型: 在Java源代码中,每个变量都必须声明一种类型(type)。Java数据类型(type)可以分为两大类:基本类型(primitive types)和引用类型(reference types)。primitive types 包括boolean类型以及数值类型(numeric types)。numeric types又分为整型(integer types)和浮点型(floating-point type)。整型有5种:byte short int long char(char本质上是一种特殊的int)。浮点类型有float和double。关系整理一下如下图:

  • 02

    2. 基本类型: Java为基本类型提供语言级别的支持,即已经在Java中预定义,用相应的保留关键字表示。基本类型是单个值,而不是复杂的对象,基本类型不是面向对象的,主要出去效率方面的考虑,但是同时也提供基本类型的对象版本,即基本类型的包装器(wrapper)。可以直接使用这些基本类型,也可以使用基本类型构造数组或者其他自定义类型。基本类型具有明确的取值范围和数学行为。

  • 03

    2.1 整型 整型有byte short int long char,分别用8、16、32、64、16bits表示。有些地方可能不会把char列入整型范畴,但本质上char类型是int的一个子集。整型的宽度不应该被看成整数所占用的内存空间大小,而应当理解成定义为整型的变量或者表达式的行为。JVM可以自由使用它们希望的、任何大小的内存空间,只要类型的行为符合规范。byte short int long都是有符号的,用2的补码(two‘s-complement)表示。而char用16位表示,它是无符号的,表示的是UTF-16编码集。

  • 04

    2.1.1 byte byte由1个字节8位表示,是最小的整数类型。主要用于节省内存空间关键。当操作来自网络、文件或者其他IO的数据流时,byte类型特别有用。取值范围为:[-128, 127]. byte的默认值为(byte)0,如果我们试图将取值范围外的值赋给byte类型变量,则会出现编译错误,例如 byte b = 128;这个语句是无法通过编译的。一个有趣的问题,如果我们有个方法: public void test(byte b)。试图这么调用这个方法是错误的: test(0); 编译器会报错,类型不兼容!!!我们记得byte b =0;这是完全没有问题的,为什么在这里就出错啦? 这里涉及到一个叫字面值(literal)的问题,字面值就是表面上的值,例如整型字面值在源代码中就是诸如 5 , 0, -200这样的。如果整型子面子后面加上L或者l,则这个字面值就是long类型,比如:1000L代表一个long类型的值。如果不加L或者l,则为int类型。基本类型当中的byte short int long都可以通过不加L的整型字面值(我们就称作int字面值吧)来创建,例如 byte b = 100; short s = 5;对于long类型,如果大小超出int所能表示的范围(32 bits),则必须使用L结尾来表示。整型字面值可以有不同的表示方式:16进制【0X or 0x】、10进制【nothing】、八进制【0】2进制【0B or 0b】等,二进制字面值是JDK 7以后才有的功能。在赋值操作中,int字面值可以赋给byte short int long,Java语言会自动处理好这个过程。如果方法调用时不一样,调用test(0)的时候,它能匹配的方法是test(int),当然不能匹配test(byte)方法,至于为什么Java没有像支持赋值操作那样支持方法调用,不得而知。注意区别包装器与原始类型的自动转换(anto-boxing,auto-unboxing)。byte d = 'A';也是合法的,字符字面值可以自动转换成16位的整数。 对byte类型进行数学运算时,会自动提升为int类型,如果表达式中有double或者float等类型,也是自动提升。所以下面的代码是错误的: 1.      byte s2 = 'a'; 2.      byte sum = s1 + s2;//should cast by (byte)</span></span></span>

  • 05

    2.1.2 short 用16为表示,取值范围为:[- 2^15, 2^15 - 1]。short可能是最不常用的类型了。可以通过整型字面值或者字符字面值赋值,前提是不超出范围(16 bit)。short类型参与运算的时候,一样被提升为int或者更高的类型。(顺序为 byte short int long float double).

  • 06

    2.1.3 int 32 bits, [- 2^31, 2^31 - 1].有符号的二进制补码表示的整数。常用语控制循环,注意byte 和 short在运算中会被提升为int类型或更高。Java 8以后,可以使用int类型表示无符号32位整数[ 0, 2^31 - 1]。

  • 07

    2.1.4 long 64 bits, [- 2^63, 2^63 - 1,默认值为0L].当需要计算非常大的数时,如果int不足以容纳大小,可以使用long类型。如果long也不够,可以使用BigInteger类。

  • 08

    2.1.5 char 16 bits, [0, 65535], [0, 2^16 -1],从'\u0000'到'\uffff'。无符号,默认值为'\u0000'。Java使用Unicode字符集表示字符,Unicode是完全国际化的字符集,可以表示全部人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也使用16 bit表示。 赋值可能是这样的: char ch1 = 88; char ch2 = 'A'; ASCII字符集占用了Unicode的前127个值。之所以把char归入整型,是因为Java为char提供算术运算支持,例如可以ch2++;之后ch2就变成Y。当char进行加减乘除运算的时候,也被转换成int类型,必须显式转化回来。

  • 09

    2.2 浮点类型 包含单精度的float和双精度的double,分别用32、64bits表示,遵循IEEE 754规范。

  • 10

    2.2.1 float 使用32 bit表示,对应单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型,声明赋值示例: 1.      f1 = 10L; 2.      f1 = 10.0f; 3.      //f1 = 10.0;默认为double</span></span></span> 可以将byte、short、int、long、char赋给float类型,java自动完成转换。 2.2.2 double 64为表示,将浮点子面子赋给某个变量时,如果不显示在字面值后面加f或者F,则默认为double类型。java.lang.Math中的函数都采用double类型。 如果double和float都无法达到想要的精度,可以使用BigDecimal类。 2.3 boolean类型 boolean类型只有两个值true和false,默认为false。boolean与是否为0没有任何关系,但是可以根据想要的逻辑进行转换。许多地方都需要用到boolean类型。

(0)

相关推荐

  • java基本数据类型float的使用(28)

    float为32位的单精度浮点型数据,默认值为0.0f,符合IEEE 75 4标准的浮点数,用float类型储存大型浮点型数组时可以节省内存空间,下面就由辉大神为大家讲解这个java的基本数据类型-f ...

  • 如何转换java中数据类型

    数据类型转换,分为自动转换和强制转换,简单的就可以这样理解,大的转小的叫强制,小的转大的,就叫自动!下面给大家看例子! 操作方法 01 自动转换:把取值范围小的类型,转换为取值范围大的数据类型,例如从 ...

  • Java数据类型大全

    一般在游戏中我们总会见到Java的字样,它代表了游戏中对一些数据的处理,那么Java处理游戏的数据有哪些呢? 操作方法 01 Java的数据类型分为四类,一共有八种,这四类分别为整型.浮点型.逻辑型. ...

  • Java一维数组如何声明、创建数组

    在Java中,数组是一种数据存储结构,是一组相同类型数据的集合,用来存储多个同类型的数据,也是实现算法的基础,下面小编教会大家Java一维数组如何声明.创建数组 操作方法 01 打开我们的Eclips ...

  • JAVA的值传递和引用传递区别(java值传递和引用传递例子)

    学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java ...

  • Java中的基本数据类型

    Java中共有8种基本数据类型.大的划分,包括整数类型.字符类型.单精度浮点数与双精度浮点数类型.布尔类型.其中整数类型按长度又可以划分为4类.下面,小编就教大家如何使用这些数据类型. 操作方法 01 ...

  • 怎样区分java中的基本数据类型和引用类型?

    怎样区分java中的基本数据类型和引用类型? 操作方法 01 1.java中基本数据类型一共有8个. 基本数据类型在内存中只有一块空间,里面存着数值. 例如:int a=0;就是基本数据类型. 02 ...

  • 转行学JAVA系列日记:[3]基本数据类型

    操作方法 01 JAVA中,共有4种整型,2种浮点类型,1种字符类型char,1种真值型boolean. 整型: 整型用来表示没有小数部分的数值. -------------------------- ...

  • java中基本数据类型的值范围

    在JAVA中一共有八种基本数据类型,分别是 byte.short.int.long.float.double.char.boolean ,进一步划分的话,又可以分为整型,浮点型,boolean型和ch ...