初入JavaSE(三)

操作符

赋值操作符

操作符 描述
= 取右边的值
1 class Demo{
2    public static void main(String[] args){
3       int a = 7;//将右边的值赋给左边的变量
4       System.out.println(a);//打印输出变量a
5    }
6 }

打印结果如下:

7

算术操作符


操作符

描述
+
-
*
/
% 取余
 1 class Demo{
 2    public static void main(String[] args){
 3       int a = 8;
 4       int b = 6;
 5       int c = a + b;//将变量a+b的和赋值给变量c
 6       System.out.println("a + b = " + c);
 7       c = a - b;//将变量a-b的差赋值给变量c
 8       System.out.println("a - b = " + c);
 9       c = a * b;//将变量a*b的积赋值给变量c
10       System.out.println("a * b = " + c);
11       c = a / b;//将变量a/b的商赋值给变量c
12       System.out.println("a / b = " + c);
13       c = a % b;//取变量a除以变量b的余数
14       System.out.println("a / b = " + c);
15    }
16 }

打印结果如下:

a + b = 14
a - b = 2
a * b = 48
a / b = 1
a / b = 2

注意:

  • 算术操作符的优先级按照从左往右先乘除后加减,有括号则先运算。
  • 整数除法会直接去掉小数位,而不是四舍五入。

递增和递减

操作符 描述
++ 递增
-- 递减
 1 class Demo{
 2    public static void main(String[] args){
 3       int a = 5;
 4       int b = 7;
 5       int c = a++;//先将变量a的值赋给变量c,然后变量a自增1,此时a=6
 6       System.out.println("a = " + a + " c = " + c);
 7       c = ++a;//先将变量a的值自增1,然后将值赋给变量c,此时a=7
 8       System.out.println("a = " + a + " c = " + c);
 9       int d = b--;//先将变量b的值赋给变量d,然后变量b自减1,此时b=6
10       System.out.println("b = " + b + " d = " + d);
11       d = --b;//先将变量b的值自减1,然后将值赋给变量d,此时b=5
12       System.out.println("b = " + b + " d = " + d);
13    }
14 }

打印结果如下:

a = 6 c = 5
a = 7 c = 7
b = 6 d = 7
b = 5 d = 5

关系操作符

操作符 描述
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
 1 class Demo{
 2     public static void main(String[] args){
 3         int x = 47;
 4         int y = 49;
 5         System.out.println("x < y = " + (x < y));
 6         System.out.println("x > y = " + (x > y));
 7         System.out.println("x <= y = " + (x <= y));
 8         System.out.println("x >= y = " + (x >= y));
 9         System.out.println("x == y = " + (x == y));
10         System.out.println("x != y = " + (x != y));
11     }
12 }

打印结果为:

x < y = true
x > y = false
x <= y = true
x >= y = false
x == y = false
x != y = true

注意:

  • 关系操作符返回值类型为boolean型数据,要么为true,要么为false。

逻辑操作符

操作符 描述
&&
||
!
 1 class Demo{
 2      public static void main(String[] args){
 3         boolean t = true;
 4         boolean f = false;
 5         System.out.println(t&&t);//当两边值都为true时则返回true
 6         System.out.println(t&&f);//否则为flase
 7         System.out.println(f&&f);
 8         System.out.println(f||f);//当两边边都为false时则返回false
 9         System.out.println(t||t);//否则为true
10         System.out.println(t||f);
11         System.out.println(!t);//true则返回flase
12         System.out.println(!f);//false则返回true
13      }
14 }

注意:

  • 短路现象,一旦确定了表达式的值就不会再继续计算余下的部分。

位操作符

操作符 描述
& 按位与
| 按位或
^ 按位异或
~ 按位非

按位与运算:当两边二进制都为1时结果为1

值1(十进制) 00000000 00000000 00000000 00000111(7) 00000000 00000000 00000000 00000110(6)
值2(十进制) 00000000 00000000 00000000 00000011(3) 00000000 00000000 00000000 00000101(5)
结果(十进制) 00000000 00000000 00000000 00000011(3) 00000000 00000000 00000000 00000100(4)

按位或运算:当两边二进制都为0时结果为0

