JAVA第三课

JAVA第三课

一、int转成string
1.直接用+(最简单的方法)
对于+来说,具体操作于两侧操作数的类型相关,如果都是数字则为简单的数字相加,如果有一侧是string,则执行字符串拼接
2.string ret = string.valueof(num)
二、string转成int

string str = "100";
int num = Integer.parseInt(str);
system.out.println(num);

三、%求余
C中%只能针对整数,不能针对小数,Java中%也可以针对小数
eg:

 int num = 11;
      if(num%2==1{
      system.out.println("偶数");
}else{
      system.out.println("奇数");
}

这样写是不对的,因为如果给num附一个负值,出来的结果与1不相等,则会输出偶数
四、++/-- 自增/自减运算
1.前置++和后置++的区别主要在于取表达式的返回值,如果不取返回值,两个是一样的等价效果
2.++a表达式返回自增之后的值
a++表达式返回自增之前的值
3.如果把++操作看成一个函数,则可以写出以下伪代码
①前置++

int  num){
        num += 1;
        return num;
}

②后置++

int num){
      int tmp = num;
      num += 1;
      return tmp;
}

4.感觉上前置++的运行效率比后置++更高一点,实际上不是,因为编译器会对代码进行优化
5.如果是C++里面,由于C++支持"运算符重载",被++的操作数可能是一个复杂的类,这个时候编译器就不好优化, C++中的前置自增确实可能比后置自增效率更高.
C++程序猿代码里都是写成+ +a这样的写法.
Java中还是主要写成a++这种
6.intret=(++a) + (++a)这么写 100%是一个错误代码!!
这个代码的运行结果是"未定义行为",表达式的求值顺序是不固定的.
7.如果在一个表达式中, 针对同一个变量进行多次修改,运行结果是未定义行为.
8.前置++和后置++对于初学者来说,还是比较容易混淆的.Python中直接废弃了++运算;Go废弃了前置++ ,同时要求后置++不能进行取返回值.
五、
1.关系运算符**== != <= >= > <**
Java中,关系运算表达式返回值结果是一个boolean类型(即真为ture,假为false)
2.逻辑运算符**&& || !**
&&和||的注意事项:短路求值.
①对于逻辑与运算来说,如果左侧表达式为false,右侧表达式不再求值.
②对于逻辑或运算来说,如果左侧表达式为true,右侧表达式不再求值.
对于大部分编程语言,都支持短路求值.
3.&& ||都只能针对boolean类型进行运算.
4. **&**逻辑与
逻辑或
这一组也能表示逻辑与和逻辑或,但是不能支持短路求值
只能针对boolean类型运算
&还能表示按位与
|还能表示按位或
只能针对整数运算
5.先把数据理解成二进制,然后再针对对应的bit位进行运算
对于按位&来说,只有两个数字都是1,结果才是1,否则就是0
对于按位|来说,只有两个数字都是0,结果才是0,否则就是1
6.!逻辑取反针对boolean来运算.
true => false, false => true
~按位取反,针对整数.0=>1 ,1=>0
7.
^按位异或
如果两个对应的bit位,相同,结果就是0, 相异,结果就是1
特点: a ^ 0 => a
a ^ b ^ b => a
8.
<<和C语言-样
最左侧的位就被干掉了,最右侧补0,左移1位相当于*2
>>算术右移
最右侧的位就不要了,最左侧补符号位,右移1位相当于/2
负数/2=>负数
>>>逻辑右移
最右侧的位不要了,最左侧补0
9.
?:

cond ? exp1 : exp2

如果cond为true,整个表达式的返回值就是exp1 的值,如果cond为false,整个表达式的值就是exp2的值
?:运算优先级较低
10.关键字就是一组有特定含义的单词, 这些关键字往往不能作为变量名或者方法名或者类名
11.异常是一种运行错误.一种比较严重的错误一旦出现了,代码就无法继续执行了.
抛出异常一般都是运行时的错误(Exception)与编译错误不一样
运行错误概念要更广一些. 有些代码虽然没有出异常,但是结果不符合预期,这种也算运行错误.
11.算术运算符**+ - / * %**
12.赋值运算符**=**

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值