在说变量之前,有一个概念需要了解即标识符,简单来说标识符就像名字一样用来表示一个事物,标识符只是为了命名变量、常量、方法、类和包,所以做到标识符见名知意是能很好的提高程序的可读性的,下面我们就来聊聊关于java各种变量大全?接下来我们就一起去了解一下吧!

java各种变量大全(Java基础之变量)

java各种变量大全

1. 变量、常量

在说变量之前,有一个概念需要了解即标识符,简单来说标识符就像名字一样用来表示一个事物,标识符只是为了命名变量、常量、方法、类和包,所以做到标识符见名知意是能很好的提高程序的可读性的。

在Java中标识符的命名应该遵循以下规则:

注意:

Java是区分大小写的,也就是说Area、area是两个不同的标识符。

1.1 变量

变量简单来说就是用来存储一个可能会被改变的值,然后提供给程序进行计算,例:x = 5,其中x就是一个变量,随后我们可能利用这个变量进行赋值运算等操作。

在使用变量前需要进行定义,指定该变量能存储什么类型的数据,变量的定义如下:

数据类型 变量名称;

下面是一些变量声明的示例:

int x; // 声明整型类型的变量x double y; // 声明双精度类型的变量y

声明变量之后,可以对变量进行初始化,即给变量一个初始值。可以将定义变量以及初始化变量一步完成,如:

int total = 1; // 上面的语句等同于 int total; // 定义变量 total = 1; // 初始化 // 变量定义完成后就可以使用变量了 total = 2; // 这里我将total的值修改为2

注意:变量在初始化或者赋值前必须进行声明,方法中的变量在使用之前必须进行赋值;

1.2 常量

针对于变量来说,常量表示的是一个不能被改变的值,一旦定义之后就无法改变,例如我们需要计算一个圆形的面积时需要使用进行计算,这时​的值是永远不会改变的,所以可以定义为常量,常量的定义语法如下:

final 数据类型 常量名 = 值;

常量必须在一条语句中进行声明和赋值,其中final为Java的关键字,简单理解为用其标识的变量的值就不能在程序中进行修改,尽量在命名常量时使用大写字母命名。示例如下:

final double PI = 3.1415926;

使用常量的好处:

在需要重复使用一个值时不用去定义多个变量,共同使用一个常量即可;

若需要修改值,如将3.1415926修改成为3.14,则只用修改一处源码即可,然后编译;

1.3 变量和常量的作用域

在说作用域之前补充一个概念代码块

代码块:使用{}括起来的代码被称为代码块。

作用域: 顾名思义就是变量或者常量可以使用的区域。

变量的作用域:

变量的作用域为声明的代码块,即在当前的{}内,出了这个{}就不生效了,当前的{}中可以存在多个子代码块,在子代码块中变量仍然生效,如:

{ int x = 0; { x = 10; } public void test() { x = 20; } } // 变量x在这个大括号中都可以使用 x = 5; // 报错,Cannot resolve symbol 'x',标识该变量还未声明,这是一个新的变量不等同于上一个大括号内的变量x

变量的作用域可以分为如下几类,在后续的文章中将陆续说明:

  1. 类变量
  2. 实例变量
  3. 局部变量

常量的作用域:

其实常量不存在作用域,可以理解为定义了一个常量,可以在程序的任何地方去使用。

常量的使用:

在Java中使用常量,主要有以下几种方式:类属性,枚举,常量类,接口常量

1.类属性:简单来说就是常量与这个类相关,但是数量不多,其他地方用不到,这时我们就可以直接在类中定义常量,当前类去使用,若是程序很多地方都需要使用该常量,这应该用枚举、常量类或者接口常量来管理;public static final String SUMMER = "夏天";

2.枚举:适合管理数量确定的一些数据,如一周固定为七天,然后将周一周二之类的数据在枚举类中定义,在后续的文章中将说明枚举的相关内容;

3.常量类:将常量定义在一个类中,但是该类不允许被继承,即用final关键字修饰,其中的常量定义时用static关键字修饰;

public final class Week { public static String MONDAY = "Monday";}// 其他地方调用,使用类名.常量名即可Week.MONDAY;

4.接口常量:跟常量类类似,只是将常量放置在接口中public interface Week { String MONDAY = "Monday";}// 其他地方调用,使用接口名.常量名即可Week.MONDAY;

2. 赋值语句以及赋值表达式

变量在声明之后,使用赋值语句给其赋值,在Java中将”=“作为赋值运算符,赋值语句的语法如下:

变量名 = 表达式;

表达式(expression)表示将值或者变量通过运算符组合在一起产生新的值。因此赋值语句也可以成为赋值表达式。

以下代码将展示赋值语句的使用:

int x = 5; // 直接将x赋值5 double r = 1.0; // 直接将浮点类型的r赋值为1.0 x = x 1; // 将x加1后重新赋值给x,x的值变为6 double area = r * r * 3.14; // 将变量r相乘后再乘以3.14后的值赋值给变量area

注意:

要给一个变量赋值,变量必须在赋值运算符的左边,例如:1 = x;就是错误的赋值。

在赋值语句中,左边变量的数据类型必须与右边值的数据类型,保持一致或者兼容,例如int类型的变量只能赋值为整数类型的且数值范围小于int类型的数据值。

3. Java的基本数据类型

在Java程序语言中有四类八种基本数据类型:

整型

byte、short、int、long

浮点型

float、double

字符型

char

布尔型

boolean

“位”是计算中存储数据的最小单位,记为:bit(b)

在二进制计数系统中一个0或者1代表一位,特别注意1 Byte = 8 bit

3.1 整型

整型数据类型的取值范围:

类型名

范围

存储大小

byte

​ ~ ​

8位带符号数

short

​ ~ ​

16位带符号数

