基本数据类型的包装类_基本数据类型_速看料

2023-02-07 09:59:54 来源:互联网

你们好,最近小活发现有诸多的小伙伴们对于基本数据类型的包装类,基本数据类型这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、1.数据类型:

2、在Java源代码中,每个变量都必须声明一个类型。Java数据类型可以分为两类:基本类型和引用类型。基本类型包括布尔类型和数值类型。数值型分为整型和浮点型。整数有五种:byte short int long char(char本质上是一种特殊的int)。浮点类型有float和double。如下所示组织关系:


(资料图片)

3、2.基本类型:

4、Java为基本类型提供了语言级的支持,即已经在Java中预定义好了,用相应的保留关键字来表示。基本类型是单个值,而不是复杂对象。基本类型不是面向对象的,主要是考虑效率,但是也提供了基本类型的对象版本,也就是基本类型的包装器。您可以直接使用这些基本类型,也可以使用它们来构造数组或其他自定义类型。基本类型有明确的数值范围和数学行为。

5、2.1整数

6、整型包括byte short int long char,分别用8、16、32、64、16位表示。有些地方,char可能不包含在integer的范畴内,但本质上char type是int的子集。整数的宽度不应该看作是整数占用的内存空间,而应该理解为定义为整数的变量或表达式的行为。JVM可以随意使用任何大小的内存空间,只要类型的行为符合规范。Byte short int long是带符号的,用二进制补码表示。Char用16位表示,无符号,表示UTF-16编码集。

7、2.1.1字节

8、Byte用1字节8位表示,是最小的整数类型。主要用来节省内存空间。当操作来自网络、文件或其他IO的数据流时,字节类型特别有用。取值范围:[-128,127]。byte的默认值是(byte)0。如果我们试图给一个字节类型变量赋一个值范围之外的值,就会出现编译错误,比如byte b=128;此语句无法编译。一个有趣的问题,如果我们有一个方法:public void test(byte b)。试图这样调用这个方法是错误的:test(0);编译器会报错,类型不兼容!我们记得字节b=0;这完全没问题。为什么会在这里出错?

9、这就涉及到一个叫literal的问题,就是表观值。例如,源代码中的整数是5,0,-200。如果整数子面后跟l或l,则文字值为长类型,例如,1000L表示长类型的值。如果不加l或l,则为int类型。基本类型中的Byte short int long可以用不带L的integer literal(姑且称之为int literal)创建,比如byte b=100;短s=5;对于long类型,如果大小超出了int (32位)可以表示的范围,就必须用l结尾来表示,整数文字可以用不同的方式表示:十六进制[0X或0x],十进制[nothing],八进制[0]二进制[0B或0b]等。二进制文字仅在JDK 7之后可用。在赋值操作中,可以将int的文字值赋给byte short int long,Java语言会自动处理这个过程。如果方法调用不一样,调用test(0)时,它能匹配的方法是test(int),当然不能匹配test(byte)方法。至于Java为什么像支持赋值操作一样不支持方法调用,就不得而知了。注意区分包装器和原始类型的自动转换(自动装箱、自动拆箱)。字节d=" A也是合法的,字符的面值可以自动转换成16位整数。

10、对byte类型进行数学运算时,会自动提升为int类型,如果表达式中有double或float等类型,也会自动提升。所以下面的代码是错误的:

11、1.bytes2=" a

12、2.bytesum=s1 s2//should cast by(byte)/span/span/span

13、简短

14、用16表示,取值范围为[-2 ^ 15,2 ^ 15-1]。Short可能是最不常用的类型。您可以按整数文字或字符文字赋值,只要它在范围内(16位)。当short类型参与运算时,也提升为int或更高的类型。(顺序是byte short int long float double)。

15、国际

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

17、2.1.4长

18、64位,[-2 63,2 63-1,默认值为0L]。当需要计算非常大的数时,如果int的大小不够,可以使用long类型。如果long不够,可以使用BigInteger类。

19、2.1.5字符

20、16位,[0,65535],[0,2 16-1],从" \u0000 "到" \ uffff "无符号,默认值为" \u0000 "Java使用Unicode字符集来表示字符。Unicode是一个完全国际化的字符集,可以表示所有人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也是用16位表示的。作业可能是这样的:

21、char ch1=88

22、char ch2=" A

23、ASCII字符集占用Unicode的前127个值。Char之所以归类为整数,是因为Java为char提供了算术运算支持,比如ch2然后ch2变成Y.当char执行加减乘除时,也转换为int类型,必须显式地转换回来。

24、2.2浮点类型

25、包括单精度浮点和双精度浮点,分别由32位和64位表示,遵循IEEE 754规范。

26、浮动

27、使用32位表示,对应单精度浮点数,运行速度比double快,占用内存少,但是当值很大或者很小时会变得不准确。当精度要求不高时,可以使用float类型声明一个赋值示例:

28、1.f1=10L

29、2.f1=10.0f

30、3.//f1=10.0;默认值为double/span/span/span。

31、可以给float类型赋byte,short,int,long,char,java会自动完成转换。

32、双份

33、64表示将浮点子面赋给变量时,如果不显示,并且在文字值后加F或F,则默认为double类型。java.lang.Math中的函数都是double类型的。

34、如果double和float都不能达到期望的精度,可以使用BigDecimal类。

35、2.3布尔类型

36、布尔类型只有true和false两个值,默认值为false。布尔与是否为0无关,但可以根据所需的逻辑进行转换。很多地方都需要布尔类型。

以上就是基本数据类型这篇文章的一些介绍,希望对大家有所帮助。

标签: 基本类型 基本数据类型 可以使用 布尔类型

推荐阅读>