学习笔记,仅供参考


文章目录

  • JAVA基础语法
    • 运算符
      • 逻辑运算符
        • 逻辑运算符&&和&的区别
        • 逻辑运算符||与|的区别
      • 位运算符
        • &, |, ^, ~ 的用法
        • 位异或运算符的特点
        • >>, >>>, <<的用法
      • 三元运算符

JAVA基础语法

运算符

逻辑运算符

&, |, ^, !
&&, ||
  • 举个例子
class OperatorTest7 {public static void main(String[] args) {int x = 10;int y = 20;int z = 30;System.out.println(x < y & y < z);System.out.println(x < y & y > z);System.out.println(x > y & y < z);System.out.println(x > y & y > z);System.out.println("--------------");System.out.println(x < y | y < z);System.out.println(x < y | y > z);System.out.println(x > y | y < z);System.out.println(x > y | y > z);System.out.println("--------------");System.out.println(x < y ^ y < z);System.out.println(x < y ^ y > z);System.out.println(x > y ^ y < z);System.out.println(x > y ^ y > z);System.out.println("--------------");System.out.println(!true);System.out.println(!!true);}
}

输出:

true
false
false
false
--------------
true
true
true
false
--------------
false
true
true
false
--------------
false
true
逻辑运算符&&和&的区别
  • 举个例子1
class OperatorTest7 {public static void main(String[] args) {int x = 10;int y = 20;int z = 30;System.out.println(x < y & y < z);System.out.println(x < y & y > z);System.out.println(x > y & y < z);System.out.println(x > y & y > z);System.out.println("--------------");System.out.println(x < y && y < z);System.out.println(x < y && y > z);System.out.println(x > y && y < z);System.out.println(x > y && y > z);}
}

输出:

true
false
false
false
--------------
true
false
false
false

我们看到&&和&输出的结果都是一样的,那它俩究竟有啥区别呢?

&&具有短路效果,若左边是false,则右边不执行;而&是无论左边是false还是true,右边都会执行。

  • 举个例子2
class OperatorTest8 {public static void main(String[] args) {int x = 3;int y = 4;int a = 10;int b = 20;System.out.println((++x == 3) & (++y == 4));System.out.println((++a == 10) && (++b == 20));System.out.println("x = " + x + ", y = " + y);System.out.println("a = " + a + ", b = " + b);}
}

输出:

false
false
x = 4, y = 5
a = 11, b = 20
逻辑运算符||与|的区别

同样,||与|最终得到的结果也是一样的,但||也具有短路效果,若左边为true,则右边不执行;而|是无论左边是true还false,右边都会执行。

  • 举个例子
class OperatorTest8 {public static void main(String[] args) {int x = 3;int y = 4;int a = 10;int b = 20;System.out.println((++x == 4) | (++y == 5));System.out.println((++a == 11) || (++b == 21));System.out.println("x = " + x + ", y = " + y);System.out.println("a = " + a + ", b = " + b);}
}

输出:

true
true
x = 4, y = 5
a = 11, b = 20

位运算符

&, |, ^, ~ , >>, >>>, <<, <<<
&, |, ^, ~ 的用法

&: 有0则0
|: 有1则1
^: 相同则0,不同则1
~: 按位取反

  • 举个例子
class OperatorTest9 {public static void main(String[] args) {System.out.println(6 & 3);System.out.println(6 | 3);System.out.println(6 ^ 3);System.out.println(~6);}
}

输出:

2
7
5
-7

结果解释:

6 & 3可表示为:
00000110
00000011
---------&--
00000010
位运算结果为26 | 3可表示为:
00000110
00000011
---------|--
00000111
位运算结果为76 ^ 3可表示为:
00000110
00000011
---------^--
00000101
位运算结果为5~6可表示为:
00000000 00000000 00000000 00000110
---------~--
11111111 11111111 11111111 11111001
//这是补码,正数的补码是自己本身,而负数则不是
则它的反码为:
11111111 11111111 11111111 11111000
原码:
00000000 00000000 00000000 10000111
位运算结果为-7
位异或运算符的特点

^的特点:一个数据对另一个数据位异或两次,该数本身不变。

  • 举个例子
class OperatorTest9 {public static void main(String[] args) {System.out.println(5 ^ 10 ^ 10);System.out.println(5 ^ 10 ^ 5);}
}

输出:

5
10
>>, >>>, <<的用法

<<:左移,左边最高位丢弃,右边补齐0

>>:右移,最高位是0,左边补齐0; 最高为是1,左边补齐1

>>>:无符号右移,无论最高位是0还是1,左边补齐0

  • 举个例子
class OperatorTest9 {public static void main(String[] args) {System.out.println(12 << 1);System.out.println(12 << 2);System.out.println(12 >> 1);System.out.println(12 >> 2);}
}

输出:

24
48
6
3

三元运算符

  • 三元运算符的格式
(关系表达式) ? 表达式1 : 表达式2;

关系表达式返回的不是True就是False,若关系表达式返回的是True就返回表达式1的值,若关系表达式返回的是False就返回表达式2的值.

  • 举个例子1