int

​ ~ ​

32位带符号数

long

​ ~ ​

64位带符号数

注意:

定义double类型的变量时, 总是以L或小写l结尾,例:

double x = 12 l (很多时候l和数字1会很像,容易产生不必要的误会)

double x = 12 L(推荐)

3.2 浮点型

浮点型数据类型取值范围:

类型名

范围

存储大小

float

-3.4 E 38 ~ 3.4 E 38

32位(4个字节),标准IEEE 754

double

-3.4 E 38~3.4 E 38

64位(8个字节),标准IEEE 754

float:浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位二进制指数和一个 23 位尾数,尾数表示浮点数有效数字。

double:双精度浮点型,此数据类型与float相似,但精确度比float高,具有8个字节。

注意:

Java中的浮点数数据类型默认为double(双精度)可以d或D结尾,例:1.25 d或1.25 D。

若要定义float(单精度)必须在该变量或常量量后面附加一个F或f:

float x = 1.25 f

float x = 1.25 F

3.3 字符型

字符型数据类型用来表示单个字符,直接用单引号括住,如:

char letter = 'a';

一个字符在计算中是以0和1构成的序列的形式来存储的,就是说计算机只知道以二进制进行表示的数据。涉及到字符那就有必要了解一下什么是字符集和编码。

那什么是编码和解码?

简单来说人类的语言由各种字母或者符号来进行标识,以方便人们进行沟通交流,那计算机只认识0和1组成的二进制“语言”,那将人类的语言翻译给计算机识别的过程就可以称为编码,反之将计算机语言翻译给人类认识就称为解码

正式点表达即:将字符映射为它的二进制形式的过程称为编码,字符有多种不同的编码方式。编码表定义该如何编码每个字符。

Unicode和ASCII码是什么东西?

计算机最初出现在美国,我们知道英语是由26个字母来组合表示的,那么也就是说用字母、数字和标点符合可以覆盖了所有的英语所表达的意思,我们将字母、数字和标点符号称为可见字符,但是对于计算机来说还有一些控制文本的符号,如:空格、转行等,我们将其称之为控制字符,那么美国人就将可见字符和控制字符组合在一起就成了一个字符集,那么字符集简单来说就是字符的集合。至此将包含了可见字符和控制字符的128个字符集称为ASCII字符集,如下:

码位

解释

0

空字符

1

标题开始

2

正文开始

...

...

10

换行

...

...

13

回车

...

...

31

单元分隔符

32

空格

33

...

...

48

0

...

...

57

9

...

...

65

A

...

...

90

Z

...

...

97

a

...

...

122

z

...

...

126

~

127

删除

其中第 0~31 个字符以及第 127 个字符(最后一个字符)都是不可见的(无法显示),即控制字符,32~126位可见字符。

那么字符集有了,怎么向计算机编码呢?美国人也很直接,直接将每个字符的码位的转换成二进制存储,那转换后的二进制我们就称为ASCII码

随着计算机的普及,ASCII码已经不能覆盖全球的所有字符了,例如博大的中华文化岂是128个字符能表示的,所以由中国国家标准总局发布了GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,总共收录了6763个汉字,随着添加的汉字不断增加,随后又发布了GBK汉字内码扩展规范,GBK 共收入 21886 个汉字和图形符号。可见不同的国家发布不同的字符集,有很多种编码,到后面实在是太混乱了,所以由国际标准化组织(ISO)提出了Unicode。

Unicode其实可以将其看为一个标准,其诞生的目的就是要将全球的所有字符收纳到其中。Unicode一开始是使用UCS-2(16位)字符集,其只能表示的字符只有65536个,仍然不够表示全世界的字符,所以对其进行扩展,扩展到了32位即UCS-4字符集,可以表示近43亿个字符。

那什么是UTF-8呢?

UTF-8是一种编码规则,可以理解为将字符集码位用一种规则进行编码。针对编码及其规则,后续进行说明,现在了解他们是什么即可。

3.4 布尔类型什么是布尔类型的数据?

直接理解为,将值赋予true或者false,即对于关系真或者假。

布尔类型有什么用?

简单来说就是表示两个值之间的比较结果是为真还是为假,根据真假进行不同的操作,如:若买一个东西需要88,那我拥有的钱满足某个条件即可表示为真,反正为假,这里简单来说拥有的钱大于88为真,反之为假,那我有100,大于了88,结果为真,我可以买下这个东西,若我只有80,那么结果为假,我不能买这个东西。这个过程其实就是一个判断的过程,那这个判断的结果就需要使用布尔类型的数据来标识。

在计算机中布尔类型的数据用于两个值之间的比较,那么值之间的比较有如下关系,我们使用比较运算符来表示:

运算符

含义

示例

布尔类型结果

>

大于

8 > 6

true

<

小于

8 < 6

false

>=

大于等于

8 >= 6

true

<=

小于等于

8 <= 6

false

==

等于

8 == 6

false

!=

不等于

8 != 6

true

在Java中的实例如下:

x > 10; x < 10; x >= 10; x <= 10; x == 10; x != 10;

3.5 运算符

两个值之间可以进行数值计算,那么就要使用数值运算符,Java中的运算符如下:

运算符

含义

示例

结果

1 1

2

-

1 - 1

0

*

1 * 2

2

/

1.0 / 2.0

0.5

%

求余

20 % 3

2

注意:

当两个整型类型的数据相除时,结果为整型,小数部分抹除。

3.6 基本数据类型的默认值

在Java中基本数据类型可以定义后不进行赋值,Java会为其赋予默认值。

byte x; // 默认值为0 short x; // 默认值为0 int x; // 默认值为0 long x; // 默认值为0L float x; // 默认值为0.0f double x; // 默认值为0.0d char ch; // '' boolean b; // false

,