Java基础之运算符
// 运算符和表达式 // 变量 使用 运算符链接就是表达式 /* * 运算符 * + - * / % ++ -- 同python基本一样 但是 如果 是整数 不会得到一个浮点 * byte short char 在运算的时候会被自动提高到 int 类型,char类型和int类型的映射关系为 ascii unicode表 * 右侧的数据类型可以小于左侧,但是不能超过左侧的数据范围 没有超过的话隐式强转成左侧的 * + 运算在字符串上是拼接 这点和python 是一样的 * 优先级别 String + int 会int直接转成字符串 这一点和python是不一样的 * * * ++ -- 自增 自减 ++num num++ --num num-- * 1 单独使用 不和其他任何操作混合 自己独立成为一步骤 * 2 混合使用 和其他操作混合 例如和赋值混合 * 3 区别 : * 单独使用 ++num num++ 没区别 * 混合使用 : * a ++num 那么变量立马+1 然乎拿着结果进行使用 先加后用 * b num++ 那么首先使用本变量 然乎再让变量+1 先用后加 * * 赋值运算符 * 基本 同python * 复合 += -= *= %= /= 同python一样 * int a=33; * a/=6 a=a/6 * a%=6 a=a%6 * * 比较运算符 * == <> <= >= != 同python一致 * * 逻辑运算符 * && 与 单个& 在python中用于集合取交集 并且python中的与是and * || 或 python中是or * ! 非 python 中的not * 且 & | 用于字符串 则实际转化为二进制 * & 若 相同位置 都为1 则为1 否则为0 * | 若 相同位置 有一个为1 则为1 都则为0 * * && || 具备短路效果 python中同样 * * 三元运算符 * python a if a>b else b * java a>b?a:b * 同时要注意 如果三元运算符 赋值给左侧变量 注意 返回值需要同左侧变量数据类型一致 * 并且返回结果要被使用 哪怕是用在打印语句中 * * */ public class OperatorAndExpress { public static void main(String[] args) { testInt(); testSelfAdd(); testBoolean(); System.out.println(threeOperator()); testPrivate(); testShort(); } public static void testInt() { // 整数运算 如果出现带浮点的情况 下 会取整数位 其实就是拿到的商 int a = 1234; float b = 1234; System.out.println(a / 1000 / 1000); // 直接得到0 System.out.println(b / 1000); // 优先级 String str1 = "Java"; System.out.println(str1 + 10 + 20); // Java1020 整数强转字符 System.out.println(str1 + (10 + 20)); // Java30 小括号优先级高 } public static void testSelfAdd() { // 独立使用 int num = 10; System.out.println(num); ++num; System.out.println(num); num++; System.out.println(num); // 混合使用 // 先加后用 int num2 = 20; System.out.println(++num2); System.out.println(num2); // 先用后加 int num3 = 30; System.out.println(num3++); System.out.println(num3); } public static void testBoolean() { System.out.println(!true); } public static int threeOperator() { int a = 1; int b = 2; int c = a > b ? a + 1 : b - 1; return c; } private static void testPrivate(){ System.out.println("in test testPrivate"); } public static void testShort(){ short a =5; short b =8; // short c =a+b; a b 都是int 所以c应该是int类型 int c = a + b; System.out.println(c); } }