首页 > 编程语言 >JAVA学习笔记--运算符

JAVA学习笔记--运算符

时间:2024-03-05 10:47:16浏览次数:14  
标签:JAVA -- System 运算符 int println public out

运算符

注意:()的优先级最高,因此可以多打一些()提高代码的可读性!!

算术运算符:

+、-、*、/、%(模:取余)、++(自增)、--(自减)

public class Demo1 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);//10除20=0.5,但a,b均为int型,因此结果为0
        System.out.println(a / (double)b);//将其中一个强制转为double型即可得出正确答案
        System.out.println(b % a);//b对a取余数
    }
}

注意类型转换问题:

public class Demo1 {
    public static void main(String[] args) {
        long a = 123456789L;
        int b = 145;
        short c = 15;
        byte d = 5;
        //a为long型,因此输出long类型的数值,若a为double型则输出double型数值
        System.out.println(a+b+c+d);//输出123456954
        System.out.println(b+c+d);//输出int型,165
        System.out.println(c+d);//输出int型,20

自增、自减

public class Demo1 {
    public static void main(String[] args) {
        int a = 1;
        int b = a++;//b=a=1,a=a+1=2(先赋值后自增)
        int c = ++a;//a=a+1=2+1=3,c=a=3(先自增后赋值)
        System.out.println(a);//输出3
        System.out.println(b);//输出1
        System.out.println(c);//输出3
    }
}

赋值运算符:

//=并不表示等于,等于是==
a = b;//将b的值赋值给a
a == b;//表示a等于b

关系运算符

>、<、>=、<=、==、!=(不等于)、instanceof

注意:关系运算符返回的结果是一个布尔值,ture或false

public class Demo1 {
    public static void main(String[] args) {
       int a = 10;
       int b = 20;
       System.out.println(a>b);//返回false
       System.out.println(a<b);//返回true
       System.out.println(a==b);//返回false
       System.out.println(a!=b);//返回true
    }
}

逻辑运算符

&&(与)、||(或)、!(非)

public class Demo1 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:"+(a&&b));//逻辑&&(与):两个变量为真则为真
        System.out.println("a || b:"+(a||b));//逻辑||(或):一个变量为真则为真
        System.out.println("!b:"+(!b));//逻辑非(!):若为真结果则为假,若为假结果则为真
    }
}

运行结果如下:

注意:短路运算:在&&运算中,若前面的表达式为false,则后面的表达式不会执行

public class Demo1 {
    public static void main(String[] args) {
         int a = 1;
         boolean b = (a>3)&&(a++>3);//a>3为假,短路运算原则:后面的表达式不执行
         System.out.println(b);//输出false
         System.out.println(a);//输出1,a还是为1
    }
}

位运算符(注意笔试/面试)

与二进制关:&(与)、|(或)、^(异或)、~(取反)、>>(右移)、<<(左移)、>>>(了解即可)

&、|、^、~:

A  =  1100 0110
B  =  0011 1100
--------------------------------------------
A&B = 0000 0100 (与&:两个1则为1,其余为0)
A|B = 1111 1110 (或|:两个0则为0,其余为1)
A^B = 1111 1010 (异或^:两个相同则为0,不同则为1)
~A  = 0011 1001 (取反~:若是1则为0,若是0则为1)

<<、>>:效率极高!!

public class Demo1 {
    public static void main(String[] args) {
        int a = 2;
        int b =(a<<3);//2<<3 = 2*2*2*2(2左移3位)
        System.out.println(b);//输出16
        
        /*
        2*8=16 //2*2*2*2=16(2的4次方)
        << : *2
        >> : /2
        ----------------------------
        //二进制移位,1向左移动一位等于*2
        0000 0001:1
        0000 0010:2
        0000 0100:4
        0000 1000:8
        0001 0000:16 (2左移3位)
         */
    }
}

条件运算符(三目运算符)

表达式1 ?表达式 2 :表达式 3

如果表达式1正确则输出表达式2,否则输出表达式3

int c = 10;
int d = 20;
//如果c等于d则e=c,若不等于则e=c+d
int e =(c==d) ? c :c + d;
System.out.println(e);//输出结果为30

扩展赋值运算符

+=、-=、*=、/=

例如:a+=b意为a=a+b

int c = 10;
int d = 20;
c += d;//c=c+d
System.out.println(c);//输出30