值1(十进制) 00000000 00000000 00000000 00001001(9) 00000000 00000000 00000000 00010001(17)
值2(十进制) 00000000 00000000 00000000 00000110(6) 00000000 00000000 00000000 00000011(3)
结果(十进制) 00000000 00000000 00000000 00001111(15) 00000000 00000000 00000000 00010011(19)

按位异或运算:当两边二进制都为1时结果为0

值1(十进制) 00000000 00000000 00000000 00001111(15) 00000000 00000000 00000000 00000111(7)
值2(十进制) 00000000 00000000 00000000 00001001(9) 00000000 00000000 00000000 00000101(5)
结果(十进制) 00000000 00000000 00000000 00000110(6) 00000000 00000000 00000000 00000010(2)

按位非运算:二进制值1为0,0为1

值(十进制) 00000000 00000000 00000000 00001010(10)
结果(十进制) 11111111 11111111 11111111 11110101(-11)
 1 class Demo{
 2     public static void main(String[] args){
 3         System.out.println("7 & 3 = " + (7&3));
 4         System.out.println("6 & 5 = " + (6&5));
 5         System.out.println("9 | 6 = " + (9|6));
 6         System.out.println("17 | 3 = " + (17|3));
 7         System.out.println("15 ^ 9 = " + (15^9));
 8         System.out.println("7 ^ 5 = " + (7^5));
 9         System.out.println("~10 = " + (~10));
10      }
11 }

打印结果如下:

7 & 3 = 3
6 & 5 = 4
9 | 6 = 15
17 | 3 = 19
15 ^ 9 = 6
7 ^ 5 = 2
~10 = -11

移位操作符

操作符 描述
<< 左移
>> 右移
>>> 无符号右移

左移:将操作数的二进制向左移动指定位数(空位补0)

操作数(十进制) 00000000 00000000 00000000 00000111(7) 00000000 00000000 00000000 00000101(5)
左移位数 3 4
结果(十进制) 00000000 00000000 00000000 00111000(56) 00000000 00000000 00000000 01010000(80)

右移:将操作数的二进制向右移动指定位数(按最高位补位)

操作数(十进制) 00000000 00000000 00000000 00001111(15) 11111111 11111111 11111111 11110001(-15)
右移位数 3 4
结果(十进制) 00000000 00000000 00000000 00000001(1) 11111111 11111111 11111111 11111111(-1)

无符号又移动:将操作数的二进制向右移动指定位数(空位补0)

操作数(十进制) 11111111 11111111 11111111 11111110(-2)
右移位数 3
结果(十进制) 00011111 11111111 11111111 11111111(536870911)
1 class Demo{
2     public static void main(String[] args){
3         System.out.println("7 << 3 = " + (7<<3));
4         System.out.println("5 << 4 = " + (5<<4));
5         System.out.println("15 >> 3 = " + (15>>3));
6         System.out.println("-15 >> 3 = " + (-15>>4));
7         System.out.println("-2 >>> 3 = " + (-2>>>3));
8      }
9 }

打印结果如下:

7 << 3 = 56
5 << 4 = 80
15 >> 3 = 1
-15 >> 3 = -1
-2 >>> 3 = 536870911

三元操作符

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

相当于if...else语句,当布尔表达式为true时,则执行表达式1,否则执行表达式2。

注意:因为是一个运算符,所以运算完必须要有一个结果。

1 class Demo{
2     public static void main(String[] args){
3         int a = 7;
4         int b = 6;
5         System.out.println(a>b ? a+1 : a-1);
6      }
7 }

打印结果如下:

8

时间: 2024-08-27 20:48:59

初入JavaSE(三)的相关文章

初入JavaSE(二)

整数型 数据类型 内存空间 包装类 byte 8 bit Byte short 16 bit Short int 32 bit Integer long 64 bit Long 浮点型  数据类型  内存空间 包装类   double  64 bit  Double  float  32 bit  float 逻辑型 数据类型 内存空间 包装类 boolean - Boolean 字符型 数据类型 内存空间 包装类 char 16 bit Character 空类型 数据类型 内存空间 包装类

初入JavaSE(一)

Hello, World 关于环境搭建等之类的东西我就不再提了,首先就从Hello,World开始. 1 class Demo{ 2 public static void main(String[] args){ 3 System.out.println("Hello, World"); 4 } 5 } 首先JAVA是面向对象语言自然会有“类”和“对象”的概念,在以后的文章中会详细说明.类在java中是基础的单元,关于类的声明有两种方式要注意1. public class <类名

