变量,常量及其数据类型

变量的本质

就是代表一个可操作的存储空间,空间的位置是确定的,但是里面放置什么值是不去确定的, 我们可以通过变量名来访问对应的存储空间,从而操作这个存储空间的值根据所需定义的变量的大小来定义,不同的类型分配的存储空间的大小时不一样的。
变量包含变量名,数据类型,作用域
变量只有申明并且初始化之后才能使用。

变量的类型

1.局部变量:
在方法或者语句块中定义的变量,只能在方法和语句块中使用
2.成员变量(实例变量):
方法外部,类的内部定义的变量,从属于对象,生命周期伴随对象的始终
是对象的成员,会自动的初始化

  • int:0
  • double:0.0
  • char:\u0000
  • boolean:false

3.静态变量:
使用static定义的,从属于类,生命周期伴随类的始终,从类的加载到卸载(生命周期最长)

整型变量

常量(constant):
命名全部用大写字母和下划线

  • 整型变量:byte(1字节),short(2),int(4),long(8)(每个字节8位)整型数包含正数和负数。
  • 进制的表示:0(八进制)0x(十六进制),0b(二进制)
  • 整型常量默认是int型的,所以如果在定义long型的变量时,在长数的后面加上L或l表示的是一个long型的常量
public class virant {
	int a;//成员变量
	static int size;//静态变量
	final String STR="name";
	//STR="abcd";//常量不可再重新赋值
	//常量在定义的时候进行初始化。
	public static void main(String[] args) {
		
		{
			int age;//局部变量,从属于语句块
		}
		byte a=30;
		//short b=30000000;//超过了short的长度
		short b=30000;
		int c=3000000;
		//long d=30000000000;//常量默认的大小为int型,超过了整型常量的大小
		long d=30000000000L;//在后面加上L或者l,将其转换成长整型。
		
	}
	

}

浮点型变量和常量

  1. float:4字节 ,尾数精确到7位有效数字,float类型的数值有一个后缀F或者f,没有F/f的浮点数默认为double型,也可以显示的添加D/d来说明是double类型
  2. double:8字节
public class virant {
	
	public static void main(String[] args) {
		
		float a=3.14f;//不加f会出现错误,因为浮点常量默认的是double类型
		double b=6.28;
		double c=628E-2;
		//浮点数是不精确的,一定不要用于比较
		float f=0.1f;
		double d=1.0/10;
		System.out.println(f==d);//结果为false
		
		float d1=423432423f;
		float d2=d1+1;
		if(d1==d2)
		{
			System.out.println("d1==d2");//输出结果为d1==d2;
		}
		else
		{
			System.out.println("d2!=d2");
		}
	}

}

如果需要对浮点类型的数据进行比较的话利用BigDecimal类进行比较

BigDecimal bd=BigDecimal.valueOf(1.0);
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		bd=bd.subtract(BigDecimal.valueOf(0.1));
		System.out.println(bd);//0.5
		System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001
		
		BigDecimal bd2=BigDecimal.valueOf(0.1);
		BigDecimal bd3=BigDecimal.valueOf(1.0/10);
		System.out.println(bd2.equals(bd3));//true

字符型变量和常量

char:表示的是Unicode编码中的字符,可以表示的是所有语言的字符。(包括汉字)
Unicode具有0-65535之间的编码,通常从\u0000-\uFFFF之间的十六进制的值来表示(前缀u表示的是Unicode)

char c="\u0061";//a

转义字符

System.out.println(""+'a'+'b');//在前面加上空字符串,表示的是将两个字符进行链接
		//如果不加空字符串的话,字符型将会自动转换为int型的数字进行相加
		System.out.println(""+'a'+'\n'+'b');
		System.out.println(""+'a'+'\t'+'b');
		System.out.println(""+'a'+'\''+'b');
		System.out.println(""+'a'+'\"'+'b');

boolean类型的变量和常量

值为true和false。(默认值为false)

发布了43 篇原创文章 · 获赞 11 · 访问量 2600

猜你喜欢

转载自blog.csdn.net/weixin_43328816/article/details/104143640
今日推荐