欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的复合运算符,+=,++,三元运算符,已经java中8个基本数据类型的默认值

程序员文章站 2024-03-05 12:54:36
...

我直接上代码,大家直接看案例更直观!

public class TestJavaDataType {

	// 字符型
	char flag;

	// 布尔型
	boolean sex;

	/* 数值型 */
	// 整数类型
	byte number;

	short age;

	int workYears;

	long money;

	// 浮点类型(小数类型)

	float score;

	double income;

	/**
	 * java中全局变量为什么不能先声明后赋值: 因为index = 8;这是赋值语句,不能单独出现在方法或{}以外的地方
	 * 
	 */
	int index;
	{
		index = 8; // 写在{}里就可以了
	} 
	
	static int count;
	{count = 20;} // 写在{}里就可以了

	/**
	 * @Description: (java中8个基本数据类型的默认值) @param @param args 参数说明
	 * 2018年4月9日下午6:59:10 jerry @return void 返回类型 @author 囧囧
	 * E-mail:aaa@qq.com @email aaa@qq.com @throws
	 */
	public static void main(String[] args) {
		TestJavaDataType testJavaDataType = new TestJavaDataType();
		testJavaDataType.printJavaDataDefaultValue();
		testJavaDataType.test();
	}

	// 打印java中8个基本数据类型的默认值
	public void printJavaDataDefaultValue() {
		System.out.println("**********打印java中8个基本数据类型的默认值**********");
		System.out.println("char / flag = " + flag);
		System.out.println("boolean / sex = " + sex);
		System.out.println("byte / number = " + number);
		System.out.println("short / age = " + age);
		System.out.println("int / workYears = " + workYears);
		System.out.println("long / money = " + money);
		System.out.println("float / score = " + score);
		System.out.println("double / income = " + income);
		System.out.println("**********打印java中8个基本数据类型的默认值**********");
	}
	
	//测试+=复合运算符,测试三元运算符,测试是否会自动转换类型
	public void test() {
		short age = 10;
		short newAge = (short)(age + 2);
		age = newAge;
		int newAge2 = age + 2;
		System.out.println("newAge = " + newAge + " / " + "newAge2 = " + newAge2);
		/*三元运算符*/
		int C = 16;
		int A = 10;
		int B = 12;
		C = A > B ? 100 : 200;
		System.out.println("C=" + C);
		System.out.println(A > B ? 8888.99 : 6666.62);
		
		short number = 18;
		double a = 6.68;
		
//		number =(short)(number + 6); 
//		number =(short)(number + 6.68); 
//		number = (short)(number + a);
//		number = number + a; //会报错
		number += a; //不会报错(+=作为复合运算符会将结果强制转换为左边变量的类型,并且number只会计算一次)
		System.out.println("number = " + number);
		
		int x = 1;
        // 步骤1. 计算y(默认值0);
        // 步骤2. (x++)返回x值给临时变量c,为1;
        // 步骤3. x = x + 1,x为2;
        // 步骤4. 计算x,x为2;
        // 步骤5. y = 临时变量c + 2 = 1 + 2 = 3.
        int y = (x++) + x;
        System.out.println("x = " + x);
        System.out.println("y = " + y);
        
        x = 1;
        // 步骤1. 计算y(默认值0);
        // 步骤2. (++x)返回x+1值给临时变量c,为2;
        // 步骤3. x = x + 1,x为2;
        // 步骤4. 计算x,x为2;
        // 步骤5. y = 临时变量c + 2 = 2 + 2 = 4.
        y = (++x) + x;
        System.out.println("x = " + x);
        System.out.println("y = " + y);
        
		
		int num1 = 18;
		int z, k;
		z = -num1; //负值
		k = +num1; //正值
		System.out.println("z = " + z + " / " + "k = " + k);
		
		int m = 26;
		long n = 12;
		double t = 6.88; 
		m += n;
//		m += t;
		/**
		 * 
		 * 编译不通过,会报错,等于号左边的m是int类型,等于号右边的m是int类型,n是long类型,当左
		 * 边的m加上n时就会进行类型提升,导致m+n的结果是long类型,把一个long型的值赋值给一个int类型的时候自然会报错
		 */
		//m = m + n; //编译通不过去,会报错
	//	 m = (int)(m + n); //除非像这样,强制类型转换
		 
		System.out.println("m = " + m);
	        int h = 3;
//        int temp = h++; 
//        System.out.println("temp = " + temp);
        h = h++;
        System.out.println("h = " + h);
        h = ++h;
        System.out.println("h = " + h);
}

}

java中的复合运算符,+=,++,三元运算符,已经java中8个基本数据类型的默认值