[豪の学习笔记] JavaReStudy#03
Published on 2025-02-24 13:18 in 分类: [豪の学习笔记] with 舒旭豪 SchwarzShu

[豪の学习笔记] JavaReStudy#03

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

1 - 算术运算符

运算符 运算 范例 结果
+ 正号 +7 7
- 负号 -11 -11
+ 6+6 12
- 11-9 2
* 6*6 36
/ 6/6 1
% 取模(取余) 11%9 2
++X 先自增后取值 a=2,b=++a a=3,b=3
X++ 先取值后自增 a=2,b=a++ a=3,b=2
--X 先自减后取值 a=2,b=--a a=1,b=1
X-- 先取值后自减 a=2,b=a-- a=1,b=2
+ 字符串相加 "sch"+"warz" "schwarz"

对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分

2 - 关系运算符

运算符 运算 范例 结果
== 相等于 8==7 false
!= 不等于 8!=7 true
< 小于 8 < 7 false
> 大于 8 > 7 true
<= 小于等于 8 <= 7 false
>= 大于等于 8 >= 7 true
instanceof 检查是否是类的对象 “sxh” instanceof String true

3 - 逻辑运算符

a & b 逻辑与:第一个条件为false,后面的条件仍会判断

a && b 短路与:若第一个条件为false则后面的条件不再判断

a | b 逻辑或:不管第一个条件结果如何都要判断第二个条件

a || b 短路或:若第一个条件为true则不会判断第二个条件,结果为true

!a 取反/非运算:若条件本身成立则结果为false

a^b 逻辑异或:当a和b不同时结果为true,否则为false

4 - 赋值运算符

基本赋值运算符 =

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

5 - 三元运算符

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

如果条件表达式为true,则运算结果为表达式1,否则为表达式2

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

public static void main(String[] args){
    int a = 10;
    int b = 99;
    int result = a > b?a++:b--; // 等同于result = b--;
    System.out.println("result = " + result); // 99
    System.out.println("a = " + a); // 10
    System.out.println("b = " + b); // 98
}

6 - 运算符优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序,表中上一行运算符总优先于下一行

只有单目运算符、赋值运算符是从右向左运算的

.  ()  {}  ;  ,
R ---> L ++  --  ~  !(data type)
L ---> R *  /  %
L ---> R +  -
L ---> R <<  >>  >>>  位移
L ---> R <  >  <=  >=  instanceof
L ---> R ==  !=
L ---> R &
L ---> R ^
L ---> R
L ---> R &&
L ---> R
L ---> R ?  :
R ---> L =  *=  /=  %=
+=  -=  <<=  >>=
>>>=  &=  ^=  !=

7 - 标识符的命名规则和规范

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

标识符命名规则

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

②数字不可以开头

③不可以使用关键字和保留字

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

⑤标识符不能包含空格

标识符命名规范

①包名:多单词组成时所有字母都小写

②类名、接口名:多单词组成时,所有单词的首字母大写

③变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写

④常量名:所有字母都大写,多单词时每个单词用下划线连接

8 - 关键字

用于定义数据类型的关键字:

class、interface、enum、byte、short、int、long、float、double、char、boolean、void

用于定义数据类型值的关键字:

true、false、null

用于定义流程控制的关键字:

if、else、switch、case、default、while、do、for、break、continue、return

用于定义访问权限修饰符的关键字:

private、protected、public

用于定义类,函数,变量修饰符的关键字:

abstract、final、static、synchronized

用于定义类与类之间关系的关键字:

extends、implements

用于异常处理的关键字:

try、catch、finally、throw、throws

用于包的关键字:

package、import

其他修饰符关键字:

native、strictfp、transient、volatile、assert

9 - 键盘输入语句

import java.util.Scanner;

public class Input{

    public static void main(String[]args){
        Scanner myScanner = new Scanner(System.in);
        System.out.println("请输入名字");
        String name = myScanner.next(); // 接收用户输入字符串
        System.out.println("请输入年龄");
        int age = myScanner.nextInt(); // 接收用户输入int
        System.out.println("请输入薪水");
        double salary = myScanner.nextDouble(); // 接收用户输入double
        System.out.println("用户信息如下:");
        System.out.println(name + " " + age + " " + salary);
    }
}

10 - 进制相关

对于整数,有四种表示方式:    二进制:0/1,满2进1,以0b或0B开头    十进制:0~9,满10进1    八进制:0~7,满8进1,以数字0开头表示    十六进制:09及A(10)F(15),满16进1,以 0x或0X开头表示,此处的 A-F 不区分大小写

十进制转换成二进制

将该数不断除以2直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制

十进制转换成八进制

将该数不断除以8直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制

十进制转换成十六进制

将该数不断除以16直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制

11 - 原码、反码、补码

二进制的最高位是符号位,0表示正数,1表示负数

正数的原码反码补码都一样

负数的反码 = 它的原码符号位不变,其他位取反

负数的补码 = 它的反码 + 1

0的反码补码都是0

Java没有无符号数,即Java中的数都是有符号的

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

当我们看运算结果的时候,要看它的原码

12 - 位运算符

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

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

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

按位取反~:0--->1,1--->0

算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位

算术左移<<:符号位不变,低位补0

逻辑右移/无符号右移>>>:低位溢出,高位补0

posted @   SchwarzShu  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示