0x00linux32位汇编初入--前期准备

0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行号 ar 创建,修改和展开文件存档 as 汇编器 c++filt 还原c++符号过滤器 gprof 显示程序简档信息 ld 把目标代码文件链接 nlmconv 把目标代码转换为Netware loadable Module格式 nm 列出目标文件中的符号 objcopy 复制和翻译目标文件 objd

致初入职场的兄弟姐妹

致初入职场的兄弟姐妹   我很喜欢电影<燃情岁月>中的那句台词--"有些人能够听见自己内心的声音,非常的清楚,他们依循着自己的内心来行事.这些人变得疯狂,或者成为传奇--"(Some people hear their own inner voices with great clearness and they live by what they hear. Such people become crazy, or they become legends. )     这是

初入社会八个月总结

今年4月份参加工作,至今已经八个月了,以前没接触过的EF.MVC等,经过项目的磨练,已经差不多了.感觉在这八个月中,自己的姿势增长很快,这是初入社会比较欣慰的一点. 总的来说,这八个月让我对身边的人,有了些新的认识:本人在青岛上学,毕业之后跟着大学的兄弟几个一起留在了青岛,我来到了市南,他们去了青岛的各个角落.我们虽然不经常联系,但是感觉兄弟们就在我身边,让我心安.“你们同在一个城市,就算是不联系,心里也是会很充实.而我,回到家,才发现,心里真的是空落落的”一个兄弟这么说,我说:“你该找个女朋友

一个大龄前端从业者初入IT行业的过程与感受

我已经是一个奔三的大龄青年了,以前一直做保健方面的工作,然而这并不是我想长期干下去的行业.自己一直对编程感兴趣,自学过Python,做点小程序小爬虫什么的.但是,没有相关的计算机知识背景,这点知识去找工作是天方夜谈. 年龄已不小,我知道,若是再不入行,就彻底没机会了.于是,今年初果断辞职了,在家自学,在网上学习和了解一些相关知识与行情.Python工作薪水都比较可观,不过,Python虽适合初学者却并不是适合初入行找工作的人,不少写Pyhton的程序员都是Java转的,门槛相对比较低的是前端,虽

程序员初入职场如何快速成长

近期收到很多的朋友留言关于程序员初入职场如何快速成长,因为在it行业中,新的技术在不断的更新,如果你不充分利用有限的时间,在未来的竞争中该如何成长.针对这个问题,下面将给出三条比较有实际意义的建议. 培养自己的沟通能力 作为程序员大部分的时间都是和电脑进行沟通,但是我们要想把一个项目做好,沟通能力很重要,因为一个项目会涉及很多方面的,有些知识你可能不具备,但是其他的同事可能很精通,这个时候,沟通就显得尤为重要.说起沟通,建议先学会和你的上级领导沟通,最好做到一对一的沟通,有效的沟通可以让你少走很

初入TensorFlow————配置TensorFlow

能看到这说明你对python已经有一定的了解了,因此很多基础直接跳过. 一.TensorFlow环境配置: TensorFlow的环境配置在网上很多的教程都是用anaconda的方式,但是很容易出现冲突,而且问题也不是很好解决,因此不建议使用anaconda.建立一个新的pythonvirtual的环境,专门用来做TensorFlow,由于pycharm可以继承于原来的环境,因此有些库也会继承下来,即使没有也可以用pip的指令来完成安装,直接进入python的新建的虚拟环境.输入[pip ins

初入职场什么邮箱好用?

职场新人的第一个入门级邮箱品牌如何选择?前几天和几个生意场上的朋友谈起怀旧的话题,上学时暗恋的同桌.毕业时的第一份工作.人生的第一个邮箱.说起邮箱,大多数职场新人并不了解其真正的用法及价值,记得十几年前属TOM.搜狐等几个品牌最火,至今已是亿级用户的大品牌. 今天分享给初入职场的小伙伴们如何选好一款邮箱,目前业内较为知名的QQ.TOM.新浪邮箱等都是优秀品牌,下面以我人生中的第一个邮箱-TOM VIP邮箱功能特色给大家做一下参考喽! 一. 邮箱安全 3个重要因素:https协议 .SSL加密.密