标签:才有 容量 类型转换 成员 名称 十六 作用 数据 鼠标
本篇博客主要介绍了Java基本语法中变量(variable)d的使用,变量是指内存中的一个存储区域,用于在内存中保存数据,在该区域的数据可以在同一类型范围内不断变化。变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
? 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范围不足,超出范围
//特殊情况一;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型
? String不是基本数据类型,属于引用数据类型
? 使用方式与基本数据类型一致,用” “包裹变量值。例如:String str = “abcd”;
? 一个字符串可以链接接另一个字符串,也可以直接连接其他类型的数据,使用’+‘链接
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博客???Asio君???同步发布
标签:才有 容量 类型转换 成员 名称 十六 作用 数据 鼠标
原文地址:https://www.cnblogs.com/asio/p/12271226.html