Java数据类型

Java定义的数据类型
一、变量按照数据类型来分:

基本数据类型:
	整型:byte\short\int\long
	浮点型:float\double
	字符型:char
	布尔型:boolean

引用数据类型:
	类(class)
	接口(interface)
	数组([])(array)

二、变量在类中声明的位置:
成员变量 vs 局部变量

class Test1{
	public static void main(String[] args){
		byte b1 = 12;
		byte b2 = -128;
		b2 = 127;
		System.out.println(b1);
		System.out.println(b2);	
		
		short s1 = 128;
		int i1 = 1234;//通常使用int
		long l1 = 33452489758327636L;//long型变量必须以“l”或“L”结尾
		
		System.out.println(s1);
		System.out.println(i1);
		System.out.println(l1);
		
		//浮点型,表示带小数点的数值;float表示数值的范围比long还大
		
		float f1 = 12.3F;//定义float必须以“f”或“F”结尾
		double d1 = 123.3;//通常使用double
		System.out.println(f1 + 1);
		System.out.println(d1 + 1);
		
		//字符型:char(1字符=2字节)。
		//1、声明一个字符。2、转义字符。3、直接使用 Unicode 值来表示字符型常量
		char c1 = 'a';// char c1 = 97; 
		char c2 = '\n';
		char c3 = '\t';//制表符
		char c4 = '\u0043';
		
		System.out.println(c2);
		System.out.println(c1);
		System.out.println(c4);
		
		//布尔型:boolean  1、只能取两个值true、false。2、常常在条件判断、循环结构中使用
		//     \n表示换行;  \\n表示\n
	}
}

基本数据类型之间的运算规则:
前提:不包含Boolean。

1、自动类型提升:
	当容量小的数据类型与容量大的数据类型做运算是,结果自动提升为容量大的数据类型。
	byte、char、short --> int --> long --> float --> double
	
	**特别的:当byte、char、short三种类型的变量做运算是,结果为int型。
			  对于整型,默认就为int。
			  对于浮点型,默认为double。
	
2、强制类型转换:在Test3中。
class Test2{
	public static void main(String[] args){
	
		byte b1 = 2;
		int i1 = 12;
		//编译不通过 byte b2 = b1 + i1;
		int i2 = b1 + i1;
		long l1 = b1 + i1;
		System.out.println(i2);
		System.out.println(l1);
		
		float f1 = b1 + i1;
		System.out.println(f1);
		
		
		//**************特别的*******************
		char c1 = 'a';
		int i3 = 10;
		int i4 = c1 + i3;
		System.out.println(i4);
		
		short s1 = 10;
		//char c2 = c1 + s1;   编译不通过
		
		byte b2 = 10;
		//char c3 = c1 + b2;   编译不通过
		
		//short s2 = b2 + s2;   编译不通过
		
		//short s4 = b1 + b2;   编译不通过
		
		System.out.println(c1 + i3);  // 输出107
		
	}
}

强制类型转换:自动类型提升运算的逆运算。
1、需要使用强转符:()
2、注意点:强制类型转换,可能导致精度损失。

class Test3{
	public static void main(String[] args){
		
		double d1 = 12.3;
		
		int i1 = (int)d1;//截断操作  12.9999———>12.精度损失
		System.out.println(i1);
		
		int i2 = 128;
		byte b = (byte)i2;
		System.out.println(b);//输出 -128 精度损失
	}
}

String类型变量的使用:
1、String属于引用数据类型
2、声明String类型变量时,使用一对""。
3、可以和8种基本数据类型做运算,且运算只能是“连接”运算:+ ,运算的结果还是String类型。

class Test4{
	public static void main(String[] args){
		
		String s1 = "Hello  World!";
		
		System.out.println(s1);
		
		String s2 = "a";
		String s3 = "";
		
		//char c1 = ''; 编译不通过!!
		
		//*********************************
		int number = 1001;
		String numberStr = "学号:";
		boolean b1 = true;
		String  info = numberStr + number + b1;// +:*连接*运算   输出:学号:1001true
	
		System.out.println(info);
		
		//String str1 = 123;  编译不通过;
		//String str1 = (int)123;  编译不通过;
		String str1 = 123 + "";// "123"
		//int i1 = (int)str1;  编译不通过;
		int num1 = Integer.parseInt(str1);
		System.out.println(num1);
		
		//练习1
		char c = 'a';
		int num = 10;
		String str = "Hello";
		
		System.out.println(c + num + str);//107Hello
		System.out.println(c + str + num);//aHello10
		System.out.println(c + (num + str));//a10Hello
		System.out.println((c + num) + str);//107Hello
		System.out.println(str + num + c);//Hello10a
		
		//练习2
		// *	*
		System.out.println("*	*");// *       *
		System.out.println('*' + '\t' + '*');// 93
		System.out.println('*' + "\t" + '*');// *       *
		System.out.println("*" + "\t" + "*");// *       *
		System.out.println('*' + '\t' + "*");// 51*
		System.out.println('*' + ('\t' + "*"));// *       *
	}
}
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页