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);
}
}