2021-01-08

3 篇文章 0 订阅
2 篇文章 0 订阅

Java学习(三)之变量



一、int 和 string 之间的转换

1. int 转string

方法1:用 “+” 将两者相加

        String str = "hello";
        int num = 10;
        String ret = str + num;
        System.out.println(ret);

运行结果如下:
在这里插入图片描述

  • 对于“+”的结果,由两侧操作数的类型所决定,即:若两侧都是数字,则会进行简单的四则运算;若有String,则会执行字符串拼接。

        String str = "hello";
        int num1 = 10;
        int num2 = 20;
        String ret1 = str + num1 + num2;
        System.out.println(ret1);

        String ret2 = str + (num1 + num2);
        System.out.println(ret2);

运行结果如下:
在这里插入图片描述
方法2:String.valueof()

        int num = 10;
        String ret1 = String.valueOf(num);
        String ret2 = "" + num;
        System.out.println(ret1);
        System.out.println(ret2);
    //ret1 和 ret2 等价

运行结果如下:
在这里插入图片描述

2.string 转 int

使用Integer.parseInt()

        String str = "100";
        int num = Integer.parseInt(str);
        System.out.println(num);

运行结果如下:
在这里插入图片描述

  • 其中,Interger是包装类,包装类(Long,Short,Byte…)有内置类型和其一一对应。

  • parse:解析

  • String中的字符串必须是int类型,否则会在运行时出错

在这里插入图片描述

  • 抛出异常,运行过程中出现。

  • Tips:编译 & 运行

  • 编译:Javac Test.java => Test.class

  • 运行:java Test => JVM 加载。class文件且执行

小结:其他类型和String之间的转换操作类似

        //long 转 String
        long num1 = 10;
        String str1 = "num = ";
        System.out.println(str1 + num1);

        //String 转 long
        String str2 = "100";
        long num2 = Long.parseLong(str2);
        System.out.println("str2 = " + num2);

运行结果如下:
在这里插入图片描述

二、打印输出

  • System.out.println(msg); // 输出一个字符串, 带换行

  • System.out.print(msg); // 输出一个字符串, 不带换行

  • System.out.printf(format, msg); // 格式化输出

  • System.out.format(format, msg); // 完全等同于 printf

三、运算符

1. 赋值运算符

“=”

2. 算数运算符

  • “+” 加
  • “-” 减
  • “*” 乘
  • “/” 除
  • “%” 求余

Tips1:求余注意正负号:求余先不看符号,求完之后再添加符号

在这里插入图片描述

Tips2:C语言中%只能针对整数求余,不能对小数求余;Java中两者皆可。

在这里插入图片描述

Tips3:0不能做除数

在这里插入图片描述

3. 增量赋值运算符

 **“+=”,“-=”,“*=”,“/=”,“%=”**

例如:
在这里插入图片描述在这里插入图片描述

4. 自增/自减运算符

  **++ / --**
  • 前置++

  • 后置++

  • Tips:前置++和后置++两者的区别主要在于取表达式的返回值,若不取返回值,效果一样。

  • 不取返回值时:
    在这里插入图片描述
    在这里插入图片描述

  • 取返回值时:前置++返回自增后的结果
    在这里插入图片描述

前置++等价于伪代码

        int(num) {
            num += 1;
            return num;
        }
  • 后置++返回自增前的结果
    在这里插入图片描述
    后置++等价于伪代码
        int(num) {
            int tmp = num;
            num += 1;
            return tmp;
        }

小结:

  • 编译器对前置++和后置++进行优化,二者实际执行时的效率几乎没有差异。

  • 由于C++支持"运算符重载",被++的操作数可能四一个复杂的类,故编译器优化效率低,此时前置++效率高于后置++,而在Java中常用后置++。

  • 类似于 int ret = (++a) + (++a) 这种代码的运算结果四未定义的。因为不同的编译器对其表达式的求值顺序是不同的。

    5.关系运算符:

      == 	!=		<   	>    <=     >=
    
  • Tips:java中,关系运算表达式返回值结果四一个boolean类型,无法与整数之间进行运算

在这里插入图片描述

四、逻辑运算符

     &&       ||        !
  • 逻辑运算,操作数必须是 boolean 类型

  • 返回值也是 boolean 类型

  • &&:一假则假

在这里插入图片描述

  • ||:一真则真

在这里插入图片描述

  • Tips:对于 && 和 || 最大的实际应用是短路输出,即:

  • 逻辑与左侧为假时,右侧不在求值;

  • 逻辑或运算,左侧为真时,右侧不在求值。

  • 对于大部分编程语言,都支持短路求值。

在这里插入图片描述
在这里插入图片描述

  • 短路生效

  • 逻辑取反(!)也只针对boolean类型

在这里插入图片描述

  • Tips: & 和 | 也表示逻辑与和逻辑或,但是不支持短路求值。常对整数用于按位与,按位或。

在这里插入图片描述

  • & 和 | 常对整数用于按位与,按位或。

  • & :与 0 则 0

  • | :与 1 则 1

在这里插入图片描述

五、位运算符

      ~      ^
  • !:逻辑取反,只针对boolean类型;即:true => false;false => true.

  • ~ 是按位取反,针对整数;0 => 1; 1 => 0.

在这里插入图片描述

  • %x 表示按照十六进制输出

  • ^ 异或操作符:对应bit位,相同为0,相异为1.

  • a ^ 0 = a;

  • a ^ b ^ b = a;

  • 不使用临时变量交换两个数

在这里插入图片描述
在这里插入图片描述

  • 上述两种方法可读性差,不适合在工作中使用。只是面试考试。

六、移位运算符

      <<              >>               >>>    
  • 左移 << ,最左侧位丢失,最右侧补0;左移一位相当于 * 2.

  • 算数右移:>> ,最右侧抛弃,最左侧补符号位;右移一位,相当于 / 2.

  • 逻辑右移:>>> ,最右侧怕抛弃,最左侧补0.

在这里插入图片描述

七、条件运算符

      cond ? exp1 : exp2              
  • 如果cond 为 true,返回exp1

  • 如果cond 为false,返回exp2

  • 条件运算符优先级比较低

八、注释

  • 单行注释:// 注释内容(用的最多)

  • 多行注释:/* 注释内容*/(因无法嵌套使用故不推荐)

  • 文档注释: /** 文档注释 */ 主要用于搭配一些自动生成工具,生成代码的文档信息

九、思维导图

在这里插入图片描述


总结

- >运算符大部分和C语言中的类似,只需要平时注重练习即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值