Javase学习-01基本数据类型及运算符
import javax.xml.bind.SchemaOutputResolver; /** *author: TS *createtime: 2021/3/28 *第一个类 */ class HelloWorld{ /** 入口方法 */ public static void main(String args[]){ //收到回复 /* *1、 *2、 */ // 四类八种基本数据类型 常用数据类型:String // 整型 byte n1 = 10; // (占用1字节 8位) short n2 = 100; // (占用2字节 16位) int n3 = 1000; // (占用4字节 32位) long n4 = 10000L; // L大写 (占用8字节 64位) //浮点型 float m1 = 0.1F; // F与f都可以 (占用4字节 32位) double m2 = 0.2;// 默认为双精度,无要求 (占用8字节 64位) //字符型 char h = 'a'; // (占用1字节 8位) //布尔型 boolean isEmpty = true; /* 赋值运算需要保证准确度,只可小转大,不可大转小 1.一般变量进行赋值运算 结果默认统一转换为int ,需强转 2.long+any整型运算符 结果转化为long 3.浮点型+整型 结果为浮点型 双精度+其他-->双精度double(优先) 单精度+其他-->单精度float */ short n12 = (short)(n1 + n2); System.out.println("n12="+n12); byte a1 = 1; byte a2 = 2; byte a3 = (byte)(a1 + a2); byte a4 = (byte)(a1 & a2); byte a5 = 1+2; System.out.println("a3="+a3); System.out.println("a4="+a4); System.out.println("a5="+a5); // long result = 100000000; // System.out.println("result的值为:"+result); // // float num1 = 0.1f+0.2f; // System.out.println("num1的值为:"+num1); // // double num2 =0.1+0.2; // System.out.println("num2的值为:"+num2); // // char name1 = 'a'+10; // System.out.println(name1); //逻辑运算,与、 或、 非、 boolean flag1 = true; boolean flag2 = false; System.out.println(flag1 & flag2); // 与 System.out.println(flag1 | flag2); // 或 System.out.println(! flag1); // 非 System.out.println(flag1 ^ flag2); // 异或:相同为false,不同为true // 算术运算符 + - * % ++ -- += -= *= /= int count = 0; // 等于count = count + 1; System.out.println("++的结果是:" + ++count); count += 5; // 等于count = count + 5; System.out.println(count); // 逻辑运算符 & | ! ^ && || > < >= <= == != System.out.println(1 + 1 == 2 || 1 > 2);// 算术运算符优先于逻辑运算符 // 三目运算符 condition ? result1 : result 2; int res = 1>2 ? 5 : 6; // true为5,false为6 System.out.println(res); // 位移运算 // << num * 2^2 不要溢出最高位的1 // >> num / 2^n 不要溢出最低为的1 int a = 8 << 63; System.out.println(a); /* 二进制层面 : &(与): 2: 00000010 7: 00000111 w: 00000010 = 2(10进制) */ byte w = 2 & 7; System.out.println(w); /* |(或): 4: 00000100 8: 00001000 n: 00001100 = 12(10进制) */ byte n = 4 | 8; System.out.println(n); // 类型转换 /* 小转大: byte(num3): 00001000 = 8 short 00000000 00000000 = 0 num4 : 00000000 00001000 = 8 */ byte num3 = 8; short num4 = (short)num3; System.out.println(num4); /* 大转小: short 01110000 00000001 = 30000 byte: 00000000 = 0 num6 : 00000000 00000001 (补码) 00000000 (反码) 11111111 = 127(损失数据,报错) */ /* short(130)0000000 10000010 byte 10000010 (补码) 10000001(补码+1=反码) 11111110(除符号位全部取反=原码) = -126 */ short num5 = 130; byte num6 = (byte)num5; System.out.println(num6); } }