JAVA基础学习 数据类型

目录

变量

两大数据类型

1 基本数据类型

1.1byte

1.2short

1.3int

1.4long

1.5float

1.6double

1.7char

1.8boolean

2 自动转换类型

数据类型转换规则:

3强制类型转换

4 引用类型

5数据类型在内存中的空间分配

6 装箱与拆箱


变量

变量的作用:用于在内存中保存数据

1 内存中的一个存储区域(内存空间,可以存放数据)

2 该区域的数据可以在同一类型范围内不断变化

3 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

String a = “abc”;

变量的作用域和生命周期

在java中,大括号即一个作用域,每个变量都有所属的作用域,作用域是变量生效的范围

一个变量的作用域,从其定义位置开始,一直到所属作用域结束。

函数的参数的作用域:整个函数的作用域

生命周期:变量的生命周期,即变量存活的时间范围,变量的生命周期,从执行到变量定义的位置开始,到函数结束。

使用变量注意

1 Java中每个变量必须先声明,再赋值,再使用

2 使用变量名来访问这块局域的数据

3 变量的作用域:其定义所在的{内}

4 变量只有在其作用域内才有效

5 同一个作用域内,不能定义同名的变量

变量就是申请内存来存储值。也就是说,在创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或字符

两大数据类型

1 基本数据类型(又叫内置类型或值类型)

2 引用类型,默认值是null(空值)

基本数据类型:保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。

引用数据类型:保存在栈内存中的引用名指向保存在堆内存中的对象,类似一个指针,java中除了基本数据类型其他的都是引用数据类型。

1 基本数据类型

整数类型浮点型字符型布尔型
byte 8float 32char boolean
short 16double 64
int 32
long 64

1.1byte

1 一个byte类型在内存中占用8位二进制,即 1byte = 8bit;

2 有正负号10000001

3 最小值-128(-2^7)

4 最大值127(2^7-1)

5 默认值0

6 应用:byte类型用在大数组中节约空间,主要代替int类型,因为byte类型的变量占用的内存空间只有int类型的四分之一

7 示例:byte no=12;

bit byte与字节(Byte)的关系

bit比特: 表示一位二进制位

byte是基本数据类型 1byte = 8 bit

Byte字节,是计算机存储空间大小的单位,简称B;1字节= 8bit ,千字节KB

兆字节MB 千兆字节GB

1.2short

1 内存占用16二进制位2个字节

2 有正负号

3最小值-32768(-2^15)

4最大值32767(2^15-1)

5 默认值0

6应用:short数据类型也可以像byte那样节约空间。一个short变量是int类型变量所占空间的二分之一

7 示例: short no= 12;

1.3int

1 内存占用32

2 有正负号

3最小值(-2^31)

4最大值(2^31-1)

5 默认值0

6应用:一般地整型变量默认为int类型

7 示例: int no= 12;

1.4long

1 内存占用64

2 有正负号

3最小值(-2^63)

4最大值(2^63-1)

5 默认值0L

6应用:这种类型主要使用在需要比较大整数的系统上

7 示例: long no= 120000L;

1.5float

1 float数据类型是单精度、32位、符合IEEE 754标准的浮点数

2 最小值

3最大值

4 默认值0.0f

5示例 float no= 12.123f;

1.6double

1 double数据类型是双精度、64位、符合IEEE 754标准的浮点数

2 最小值

3最大值

4 默认值0.0d

5示例  double no= 12.1234d;

单精度和双精度的概念和区别

1.7char

char 类型是一个单一的16位Unicode字符

char数据类型可以储存任何字符

1.8boolean

boolean数据类型表示1位信息

只取两个值  true和false

默认值是false

2 自动转换类型

数值的范围越大,表示该数据类型的精度越高,根据精度由低到高排序为:

byte->short,char->int->long->float->double

根据上面的顺序,低精度数据类型的变量,可以自动地转为高精度类型的变量,如:

byte a = 12;

int b = a;

数据类型转换规则:

1 不能对boolean类型进行类型转换

2 把高精度类型转换为低精度类型时,必须使用强制类型转换;

3 转换过程中可能导致溢出或损失精度(高精度转低精度)

4 浮点型到整数的转换,舍弃小数部分,而不是四舍五入

3强制类型转换

强制类型转换只发生在高精度类型转化为低精度类型的情况下,必须显示在变量声明要转换的数据类型,且会损失数据精度。

4 引用类型

引用类型包括三部分:对象名,对象的引用,对象

示例:Student s = new Student();

栈中保存的是:s = 对象的引用 即对象名和对象的内存地址

堆中保存的是:new Student();即对象本身

对象,数组, 集合, String 都是引用数据类型

所有引用数据类型默认值都是null

5数据类型在内存中的空间分配

基本数据类型只有一块存储空间(分配在栈stack中);

引用数据类型有两块存储空间(一块在栈stack中,一块在堆heap中)

对于引用数据类型的对象,对象名和对象的引用在栈上,对象放在堆中。引用就是指向对象在堆中的地址

6 装箱与拆箱

提供一种机制,使得基本数据类型可以与引用类型互相转换

针对每一种基本数据类型提供了对应的引用类型

包装器:Boolean,Character,Integer,Byte,Short,Long,Float,Double

包装类型是引用类型,说白了就是一个类,既然是类,里面可以有属性和方法,每个包装类型和基本数据类型都是大同小异的

装箱(将基本数据类型转化为引用类型)

装箱过程是通过调用包装类的valueOf方法实现的

拆箱(将引用类型转化为基本数据类型)

拆箱过程是通过调用包装类的xxxVaulue方法实现的(xxx代表对应的基本数据类型)

自动装箱、自动拆箱

基本数据类型的自动装箱、拆箱 自JDK1.5开始提供的功能

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值