• Java学习笔记(三)——运算符


    一、算数运算符

    二、关系运算符(比较运算符)

    三、逻辑运算符

    (一)&&和&

    (二)||和|

    四、赋值运算符

    五、三元运算符

    六、位运算符

    (一)进制

    (二)位运算符

    七、运算符优先级

    八、标识符的命名规则和规范

    (一)命名规则(必须遵守)

    (二)命名规范

    (三)关键字

    (四)保留字

    九、键盘输入语句

    一、算数运算符

    算数运算是对数值类型的变量进行运算的,在Java程序中使用的非常多。

     %的本质:a % b = a - (int)a / b * b

    有小数的运算,得到的结果是近似值

    自增++

    作为独立语句使用:i++和++i都完全等价于i=i+1

    作为表达式使用:i++先赋值后自增,++i先自增后赋值

    自减--同理

     JVM 在处理i=i++ 时 , 会建立一个临时变量来接收 i++ 的值 , 然后返回这个临时变量的值 , 返回的值再被等号左边的变量接收。

    二、关系运算符(比较运算符)

    1、关系运算符的结果都是boolean型,也就是要么是true,要么是false。

    2、关系运算符组成的表达式称为关系表达式,关系表达式经常用在if结构的条件中或者循环结构的条件中。

    三、逻辑运算符

    用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值。

    短路与&&         短路或||         取反(非运算)!

    逻辑与&            逻辑或|          逻辑异或^

     运算规则:

    1、a&b:当a和b同时为true,则结果为true,否则为false

    2、a&&b:当a和b同时为true,则结果为true,否则为false

    3、a|b:当a和b有一个为true,则结果为true,否则为false

    4、a||b:当a和b有一个为true,则结果为true,否则为false

    5、!a:当a为true,则结果为false,当a为false,则结果为true

    6、a^b:当a和b不同时,则结果为true,否则为false

    (一)&&和&

    1、&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高

    2、&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低

    3、开发中,使用的基本是短路与&&

    (二)||和|

    1、||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高

    2、|逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低

    3、开发中,使用的基本是短路或||

    四、赋值运算符

    赋值运算符就是将某个运算后的值,赋给指定的变量。

    分类:

    1、基本赋值运算符 =

    2、复合赋值运算符 +=    -=    *=     /=    %=

    特点:

    1、运算顺序从右到左

    2、赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值

    3、复合赋值运算符等价于下面效果:a+=3;等价于a=a+3;

    4、复合赋值运算符会进行类型转换

    五、三元运算符

    条件表达式?表达式1:表达式2;

    1、如果条件表达式为true,运算后的结果是表达式1

    2、如果条件表达式为false,运算后的结果是表达式2

    细节:

    1、表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)

    2、三元运算符可以转成if-else语句 

    三个数中的最大值:

    六、位运算符

    (一)进制

    对于整数,有四种表示方式

    1、二进制:0-1,满2进1,以0b或0B开头

    2、十进制:0-9,满10进1

    3、八进制:0-7,满8进1,以数字0开头表示

    4、十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写

    1、java没有无符号数,换言之,java中的数都是有符号的

    2、在计算机运算的时候,都是以补码的方式来运算的

    3、当在看运算结果的时候,要看它的原码

    (二)位运算符

    1、按位与&:两位全为1,结果为1,否则为0

    2、按位或|:两位有一个为1,结果为1,否则为0

    3、按位异或:两位一个为0一个为1,结果为1,否则为0

    4、按位取反~:0 -> 1   1->0

    5、算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位 (每右移一位相当于/2)

    6、算术左移<<:符号位不变,低位补0 (每左移一位相当于*2)

    7、逻辑右移>>>:也叫无符号右移,低位溢出,高位补0

    8、没有<<<

    七、运算符优先级

    1、()、{}等

    2、单目运算符

    3、算术运算符

    4、位移运算符

    5、比较运算符

    6、逻辑运算符

    7、三元运算符

    8、赋值运算符

    八、标识符的命名规则和规范

    1、Java对各种变量、方法和类等命名时使用的字符序列称为标识符

    2、凡是自己可以起名字的地方都叫标识符

    (一)命名规则(必须遵守)

    1、由26个英文字母大小写、0-9、_或$组成

    2、数字不可以开头

    3、不可以使用关键字和保留字,但能包含关键字和保留字

    4、Java中严格区分大小写,长度无限制

    5、标识符不能包含空格

    (二)命名规范

    1、包名:多单词组成时,所有字母都小写:aaa.bbb.ccc

    2、类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz(大驼峰)

    3、变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz(小驼峰,简称驼峰法)

    4、常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

    (三)关键字

    定义:被Java语言赋予了特殊含义,用作专门用途的字符串

    特点:关键字中所有字母都为小写

    (四)保留字

     现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。

    byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const

    九、键盘输入语句

    需要一个扫描器(对象),就是Scanner

    步骤:

    1、导入该类所在的包,java.util.*

    2、创建该类的对象(声明变量)

    3、调用里面的功能

    1. import java.util.Scanner; //表示把java.util下的Scanner类导入
    2. public class Input{
    3. public static void main(String[] args){
    4. Scanner myScanner = new Scanner(System.in);
    5. System.out.print("请输入名字:");
    6. String name = myScanner.next(); //接收用户输入字符串
    7. System.out.print("请输入年龄:");
    8. int age = myScanner.nextInt(); //接收用户输入int
    9. System.out.print("请输入薪水:");
    10. double salary = myScanner.nextDouble(); //接收用户输入double
    11. System.out.println("人的信息如下:");
    12. System.out.println("名字:" + name + " 年龄:" + age + " 薪水:" + salary);
    13. }
    14. }

  • 相关阅读:
    opencv-python 印刷质量缺陷的视觉检测
    Gunicorn ImportError: cannot import name ‘ALREADY_HANDLED‘ from ‘eventlet.wsgi‘
    虚拟人三维动画宣传片案例分享 | 广州“五羊”城市文化IP商业体裸眼3D广告影片
    C/C++运算优先级
    贪心 Leetcode 135 分发糖果
    Minimum Snap轨迹规划详解(3)闭式求解
    VS Code插件 — Settings Sync : 设置和同步用户配置
    【Android笔记49】Android中几种常见的数据适配器的使用(ArrayAdapter、BaseAdapter、SimpleAdapter)
    Charles的功能操作
    Mysql - InnoDB引擎
  • 原文地址:https://blog.csdn.net/weixin_45827876/article/details/133768336