java运算符

运算符:

就是对常量和变量进行操作的符号

分类:

算术运算符,赋值运算符,逻辑运算符,位运算符,三目运算符

算术运算符:

+ - * / % ++ --

% 取余运算符

a++ 用了之后在自增

++a 自增之后在使用

+:

1:加法

2:正号

3:字符串连接符

赋值运算符:

基本的赋值运算符:=

拓展的赋值运算符:+=  -=  *=  /=  %=

拓展的赋值运算符其实隐含了一个强制类型转换

比较运算符:

==     !=    >     >=     

特点:

无论操作简单还是复杂,结果是Boolean

逻辑运算符:连接布尔型表达式

&与  |或  ^异或  !非  &&  ||

^:相同为false 不同为true

false ^ false = false

false ^ true = true

trur ^ true = false

&& 和 & 的区别:

1:最终结果一样

2:&&具有短路效果,左边是false,右边不执行

开发中常用:

&&   ||   !

位运算符:

&   |   ^   ~

<>   >>>

注意:要做位运算,首先要把数据转换为二进制

^的特点:

一个数据对另一个数据位异或两次,该数本身不变

a ^ b ^ b = a

a ^ b ^ a = b

用位异或交换两个整数:

左边:a b a

右边: a ^ b

a = a ^ b;

b = a ^ b; //a ^ b ^ b = a

a = a ^ b; // a ^ b ^ a =b

开发中:

c = a;

a = b;

b = c;

用变量相加:

a = a + b;

b = a - b;

a = a - b;

一句话搞定:

b = (a + b) - (a = b);

int a = 3;

int b = 4;

3的二进制:11

32位操作系统:00000000 00000000 00000000 00000011

4的二进制:100

32位操作系统:00000000 00000000 00000000 00000100

&位与运算:有0则0

3 & 4

00000000 00000000 00000000 00000011

&00000000 00000000 00000000 00000100

00000000 00000000 00000000 00000000

结果是:0

|位或运算:有1则1

3 | 4

00000000 00000000 00000000 00000011

|00000000 00000000 00000000 00000100

00000000 00000000 00000000 00000111

结果是:7

^位异或运算:相同则0,不同则1

3 ^ 4

00000000 00000000 00000000 00000011

^00000000 00000000 00000000 00000100

00000000 00000000 00000000 00000111

结果是:7

~按位取反运算:0变1, 1变0

~3

00000000 00000000 00000000 00000011

~11111111 11111111 11111111 11111100(补码)

补码:11111111 11111111 11111111 11111100

反码:11111111 11111111 11111111 11111011

原码:10000000 00000000 00000000 00000100

结果是:-4

<

<< 把<

System.out.println(3 << 2);//3 * 2^2

3二进制:00000000 00000000 00000000 00000011

(00)000000 00000000 00000000 0000001100

>>  右移: 最高位是0,左边补齐0;最高位是1,左边补齐1。

把>>左边的数据/2的移动次幂

System.out.println(24 >> 2);//24 / 2^2 = 6

>>>  无符号位移:无论最高位是0还是1,左边补齐0。

System.out.println(24 >>> 2);// 6

System.out.println(-24 >> 2);// -6

24的二进制:11000

原码:10000000 00000000 00000000 00011000

反码:11111111 11111111 11111111 11100111

补码:11111111 11111111 11111111 11101000

右移两位左边补1:

1111111111 11111111 11111111 111010(00)  补码

补码:1111111111 11111111 11111111 111010

反码:1111111111 11111111 11111111 111001

原码:1000000000 00000000 00000000 000110

结果:-6

System.out.println(-24 >>> 2);//

24的二进制:11000

原码:10000000 00000000 00000000 00011000

反码:11111111 11111111 11111111 11100111

补码:11111111 11111111 11111111 11101000

无论最高位是0还是1,左边补齐0:

0011111111 11111111 11111111 111010(00)

结果:73741818

最有效率的方式计算2 * 8的结果?

2 << 3

三目运算符:

格式:比较表达式?表达式1:表达式2

true             return

false          return

