首页 > 技术文章 > Java基本语法--变量

asio 2020-02-06 22:16 原文

本篇博客主要介绍了Java基本语法中变量(variable)d的使用,变量是指内存中的一个存储区域,用于在内存中保存数据,在该区域的数据可以在同一类型范围内不断变化。变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。


使用变量注意要点

➣ Java中每个变量必须先声明,后使用

➣ 使用变量名来访问这块区域的数据

➣ 变量的作用域:其定义所在的一对{ }内

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

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



变量的使用

```java -------------------------------- /*声明变量*/ 语法: <数据类型><变量名称> 例如: int num; --------------------------------- /*变量的赋值*/ 语法: <变量名称> = <值> 例如: num = 10; --------------------------------- /*声明和赋值变量*/ 语法: <数据类型><变量名称> = <初始化值> 例如: int num = 10; ---------------------------------- ```

变量分类

**按数据类型分类**

按数据类型分类

按声明位置分类

按声明位置分类

➣ 在方法体外,类体内声明的变量称为 成员变量

➣ 在方法体内部声明的变量称为 局部变量

✒ 同:都有生命周期
    异:局部变量除形参外,需显式初始化



八大基本数据类型

八大基本数据类型包括:整数类型(byte,short,int,long)、浮点类型(float,double)、字符类型(char)、布尔类型(boolean)

整数类型

**整数类型:byte 、short 、int 、long**

整数类型

➣ java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’

➣ java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long

➣ 1MB = 1024KB 1KB= 1024B(Byte)

➣ bit: 计算机中的最小存储单位。byte:计算机中基本存储单元

浮点类型

**浮点类型:float 、double**

浮点类型

➣ float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。

➣ double:双精度,精度是float的两倍。通常采用此类型

字符类型

**字符类型:char**

➣ char 型数据用来表示通常意义上“字符”(2字节)

➣ Java中的所有字符都使用Unicode编码,一个字符可以存储一个字
母,一个汉字或其他书面语的一个字符

➣ 字符型变量的三种表现形式

//一:用英文单引号''括起来的单个字符
char c1 = 'a';
//二:使用转义字符'\'来将其后的字符转变为特殊字符型常量
char c2 = '\n';
//三:直接使用 Unicode 值来表示字符型常量,char c = '/uXXXX';其中XXXX表示一个十六进制整数
char c3 = '\u0041';  //'\u0041'代表'A'

➣ char类型是可以进行运算的,因为它都对应有Unicode码

布尔类型

**布尔类型(用来判断逻辑条件,一般用于程序流程控制):boolean**

boolean类型只有true、false两个值,无null值

//if条件控制语句
if(boolean b1){ //b1=true进入该代码块
	//do something
}
//while循环控制语句
while(boolean b2){ //b2=true继续循环,b2=false退出循环
	//do something
}
//do-while循环控制语句
do{
    //do something
}while(boolean b3); //b3=true继续循环,b3=false退出循环
//for循环控制语句
for(boolean b4){  //b4=true继续循环,b4=false退出循环
    
}
//注意循环语句中的布尔变量的值是变化的,需要在特定条件下退出循环状态


基本数据类型转换

自动类型转换

**容量小的类型自动转换为容量大的数据类型**

数据类型由弱到强

➣ 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的
那种数据类型,然后再进行计算

➣ byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型

➣ boolean类型不能与其它数据类型运算

➣ 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类
型的值将自动转化为字符串(String)类型

byte b1 = 10;
int i1 = 100;
//byte r1 = b1 + i1; 错误无法编译通过
int result1 = b1 + i1;  
System.out.println(result1); //结果为int型,值为110

float f1 = b1 + i1;
System.out.println(f1); //结果为float型,值为110.0

short s1 = 10;
//short = b1 + s1;  错误,编译无法通过
int r2 = b1 + s1;
System.out.println(r2);  //结果为int型,值为20

char c1 = 'a';
int r3 = c1 + i1;
// shor s2 = b1 + s1;错误,编译无法通过
System.out.println(r3);  //'a'=97,结果为int型,值为197

强制类型转换

➣ 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型

➣ 使
用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意

➣ 字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可
以实现把字符串转换成基本类型

boolean类型不可以转换为其它的数据类型

double d1 = 10.23;
int i1 = (int)d1;
System.out.println(i1);  //结果为10,强制转换为int类型,损失精度,保留整数部分
int i3 = 1000;
//byte b1 = (byte)i3;byte范围不足,超出范围

变量运算的两个特殊情况

```java //特殊情况一;long的赋值运算 long l1 = 12345; System.out.println(l1);//结果为12345,12345自动转换为int型

long l2 = 1234567890987654321;
//System.out.println(l2);编译报错,结果为int型,int型容量不足
long l3 = 1234567890987654321L;
System.out.println(l3);//结果为1234567890987654321,long型

//特殊情况二:byte、float的赋值运算
//float f1 = 12.3; 编译失败,12.3自动转换为double,无法赋值给float型
float f2 = 12.3F; //正确赋值方式
byte b1 = 10;
// byte b2 = b1 + 1; 编译失败,1为int型,b1+1自动转换为int型,无法赋值给byte型
//flat f1 = b1 + 10.0;编译失败,10.0为double型,b1+10.0自动转换为double型,无法赋值给float型


<br/>

***

<h2><font color=#FF6699>字符串类型</font></h2>
<font color=#666699>➣  String不是基本数据类型,属于引用数据类型</font>

<font color=#666699>➣ 使用方式与基本数据类型一致,用” “包裹变量值。例如:<font color=#FF9966>String str = “abcd”;</font></font>

<font color=#666699>➣  一个字符串可以链接接另一个字符串,也可以直接连接其他类型的数据,使用’+‘链接</font>

```java
String s1 = "abc";
int i1 = 100;
System.out.println(s1 + i1);   //输出结果为String类型,值为”abc100“

练习(判断对错/说出输出结果,鼠标移动到✍上显示结果)

String str1 = 4;      
String str2 = 3.5f + “”;     
System.out .println(3+4+“Hello!”);      
System.out.println(“Hello!”+3+4);     
System.out.println(‘a’+1+“Hello!”);     
System.out.println(“Hello”+‘a’+1);     


本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布

推荐阅读