博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA学习笔记05JAVA中的变量(变量的定义、变量的数据类型、变量的类型转换、变量的作用域)
阅读量:3931 次
发布时间:2019-05-23

本文共 2430 字,大约阅读时间需要 8 分钟。

2.2JAVA中的变量

1.变量的定义

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

下图中的代码中,第一行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值,变量x和y在内存中的状态如图所示。

int x = 0,y;y = x+3;

在这里插入图片描述

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

下边第二行代码的作用是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化,如图所示。

int x = 0,y;y = x+3;

在这里插入图片描述

2.变量的数据类型

Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。
在这里插入图片描述
(1).整数类型变量
-用来存储整数数值,即没有小数部分的值。

-整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。

在这里插入图片描述
-占用空间指的是不同类型的变量分别占用的内存大小

-取值范围是变量存储的值不能超出的范围

-为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母“L”(或小写“l”),说明赋值为long类型。如果赋的值未超出int型的取值范围,则可以省略字母“L”(或小写“l”)。

long num = 2200000000L;//**所附的值超出了int型的取值范围,后面必须加上字母L**long num = 198;//**所附的值未超出int型的取值范围,后面可以加上字母L**long num = 198;//**所附的值未超过int型的取值范围,后面可以省略字母L**

(2)、浮点数类型变量

-浮点数类型变量用来存储小数数值。

-浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精确。

在这里插入图片描述

-在取值范围中,E表示以10为底的指数,E后面的“+”号和“-”号代表正指数和负指数,例如1.4E-45表示1.4*10-45。

-在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母“F”(或“f”),而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或“d”),也可不加。

float f = 123.4f;//为一个float类型的变量赋值,后面必须加上字母fdouble d1 = 100.1;//为一个double类型的变量赋值,后面可以省略字母ddouble d2 = 123.4d;//为一个double类型的变量赋值,后面可以加上字母d

-在程序中也可以为一个浮点数类型变量赋予一个整数数值.、

(3)、字符类型变量

-用于存储一个单一字符,在Java中用char表示。

-每个char类型的字符变量都会占用2个字节。

-赋值时,要用英文半角格式的单引号(’ ‘)把字符括起来,如’a’,

-也可以赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为’a’。

char c = 'a';//为一个char类型的变量赋值字符achar ch = 97;//为一个char类型的变量赋值整数97,相当于赋值字符a

(4)、布尔类型变量

-布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。具体示例如下:

boolean flag = false;//声明一boolean类型的变量,初始值为falseflag = true;//改变flag变量的值为true

3、变量的类型转换

-当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。

-根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。

(1)、自动类型转换

-也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。

-要实现自动类型转换,必须同时满足两个条件,

…第一是两种数据类型彼此兼容,
…第二是目标类型的取值范围大于源类型的取值范围。

byte b = 3;int x = b; // 程序把byte类型的变量b转换为int型,无需特殊声明

注意:*(1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,int类型的数据可以赋值给long类型的变量

*(2)整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。
*(3)其它类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。

(2)、强制类型转换

-强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。

-当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。

-强制类型转换的格式如下所示:

在这里插入图片描述
4、变量的作用域
-变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。

-在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。

在这里插入图片描述

转载地址:http://tktgn.baihongyu.com/

你可能感兴趣的文章
组播地址,IP组播地址
查看>>
什么是组播
查看>>
组播通信
查看>>
Linux网络编程一步一步学-UDP组播
查看>>
Linux C编程---网络编程
查看>>
在Linux创建库函数(1)
查看>>
在Linux创建库函数(2)
查看>>
在Linux创建库函数(3)
查看>>
多VLAN环境下DHCP服务的实现
查看>>
Java实现文件拷贝的4种方法
查看>>
在pb11中将C/S程序转换到B/S的步骤
查看>>
PowerDesigner教程系列(二)概念数据模型
查看>>
从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
查看>>
SQL Server 2000中查询表名
查看>>
第一个go程序连接mysql读取数据
查看>>
一个小示例,对比下go和java
查看>>
struts2 上传excel文件
查看>>
开篇背景
查看>>
进程、线程、纤程
查看>>
Log4J日志管理类使用详解
查看>>