%02 java_02-java相关推荐

  1. %02 java_02 java语言基础

    常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用) A: ...

  2. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  3. 【精致Java教程】02:Java的跨平台原理

    Java的一大特色就是"write once, run anywhere"即"一次编译,到处运行".就是说你不用专门为每个平台写一份代码,你写的Java程序在任 ...

  4. java 以一个最高有效位为1的二进制数字开始_第02章 Java编程基础

    ·本章学习目标 熟悉Java编程的基础知识 掌握Java语言的基本数据类型.操作符.表达式 掌握Java程序的流程控制语句 熟悉并学会初步使用Java编程环境 ·本章学习内容 数据类型 常量.变量与表 ...

  5. 【SpringBoot集成ElasticSearch 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(配置+增删改查测试源码)【推荐使用】

    1.简介 SpringBoot 项目初始化时就有 NoSQL 选项 Spring Data Elasticsearch(Access+Driver) 此时 pom 文件里引入的依赖是 spring-b ...

  6. 编程体系结构(02):Java异常体系

    本文源码:GitHub·点这里 || GitEE·点这里 一.异常简介 优秀的程序代码,都在追求高效,安全,和低错误率,但是程序中的异常是无法避免的,降低异常出现的频率是关键,异常出现如何处理是另一个 ...

  7. Java讲课笔记02:Java集成开发环境

    文章目录 零.本讲学习目标 1.学会IntelliJ IDEA或Eclipse的安装和启动 2.学会使用IntelliJ IDEA或Eclipse进行程序开发 第一部分 安装使用IntelliJ ID ...

  8. Java程序设计语言基础02:Java中的基本数据类型和运算符

    目录 1. Java中的基本数据类型 1.1 概述 1.2 基本数据类型的值域 1.2.1 byte类型 1.2.2 short类型 1.2.3 int类型 1.2.4 long类型 1.2.5 fl ...

  9. 【中级02】Java Class字节码文件底层逻辑详解

    Java的class文件是什么 Class文件是jvm认识的一种字节码文件,里面的地址都是逻辑的地址.最后需要运行在操作系统中,操作系统只能识别真实的物理地址.此时需要动态链接(这个过程就是将逻辑地址 ...

  10. 【02】Java进阶:09-冒泡排序、选择排序、二分查找、异常、异常的产生和处理、自定义异常、多线程

    day09[排序算法.异常.多线程基础] 今日内容 冒泡排序 选择排序 二分查找 异常处理 多线程基础 教学目标 能够理解冒泡排序的执行原理 能够理解选择排序的执行原理 能够理解二分查找的执行原理 能 ...

最新文章

  1. (转)Elasticsearch NoNodeAvailableException None of the configured nodes are available
  2. 厦门大学计算机专业录取分数线2019,2019年厦门大学各省市各批次录取分数线公布【完整版】...
  3. 关于ORACLE MYSQL NOT IN和NOT exists需要注意的 NULL值
  4. java实现微信与支付宝支付使用同一二维码
  5. Taro框架中开发H5使用微信分享
  6. 四种插头类型:XH、VH、SM、HY
  7. 2018年河南省高中计算机考试,【改革 】 2018年河南中考将采取4+6+1模式,高中自主招生已确定...
  8. 魔与道java版本_魔与道360版下载
  9. 邮箱大师手机版服务器异常,网易邮箱大师无法收信怎么办 网易邮箱大师无法收信的解决办法...
  10. 在网络世界中如何才能保护好自己的安全?
  11. 文件名、目录名或卷标语法不正确。
  12. 微信营销怎么做,5中常见运作模式解析
  13. 如何修改linux中的文本格式
  14. ios微信一直显示未连接到服务器,关于微信分享显示“正在连接”,“未验证应用”以及未正确加载apple-app-site-association配置文件问题说明...
  15. Python语音识别,让人工智能给你读读书,你是想听——萝莉音?御姐音?大叔音?正太音?这些任你选择哦~~~
  16. SHU 第十届程序设计联赛(夏季赛) 解题报告
  17. ​DMBOK知识梳理for CDGA/CDGP——第六章 数据存储与操作(附常考知识点)
  18. 安装Microsoft Office 2010 提示需要安装MSXML版本6.10.1129.0 的解决
  19. 华为鸿蒙智慧屏测评,华为智慧屏SE系列评测:从用上到爱上 就是一“眼”之间...
  20. EasyDarwin框架学习记录

热门文章

  1. 谢尔排序/缩减增量排序(C++)
  2. Windows平台SSH登录Linux并使用图形化界面
  3. 获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换
  4. Oracle学习笔记:创建logical standby
  5. 5G NR - 总体架构与物理层
  6. “百度杯”CTF比赛 十月场 Hash 复现
  7. 利用世界杯,读懂 Python 装饰器
  8. LINUX 下 WEBlogic集群的搭建-01
  9. 新建Java文件的 文档注释
  10. [C++] Variable storage space