【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

Java九种基本数据类型的大小,以及他们的封装类。

原创 2015年11月21日 14:04:59

java提供了一组基本数据类型,包括

boolean, byte, char, short,  int, long, float, double, void. 

同时,java也提供了这些类型的封装类,分别为

Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void


什么Java会这么做?

在java中使用基本类型来存储语言支持的基本数据类型,这里没有采用对象,而是使用了传统的面向过程语言所采用的基本类在型,主要是从性能方面来考虑的:因为即使最简单的数学计算,使用对象来处理也会引起一些开销,而这些开销对于数学计算本来是毫无必要的。但是在java中,泛型类包括预定义的集合,使用的参数都是对象类型,无法直接使用这些基本数据类型,所以java又提供了这些基本类型的包装器。

 

基本数据类型与其对应的封装类由于本质的不同,具有一些区别:

  • 基本数据类型只能按值传递,而封装类按引用传递。
  • 基本类型在堆栈中创建;而对于对象类型,对象在堆中创建,对象的引用在堆栈中创建。基本类型由于在堆栈中,效率会比较高,但是可能会存在内存泄漏的问题。

字符类型包装器:

Character是char的包装器,它的构造方法如下:

Character(char ch);其中ch是将封装在Character对象中的字符。为了获取包含在Character对象中包装的字符,可以调用charValue()方法:char  charValue();和String 一样,封装在Character对象里的字符是一个常量,无法对它做出修改。

Character c=new Character('a');

如果想将其中的字符改成b的话,唯一的办法就是丢弃原来的对象,然后重新创建对象:

Character c=new Character('b');

Character类还提供了许多方法:static boolean isDigit(char ch);  static boolean isLetter(char ch); static boolean isLowerCase(char ch); 

static boolean isUpperCase(char ch); 等

 

布尔类型包装器:  Boolean 是封装布尔值的包装器。它定义了下面的的构造方法:

Boolean (boolean boolValue);//boolValue 的值必须是true或false;

Boolean (String boolString);//boolString 的值为“true”,那么创建的布尔对象为true,否则为false;

为了获得Booolean 对象中的布尔值,可以使用booleanValue()方法;

boolean占多少字节呢?

虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。这样我们可以得出boolean类型占了单独使用是4个字节,在数组中又是1个字节。使用int的原因是,对于当下32位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),具有高效存取的特点。

 

数字类型包装器:

所有数字类型的包装器都是从抽象类Number 继承下来的。Number 声明了多种以不同的数字格式返回一个对象值的方法:

byte byteValue( );

int intValue();.........................

所有的数字类型包装器都提供了一个静态的方法,可以将字符串 转换为自己所封装的数据类型;例如:

static int parseInt(String s  );

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

九种基本数据类型,以及他们的封装类

基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 0 In...

java梳理-int类型在32位和64位有什么不同

本文属于java基础面试系列:63 int类型在32位和64位有什么不同我看了题目之后觉得不是很理解,应该是跟操作系统无关的,网上搜了下也是没有好文章专门说明,比较困惑,咨询下题主:是楚楚街面试问的,...
  • bohu83
  • bohu83
  • 2016-04-11 18:25
  • 2301

32位64位操作系统基本数据类型字节大小

int型字长问题: ① C/C++规定int字长和机器字长相同; ② 操作系统字长和机器字长未必一致; ③ 编译器根据操作系统字长来定义int字长;   由上面三点可知,在一些没有操作系统的嵌...
  • huyisu
  • huyisu
  • 2013-12-27 09:04
  • 23278

JAVA - 基本数据类型

Java中的基本

九种基本数据类型的大小,以及他们的封装类

九种基本数据类型的大小,以及他们的封装类基本数据类型为了满足:体积小、简单、高效等特性,将所创建的对象直接存储值并置于堆栈中。 每种类型所占的存储空间大小是基本不变的,保证了Java程序的可移植性。 ...

八种基本数据类型的大小以及他们的封装类

Java中分为两大数据类型 :基本数据类型和引用数据类型 基本数据类型分为8种: 基本类型:byte 二进制位数:8 包装类:java.lang.Byte 最小值:Byte.MIN_VALUE...

八大基本数据类型的大小,以及他们的封装类

java中有八种基本数据类型,int,double ,long ,float, short,byte,character,boolean;和他们对应的封装类型是:Integer,Double ,Lon...

java基础(一)九种基本数据类型的大小,以及他们的封装类

首先,八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char。        它们的封装类分别是:Integer、Short、Float、D...

java中的基本数据类型与封装类

java提供了一组基本数据类型,包括boolean, byte, char, short,  int, long, float, double, void. 同时,java也提供了这些类型的封装类,分...

九种基本数据类型的大小,以及他们的封装类

java提供的九种基本数据类型:boolean、byte、char、short、int、long、float、double、void 以及它们的封装类:Boolean、Byte、Character、...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)