Java变量与数据类型

1、数据类型基本概念

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

  基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

  引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

2、基本数据类型

byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127

short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717

int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647

long:长整型,在内存中占64位,即8个字节-2^63~2^63-1

float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位)

double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节

char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535

boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false)

3、Java数据类型在内存中的存储

在Java中,每个存放数据的变量都是有类型的,不同类型的变量在内存中分配的字节数不同,同时存储方式也是不同的。所以给变量赋值前需要先确定变量的类型,确定了变量的类型,即确定了数据需分配内存空间的大小,数据在内存的存储方式。

1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型;

2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的(需要java中的栈、堆概念)

4、Java变量命名规则

  • 必须以字母、下划线“_”、或“$”符号开头
  • 可以包括数字、区分大小写
  • 不能使用Java语言的关键字,例如int、class、public等

5、Java变量声明及使用

数据类型变量名 =值、表达式;

例:String name = "柯南";

    int a= 50;

注:“=”并不是数学中的“等号”,而是一个赋值运算符

6、Java变量的默认初始化

类型

默认初始化值

byte

0

short

0

int

0

long

0

float

0.0

double

0.0

char

\

boolean

false

object

null

7、Java中的数据类型转换

7.1自动数据类型转换(放大转换)

满足自动数据类型转换条件:

  • 两种类型要兼容:如数值类型(整型和浮点型)
  • 目标类型大于源类型:例如int型数据可以自动转换为double类型

7.2强制数据类型转换(缩小转换)

在变量前加上括号,在括号中指定要强制转换的类型

例:double a = 40.9;

    int b= (int)a;

注:强制转换会损失数值精度,例如double类型变量a,经强制转换为int类型后值变为40

猜你喜欢

转载自blog.csdn.net/hy909475/article/details/81272467