1. 自动类型转换
自动类型转换:类型范围小的变量可以赋值给类型范围大的变量 byte->int
public class java_7_10 {
public static void main(String[] args) {
//自动类型转换
//类型范围小的变量可以赋值给类型范围大的变量 byte->int
byte a = 12;
int b = a;//自动类型转换
System.out.println(a);
System.out.println(b);
int c = 100; // 4字节
double d = c; // 8字节
System.out.println(d);
char m = 'a'; //2字节 'a' AsCII码的值为97
int n = m; // 4字节
System.out.println(n);
}
}
2. 表达式的自动类型转换
public class java_7_10 {
public static void main(String[] args) {
int i = 1;
double j = 2;
long k = 3;
double rs = i + j + k;//类型范围最大的是double双精度浮点类型
System.out.println(rs);
short q = 6;
byte p = 6;
int r = p + q;//short byte char 直接转换为 int 类型参与运算
System.out.println(r);
}
}
3. 强制类型转换
强制类型转换 :数据类型 变量 = (数据类型)变量、数据
public class java_7_10 {
public static void main(String[] args) {
int num = 20;
byte count = (byte)num;
System.out.println(count);
double pre = 99.5;
int sou = (int)pre;
System.out.println(sou); //输出结果为99,丢掉了小数位,保留整数部分
}
}
4. 基本运算符
4.1 算数运算符
注意:'+' 在无法运算的时候就可以做连接词
public class java_7_11 {
public static void main(String[] args){
//算数运算符 + =>加 - => 减 * => 乘 / => 除 % => 取余
int a = 50;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); //整数相除还是整数
System.out.println(a % b); //取余就是将整除后无法整除的余数取出
//'+'可以做连接符,将两个字符串连接起来
//比如:'abc' + 5 = 'abc5'
String num = "abc";
int i = 5;
System.out.println(num + i); // 结果:abc5
//练习'+'做连接符
//总结:能运算先运算,运算不了就连接
int k = 5;
System.out.println(k + "giao");//5 + "giao" = "5giao"
System.out.println(k + 5);//5 + 5 = 10
System.out.println(k + 'a' + "giao");//5 + 97 + "giao" = 102 + "giao" = "102giao"
System.out.println(k + "giao" + 'a');//5 + "giao" + 'a' = "5giaoa"
}
}
4.2 自增自减运算符
注意事项:自增/自减运算符在变量前则先运算再运用,在变量后则先运用再运算
public class java_7_11 {
public static void main(String[] args){
//自增自减运算符 ++ --
//形如2++是错误的,不能对常量进行自增自减操作
int count = 1;
count++;
System.out.println(count);// 2
++count;
System.out.println(count);// 3
count--;
System.out.println(count);// 2
--count;
System.out.println(count);// 1
int sum = count++;
System.out.println(sum);// 1 先用后加
sum = ++count;
System.out.println(sum);// 3 先加后用
}
}
4.3 赋值运算符
public class java_7_11 {
public static void main(String[] args){
//赋值运算符
// += -= *= /= %=
double pre = 12;
int sou = 21;
pre += sou;//pre = (double)pre + sou
System.out.println(pre);//33.0 强制转化为double类型
}
}
4.4 关系运算符
public class java_7_12 {
public static void main(String[] args) {
//关系运算符
boolean tf = 2 >= 3;
System.out.println(tf);// false
}
}
4.5 逻辑运算符
public class java_7_12 {
public static void main(String[] args) {
//逻辑运算符 按位与:& 按位或:| 非:! 按位异或:^
tf = 2 > 3 & 3 < 4;
System.out.println(tf);// false
tf = 2 > 3 | 3 < 4;
System.out.println(tf);// true
tf = !(3 < 4);
System.out.println(tf);// false
tf = 2 > 3 ^ 3 < 4;
System.out.println(tf);// true
int a = 1;
tf = 2 < 4 && a++ > 1;
System.out.println(tf);// false
System.out.println(a);// 2 不论左边是否为真,右边都执
}
}
4.6 三目运算符
首先判断表达式是否为真,为真则执行i++,为假则执行j++
public class java_7_12 {
public static void main(String[] args) {
//三目运算符
int i = 2;
int j = 4;
int count = i > j ? i++ : j++;
//首先判断表达式是否为真,为真则执行i++,为假则执行j++
System.out.println(count);
System.out.println(i);
System.out.println(j);
}
}