class OperatorTest10 {public static void main(String[] args) {int x = 10;int y = 5;int z;z = (x > y) ? x : y;System.out.println("z = " + z);}
}

输出:

z = 10
  • 举个例子2

比较3个整数,得到其中的最大值

class OperatorTest10 {public static void main(String[] args) {int x = 10;int y = 5;int z = 15;int temp = (x > y) ? x : y;int max = (temp > z) ? temp : z; System.out.println("max = " + max);}
}

输出:

max = 15

第三次学JAVA再学不好就吃翔(part8)--基础语法之运算符相关推荐

  1. 第三次学JAVA再学不好就吃翔(part7)--基础语法之运算符

    学习笔记,仅供参考 文章目录 JAVA基础语法 运算符 算数运算符 算术运算符 ++和-- 赋值运算符 关系运算符 JAVA基础语法 运算符 什么是运算符 就是对常量和变量进行操作的符号. 运算符的分 ...

  2. 第三次学JAVA再学不好就吃翔(part107)--字符流的拷贝

    学习笔记,仅供参考,有错必纠 文章目录 IO流 字符流的拷贝 拷贝纯文本文件 注意事项 自定义字符数组的拷贝 IO流 字符流的拷贝 拷贝纯文本文件 zzz.txt: 安徽财经大学 JAVA代码: pa ...

  3. 第三次学JAVA再学不好就吃翔(part14)--基础语法之循环语句注意事项

    学习笔记,仅供参考 文章目录 JAVA基础语法 for, while, do...while的区别 死循环 循环嵌套 JAVA基础语法 for, while, do-while的区别 do-while ...

  4. 第三次学JAVA再学不好就吃翔(part5)--基础语法之数据类型转换

    学习笔记,仅供参考 文章目录 JAVA基础语法 数据类型转换之隐式转换 数据类型转换之强制转换 JAVA基础语法 数据类型转换之隐式转换 byte类型转换为int类型 class TypeConver ...

  5. 第三次学JAVA再学不好就吃翔(part19)--二维数组

    学习笔记,仅供参考 文章目录 JAVA基础语法 二维数组 二维数组的格式 二维数组的遍历 二维数组的求和 基本数据类型和引用数据类型的参数传递问题 JAVA基础语法 二维数组 二维数组的格式 格式1 ...

  6. 第三次学JAVA再学不好就吃翔(part18)--数组操作

    学习笔记,仅供参考 文章目录 JAVA基础语法 数组操作 索引越界 空指针异常 遍历 获取数组中最大值 反转 根据元素找索引 JAVA基础语法 数组操作 索引越界 我们先看下面这段代码: class ...

  7. 第三次学JAVA再学不好就吃翔(part17)--数组

    学习笔记,仅供参考 文章目录 JAVA基础语法 数组概述 数组的初始化 内存分配 绘制内存图 JAVA基础语法 数组概述 数组概念 数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器.数组既 ...

  8. 第三次学JAVA再学不好就吃翔(part16)--方法及方法重载

    学习笔记,仅供参考 文章目录 JAVA基础语法 方法概述 方法重载 JAVA基础语法 方法概述 为什么要有方法 为了提高代码的复用性 什么是方法 完成特定功能的代码块. 方法的格式 修饰符 返回值类型 ...

  9. 第三次学JAVA再学不好就吃翔(part15)--基础语法之控制跳转语句

    学习笔记,仅供参考 文章目录 JAVA基础语法 break语句 continue语句 标号 return语句 JAVA基础语法 break语句 应用场景 只能在switch和循环中使用 举个例子 cl ...

最新文章

  1. Core禁用BIP70或只为制造闪电网络硬需求
  2. 马哥运维架构 第一周作业
  3. 大页(Huge Page)简单介绍
  4. 中缀表达式生成二叉树
  5. Spring简洁总结
  6. bootstrap 居中 表格中_使用Twitter Bootstrap在表格单元格中垂直居中
  7. (计算机组成原理)第一章计算机系统概述-第三节:计算机层次结构
  8. 多目标跟踪新范式:CenterTrack
  9. 用ifconfig命令,只有lo,没有eth0的解决方案
  10. 全球最大同性交友网站 GitHub 10 岁了!
  11. 信息资源管理——基础
  12. Promise及其应用
  13. C语言的转义字符,八进制
  14. xilinx Edition arm M3 使用笔记
  15. Nette框架:第一印象
  16. 详细的介绍sigmoid函数
  17. CAD版本转换,手机该如何转换操作呢?
  18. 练习题(困难) 百慕大三角 POJ1069
  19. springboot 图片映射404问题
  20. 应我校园0.8.3上线

热门文章

  1. Ext 入门 (05) 打印+gridpanel()方法
  2. MySql 的一些使用小技巧
  3. Windows下的bat原来可以为我们做很多
  4. Beginning SDL 2.0(4) YUV加载及渲染
  5. PON的技术优势及前景应用
  6. 从零写一个编译器(一):输入系统和词法分析
  7. 【转】python装饰器
  8. 有关 MyEclipse-export runnable jar file选项 launch configuration里面没有可以选择的东西的解决方法...
  9. 第十七篇 计算机组成原理
  10. 【剑指offer】二叉树的深度_solution2