JAVA学习记录day02

补充day01: 关键字不能作为标识符和变量名!

变量交换

	import java.util.Scanner;
	//测试 变量值的交换
	public class Test4_Exchange {
		public static void main(String[] args) {
			//1,定义变量a和b
			int a = new Scanner(System.in).nextInt() ;
			int b = new Scanner(System.in).nextInt() ;
			System.out.println("交换前:a="+a+",b="+b);
			
			//2,开始交换
			int c = a ;//创建c保存a的值
			a = b ;//a没值了,找b要
			b = c ;//b没值了,找c要
			
			System.out.println("交换后:a="+a+",b="+b);
		}
	}

基本类型的字面值(5条)

public class Test5 {
	public static void main(String[] args) {
		//1,整数字面值是int类型
		int a = 10000 ;
		//2,浮点数的字面值是double类型
		double b = 5.5 ;
		//3,byte,short,char三种比int小的整数可以用范围内的值直接赋值
		char c = 65535 ;//char类型的取值范围是0~65535,不能超出,超出就报错
		byte d = 127 ;//byte的取值范围是-128~127,不能超出,超出就报错
		short e = 32767; //short的取值范围是-32768~32767,不能超出,超出就报错
		//4,字面值的后缀 lL fF dD
		float f = 5.5f ;
		//右侧的5.5默认是double类型,但是加了后缀f就会变成float类型
		long g = 10000000000L ;
		//右侧的10000000000默认是int类型,但是已经超出了int范围,直接赋值会报错
		//解决方案是加后缀L,把右侧的int类型的值转成long
		double h = 3d ;
		System.out.println(h);//3.0
		//3的字面值是int类型,加后缀d,从int转成double
		
		//5,进制前缀
		//二进制的数据0b开始 -- 0b0011
		//八进制的数据0开始   -- 0567
		//十六进制的数据0x开始   -- 0x0987C    
			//-- char类型是\\u开始   -- \u0000
		
	}
}

一,基本类型的类型转换
–1,小转大 – 隐式转换
–2,大转小-- 显式转换
//测试 类型转化
public class Test1 {
public static void main(String[] args) {
//小转大—隐式转换
byte a = 10 ;
//把右侧的小类型byte类型的a,转成左侧的大类型long类型的b–可以直接转
long b = a ;

			//大转小---显式转换double->int
			double m = 9.9 ;
			//拿着右侧的大类型double类型的m,转成左侧的下类型int类型的n--不可以直接转
			//解决方案是:强转/显示转化--加代码--(小类型)
			int n = (int)m ; 
			
			//小类型long 大类型float
			//小转大  --可以直接转
			long x = 10;
			float y = x;
			//大转小 -- 不能直接转,需要强转
			float o = 9.9F ;//右侧的9.9字面值是double,非要变成float需要加后缀F
			long p = (long) o ;//右侧的o是float类型是大类型.给左侧的plong类型小类型赋值--
			
		}
	}

运算规则(5条)
//测试 运算规则
public class Test2 {
public static void main(String[] args) {
//1, 计算结果的数据类型,与最大类型一致
System.out.println(3/2); //int/int–> int – 1
System.out.println(3d/2); //double/int --> double – 1.5

			//2, byte,short,char三种比int小的整数,运算时会先自动转换成int
			byte a = 1 ;
			byte b = 2 ;
			byte c = (byte) (a + b) ;
			//右侧已经变成大类型int了,给左侧的小类型,不可以直接赋值---需要强转 
			
			//TODO 测试short或者char的现象,同byte...
			
			//3,计算:光速运行一年的长度是多少米
			//整数运算时,已经超出了int的范围,就会出现溢出现象
			//解决方案就是,把字面值是int类型,加后缀L转成long类型.
			System.out.println( 30000000L*60*60*24*365  );
			
			//4, java 对于小数运算时会产生不精确的现象
			System.out.println(1-0.8);//0.19999999999999996
			
			//5, 小数运算时的特殊值
			System.out.println(1.5/0);//Infinity
			System.out.println(0/0.0);//NaN -- not a number
			
		}
		
	}

你可能感兴趣的:(小白之路,java)