java基本数据类型&java变量类型

声明:本文部分转载,部分为本人summary。

PART ONE:Java 基本数据类型

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

Java的两大数据类型:

  • 内置数据类型
  • 引用数据类型

一.内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte:

  • byte数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是-128(-2^7);最大值是127(2^7-1);默认值是0;
  • byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short数据类型是16位、有符号的,以二进制补码表示的整数
  • 最小值是-32768(-2^15);最大值是32767(2^15 - 1);
  • Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 例子:short s = 1000,short r = -20000。

int:

  • int数据类型是32位,有符号的,以二进制补码表示的整数;
  • 最小值是-2,147,483,648(-2^31);最大值是2,147,485,647(2^31 - 1);
  • 一般地整型变量默认为int类型;
  • 例子:int a = 100000, int b = -200000。

long:

  • long数据类型是64位、有符号的,以二进制补码表示的整数;
  • 最小值是-9,223,372,036,854,775,808(-2^63);最大值是9,223,372,036,854,775,807(2^63 -1);
  • 这种类型主要使用在需要比较大整数的系统上
  • 例子: long a = 100000L,int b = -200000L。

float:

  • float数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • 1位符号位+8位指数位(q)+23位底数位(b),即b^q;
  • float在储存大型浮点数组的时候可节省内存空间;
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double数据类型是双精度、64位、符合IEEE 754标准的浮点数;
  • 1位符号位+11位指数位(q)+52位底数位,即b^q;
  • 浮点数的默认类型为double类型;
  • double类型同样不能表示精确的值,如货币;
  • 例子:double d1 = 123.4。

boolean:

  • boolean数据类型表示一位的信息;只有两个取值:true和false;
  • 默认值是false;

char:

  • char类型是一个单一的16位Unicode字符;
  • 最小值是’\u0000’(即为0);
  • 最大值是’\uffff’(即为65,535);
  • char数据类型可以储存任何字符;
  • 例子:char letter = ‘A’。
Summary:
byte,short,int,long 均为有符号的、二进制补码表示的整数,不同在于占用空间情况,实际使用时可根据内存情况选择。其各自可表示的范围为( -2^(x-1)~2^(x-1)-1);
float,double表示的均是浮点数,不同之一在于其各自精度不同(精度体现在尾数的位数上),之二在于可表示的范围(由于其各自占用空间不同)。
JAVA包装类:
Java语言是一个面向对象的语言,但Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),也译为外覆类或数据类型类。所有的包装类都是抽象类Number的子类。 包装类均位于 java.lang 包。

对于包装类说,这些类的用途主要包含两种:

                   a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作

                   b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。

二.引用类型

  • 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用与任何与之兼容的类型。
  • 例子:Animal animal = new Animal(“giraffe”)。

三.Java常量

常量就是一个固定值。它们不需要计算,直接代表相应的值。常量指不能改变的量。 在Java中用final标志,声明方式和变量类似。



PART TWO:Java 变量类型

Java语言支持的变量类型有:

  • 局部变量
  • 成员变量
  • 类变量

一.Java局部变量

  • 局部变量声明在方法、构造方法或者语句块中(被创建,且仅在其内可见); 当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量是在栈上分配的
  • 局部变量没有默认值,所以局部变量量被声明后,必须初始化后,才可以使用

二.实例变量

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量package(默认)、private、public和protected)
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName

三.类变量(静态变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  • 静态变量在程序开始时创建,在程序结束时销毁。
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
  • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  • 静态变量可以通过:ClassName.VariableName的方式访问。
  • 类变量被声明为public static final类型时,类变量名称必须使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。











你可能感兴趣的:(java)