字符串连接符:+ (面试考题)

public class Demo1 {
    public static void main(String[] args) {
        //字符串连接符'+':若一方为String类型,则会将另一方转为String类再进行拼接
        int a = 10;
        int b = 20;
        System.out.println(""+a+b);//输出1020
        System.out.println(a+b+"");//输出30,因为String类型在后面,所以前面的a+b会先运算再进行拼接
    }
}

标签:JAVA,--,System,运算符,int,println,public,out
From: https://www.cnblogs.com/dxrrrr/p/18053463

相关文章

  • 神舟通用数据库安装(交互方式)
    环境:OS:Centos7DB:V71.介质下载地址http://www.shentongdata.com/old_bak/iso/wzsyx/ShenTong7.0_linux64.rar 2.安装rar[root@localhostsoft]#tar-xvfrarlinux-x64-5.3.0.tar.gz[root@localhostsoft]#cdrar[root@localhostrar]#makeinstall3.解压数据库安装包[r......
  • JavaScript逆向之md5算法
    md5算法md5算法简介:md5算法是一种摘要算法,主要用来进行数字签名、文档一致性验证等。python实现md5点击查看代码fromhashlibimportmd5s="123456"obj=md5()#把你要计算的字节丢进去obj.update(s.encode("utf-8"))md5_value=obj.hexdigest()print(md5_value......
  • 函数提升和变量提升
    1:函数提升优先级高于变量提升,且不会被同名变量声明时覆盖,但是会被同名变量赋值后覆盖,注意看赋值和打印的位置JavaScript中的函数是一等公民,函数声明的优先级最高,会被提升至当前作用域最顶端。如果前面的函数表达式与之前的函数声明同名,后者会将其覆盖。console.log(a)//ƒa......
  • X-Forwarded-For和X-Real-IP的区别 都可以获取真实IP
    X-Forwarded-For和X-Real-IP都是HTTP请求头字段,用于在通过代理或负载均衡器转发请求时,保留原始请求的客户端IP地址信息。但是,它们之间存在一些区别:用途和含义:X-Forwarded-For:这是一个标准的HTTP请求头字段,用于记录代理链中的每个代理服务器的IP地址。每当请求经过一个代理服......
  • 06、HSMS协议介绍
    本章的内容主要参考了SECS半导体设备通讯-2HSMS通信标准,外加上自己看的一些其他的文档。也加上了一些自己的理解,特此记录。若有侵权,请联系删除,谢谢。再次特别感谢SECS半导体设备通讯-2HSMS通信标准的作者。1、HSMS通信标准概述HSMS定义了使用TCP/IP作为物理传输媒......
  • python元类
    python元类classCar(object):def__init__(self,name):print('init')self.name=namedef__new__(cls,*args,**kwargs):print('new')returnsuper().__new__(cls)obj=Car('雪佛兰')#输......
  • dpkg安装mysql时失败卸载不掉踩的坑
    原文:https://blog.csdn.net/Camu7s/article/details/43485985nbuntu下彻底卸载mysql:apt-getautoremove--purgemysql-serverapt-getremovemysql-serverapt-getremovemysql-clientapt-getremovemysql-common最后清楚残留数据(important!!!):dpkg-l|grep^rc|awk'{print......
  • 开源代码生成模型 StarCoder 2 全新上线!
    BigCode正式推出StarCoder2——一系列新一代的开放源代码大语言模型(LLMs)。这些模型全部基于一个全新、大规模且高品质的代码数据集TheStackv2进行训练。我们不仅公开了所有的模型和数据集,还包括了数据处理和训练代码的详细信息,详情请参阅相关论文。StarCoder2是什么......
  • K8S集群Master节点怎么迁移
    需求使用虚拟机搭建了一台K8S的Master节点,现在需要迁移至物理机因为搭建K8S集群Master节点的时候使用了节点的IP生成证书所以新的物理机需要何原Master节点的IP一致复制配置文件和二进制文件#scp-r/opt/kubernetes/[email protected]:/opt/kubernetes/复制service......
  • List remote Git branches and the last commit's author and author date for each b
    Listingeachbranchanditslastrevision'sdateinGit ListremoteGitbranchesandthelastcommit'sauthorandauthordateforeachbranch.Sortbymostrecentcommit'sauthordate. #Credithttp://stackoverflow.com/a/2514279f......