Java基础学习之变量与常量
一、变量
(一)变量的性质
1、可以操作的一段存储空间
2、变量的三要素:变量类型、变量名称、变量的作用域
3、变量声明规范:每行声明一个且增加相应的注释以说明
4、变量必须在声明之后才能够开始使用
(二)变量的分类
1、局部变量(使用前需要进行初始化,驼峰原则命名):在方法当中或语句块当中定义的变量,该变量的作用域从定义该变量开始到方法或语句块结束。
2、成员变量:在方法的外部、类的内部定义的变量,从属于对象,伴随着对象的执行,能够自动进行初始化。
3、静态变量:使用static进行修饰,属于类,声明周期伴随着类的开始结束,生命周期是最长的。
二、常量:通常指的是固定的值,在使用final修复之后,该常量的值不能被再次改变
1、命名规范:全部使用的大写字母并运用下划线全部隔开
2、用final进行修饰
三、基本数据类型
(一)基本数据类型
1、数值型:
①整数类型:byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节)
②浮点类型:float(4个字节)、double(8个字节)
③字符型:char(两个字节)
④布尔型(Boolean):true/false(1位)
(二)整形变量/常量
/**
* 测试基本数据类型
* @author 14323
*
*/
public class TestprimitiveDateType {
public static void main(String[] args){
//测试整形变量
int a = 15;
int b = 015;//0开头的是八进制
int c = 0x15;//0x开头的是十六进制
int d = 0X15;//0X开头的是十六进制
int v = 0b110001;//0b开头的是二进制
int x = 0B110001;//0B开头的是二进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(v);
System.out.println(x);
byte age = 20;
short salary = 30000;
int papulation = 2000000000;//整型常量默认为int类型
long globaPopulation = 7400000000L;//后面加L表示为一个long类型,要将默认的int改为long类型
}
}
(三)浮点型常量、变量
⭐给float赋值时的注意事项
/**
* 测试浮点型
* @author 14323
*
*/
public class TxstPrimitDataType2 {
public static void main(String[] args) {
//float b = 3.14; 错误,需要添加f/F后缀
float a = 3.14f;
float c = 3.14F;
double d = 6.28;
double e = 628e-2;//科学计数法
System.out.println(a);
System.out.println(c);
System.out.println(d);
System.out.println(e);
//浮点数是不精确的,不能用于比较
//案例1:两个相等的值显示不等
float q = 0.1f;
double p = 1e-1;
System.out.println(p==q);
//案例2,两个不相等的值显示相等
float testNumberOne = 423432423F;
double testNumberTwo = testNumberOne+1;
if(testNumberOne==testNumberTwo) {
System.out.println("两者相等");
}else {
System.out.println("两者不相等");
}
}
}
不能这样给float赋值,因为小数点默认的数据类型是double。
解析
1、浮点型默认的数据类型为double
2、浮点数都是不精确的
3、Java表示数据类型的方式:
①十进制:3.14、314
②科学计数法:314e(E)-2、3.14e(E)2
4、使用float=x赋值时需要在数据的末尾加上l或L(最好大写)
5、若想精确比较浮点数,可以利用Java中的BigInteger(大整形,任意精度整数运算)和BigDecimal(大浮点,任意精度浮点运算)
//精确浮点运算
BigDecimal bd = BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);
System.out.println(1.0-0.1);
//精确浮点比较
BigDecimal ab = BigDecimal.valueOf(0.1);
BigDecimal ac = BigDecimal.valueOf(10E-2);
System.out.println(ab.equals(ac));
(四)字符型变量/常量
/**
* 测试字符类型
* @author 14323
*
*/
public class TestPrimitiveDateType3 {
public static void main(String[] args) {
char a = 't';//表示一个字母字符
char b = '成';//表示一个汉字字符
char c = '\u0061';
System.out.println(c);
//转义字符
System.out.println(""+'a'+'\r'+'b');//打印空格
System.out.println(""+'a'+'\''+'b');//打印一个单引号
System.out.println(""+'a'+'\"'+'b');//打印一个双引号
System.out.println(""+'a'+'\b'+'b');//打印退格
System.out.println(""+'a'+'\n'+'b');//打印换行
System.out.println(""+'a'+'\\'+'b');//打印反斜
System.out.println(""+'a'+'\t'+'b');//打印制表符
//定义字符串用String,实质上是一串字符序列
String okHaha="zuihouyizhichengdu";
}
}
解析
1、字符常量长度为两个字节,但是其中不能存储字符串
2、在存储字符串时需要用到String,这实质上是一串字符序列
(五)Boolean类型
⭐Boolean只占一位,常量值为true/false
/**
* 测试布尔类型
* @author 14323
*
*/
public class TestPrimitiveDataType4 {
public static void main(String[] args) {
boolean man = true;
if(man==true) {
System.out.println("男性");
}
}
}