运算符

基本运算符

Java 语言支持如下运算符

算术运算符 +,-,*,/,%,++,--
赋值运算符 =
关系运算符 >,<,>=,<=,==,!=
‘逻辑运算符 &&,||,!
位运算符 &,^,~,>>,<<,>>>
条件运算符 ?、:
扩展赋值运算符 +=,-=,*=,/=

1.一元基础运算(重点)

一元运算符 (a++ / ++a) (a-- / --a)

int a1 = 3;
int b1 = a1++;
/*
b1 = a1 先赋值 3=3 此时a1=3,b1=3
a1 = a1+1 后自增 3+1=4 此时a1=4
*/
System.out.println(a1);//4
int c1 = ++a1;
/*
a1 = a1+1 先自增 此时a1=4+1=5
a1 = c1 后赋值 此时c1=a1=5
*/
//a++是先赋值给了b再a自增1,所以b只是3,而++a是先自增再赋值给c,所以c是变成了5
System.out.println(a1); //5
System.out.println(b1); //3
System.out.println(c1); //5

2.二元基础运算

基础

        int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);//30
System.out.println(a-b);//-10
System.out.println(a*b);//200
System.out.println(a/b);// 0 (/)计算结果取小数部分的整数,在字符面前添加类型即可
System.out.println(a/(double)b);//0.5

计算返回值类型

       long e = 121212121212L;
int f = 123;
short g = 10;
byte h = 8; //运算结果的数据类型为参与运算的变量中最高优先级的数据类型
System.out.println(e+f+g+h);//121212121353(long)
System.out.println(f+g+h); //141(int)
System.out.println(g+h); //18(int)

关系运算

//关系运算符返回的结果(布尔值)
int i = 10;
int j = 20;
int k = 21; System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true
//模运算(取余)
System.out.println(k%j); //1

幂运算

//很多运算,我们会使用一些工具类来使用

double pow1 = Math.pow(2,3);
double pow2 = Math.pow(3,2);
System.out.println(pow1); //8
System.out.println(pow2); //9

3.三元运算符

/*
x ? y : z
如果 x==true,则结果为y,否则结果为z
*/
//int score = 80;
int score = 50;
String type = score <60 ?"不及格":"及格";
System.out.println(type);//及格

4.逻辑运算符

与(and) 或(or) 非(取反)

boolean a = true;
boolean b = false; System.out.println("a && b:"+ (a && b));//逻辑与运算,两个变量都为真,结果才为true
System.out.println("a || b:"+ (a || b));//逻辑或运算,两个变量有一个为真,结果才为true
System.out.println("a && b:"+ !(a || b)); //如果是真则为假,如果是假则为真 //短路运算 :(&&)中当前一变量为假,则不会执行后一变量,直接输出
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5

位运算

/*
A = 0011 1100
B = 0000 1101
-------------------------------------
A&B 0000 1100
A|B 0011 1101
A^B 0011 0001
~B 1111 0010
*/ /*
2*8 = 16 计算机没有此编码方式
2*2*2*2 = 16 效率低下
<<(左移 乘) >>(右移 除)
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
...
*/
System.out.println(2<<3);//2乘以3个2 16
System.out.println(16>>3);//16除以3个2 2

5.扩展赋值运算符

int a = 10;
int b = 20; a += b;
//a -= b;
System.out.println(a); //30 //字符串连接符 + , String
System.out.println(a+b); //50
System.out.println(""+a+b); //3020
//如果前方出现字符串类型,则之后的操作都为字符串类型
System.out.println(a+b+""); //50
//如果字符串在操作后面,则会先进行运算,后拼接

Java学习 (八)基础篇 运算符的更多相关文章

  1. Java学习日记基础篇(八) —— 二进制、位运算、位移运算

    二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...

  2. java学习笔记-基础篇

    Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  3. Java学习日记——基础篇(三-上)基本语法之运算符和流程控制

    运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: +   加 -    减 *    乘 /    除 %  取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...

  4. Java学习路线-基础篇!

    下面以黑马程序员Java学院的学习路线为例,进行一次史无前例的剖析,我会采取连载的形式,细致的讲解零基础的人怎么学习Java.先看下Java在基础阶段的知识点路线图. 内容多吗?不要被吓到了,知识点剖 ...

  5. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  6. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

  7. Java学习笔记——基础篇

    Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!! 学习笔记: *包.权限控制 1.包(package) ...

  8. java学习笔记(基础篇)—java数组

    一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ...

  9. java学习笔记(基础篇)—面向对象编程之封装、继承、多态

    一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计实现为一 ...

随机推荐

  1. 好客租房11-为什么脚手架使用jsx语法

    为什么脚手架中可以使用jsx语法 1jsx不是标准的ECMAScript ,他是ECMAScript的语法扩展 2需要使用babel编译处理后 才能在浏览器环境中使用 3create-react-ap ...

  2. Springmvc基础及应用

    SpringMVC简介和环境搭建 SpringMVC简介 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一.在Spring3.0 后全面超越 S ...

  3. 手把手教你使用Git管理你的软件代码

    什么是分布式版本控制系统?Git有哪些常用命令?什么是仓库?Git的操作区域包括哪些?Git有哪些常用对象(object)?git rebase和git merge的区别是什么?git reset,g ...

  4. RabitMQ 发布确认

    每日一句 军人天生就舍弃了战斗的意义! 概述 RabitMQ 发布确认,保证消息在磁盘上. 前提条件 1.队列必须持久化 队列持久化 2.队列中的消息必须持久化 消息持久化 使用 三种发布确认的方式: ...

  5. 前端获取cookie,并解析cookie成JSON对象

    getCookie() { let strcookie = document.cookie; //获取cookie字符串 let arrcookie = strcookie.split("; ...

  6. Codeforces Round #746

    挺喜欢这场题目的 A: 水,不写了 B: Hemose Shopping 嘲讽自己一下啦~真的是caii 题意:一个数列,我们通过交换两个点(两点满足距离大于等于\(x\)),问能否排序成功. 思路: ...

  7. React简单教程-4.1-hook

    前言 虽然我们简单感受了一下 useState 的用法,但我想你还是对 React 里的 hook 迷迷糊糊的.本文我们将明确下 React 的概念. HOOK 前生今世 在我示例中,写的 React ...

  8. 浅谈倍增法求解LCA

    Luogu P3379 最近公共祖先 原题展现 题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入格式 第一行包含三个正整数 \(N,M,S\),分别表示树的结点个数.询问 ...

  9. Linux系列之安装JDK

    卸载open jdk #查看jdk [root@localhost tools]# rpm -qa | grep jdk java-1.8.0-openjdk-headless-1.8.0.65-3. ...

  10. Servlet 体系结构

    Servlet体系结构 Servlet -- 接口 Genericservlet -- 抽象类 继承类接口 实现了空方法  只需要复写service方法 HttpServlet -- 抽象类  对Ht ...