%02 java_02-java
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相关推荐
- %02 java_02 java语言基础
常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用) A: ...
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- 【精致Java教程】02:Java的跨平台原理
Java的一大特色就是"write once, run anywhere"即"一次编译,到处运行".就是说你不用专门为每个平台写一份代码,你写的Java程序在任 ...
- java 以一个最高有效位为1的二进制数字开始_第02章 Java编程基础
·本章学习目标 熟悉Java编程的基础知识 掌握Java语言的基本数据类型.操作符.表达式 掌握Java程序的流程控制语句 熟悉并学会初步使用Java编程环境 ·本章学习内容 数据类型 常量.变量与表 ...
- 【SpringBoot集成ElasticSearch 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(配置+增删改查测试源码)【推荐使用】
1.简介 SpringBoot 项目初始化时就有 NoSQL 选项 Spring Data Elasticsearch(Access+Driver) 此时 pom 文件里引入的依赖是 spring-b ...
- 编程体系结构(02):Java异常体系
本文源码:GitHub·点这里 || GitEE·点这里 一.异常简介 优秀的程序代码,都在追求高效,安全,和低错误率,但是程序中的异常是无法避免的,降低异常出现的频率是关键,异常出现如何处理是另一个 ...
- Java讲课笔记02:Java集成开发环境
文章目录 零.本讲学习目标 1.学会IntelliJ IDEA或Eclipse的安装和启动 2.学会使用IntelliJ IDEA或Eclipse进行程序开发 第一部分 安装使用IntelliJ ID ...
- 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 ...
- 【中级02】Java Class字节码文件底层逻辑详解
Java的class文件是什么 Class文件是jvm认识的一种字节码文件,里面的地址都是逻辑的地址.最后需要运行在操作系统中,操作系统只能识别真实的物理地址.此时需要动态链接(这个过程就是将逻辑地址 ...
- 【02】Java进阶:09-冒泡排序、选择排序、二分查找、异常、异常的产生和处理、自定义异常、多线程
day09[排序算法.异常.多线程基础] 今日内容 冒泡排序 选择排序 二分查找 异常处理 多线程基础 教学目标 能够理解冒泡排序的执行原理 能够理解选择排序的执行原理 能够理解二分查找的执行原理 能 ...
最新文章
- (转)Elasticsearch NoNodeAvailableException None of the configured nodes are available
- 厦门大学计算机专业录取分数线2019,2019年厦门大学各省市各批次录取分数线公布【完整版】...
- 关于ORACLE MYSQL NOT IN和NOT exists需要注意的 NULL值
- java实现微信与支付宝支付使用同一二维码
- Taro框架中开发H5使用微信分享
- 四种插头类型:XH、VH、SM、HY
- 2018年河南省高中计算机考试,【改革 】 2018年河南中考将采取4+6+1模式,高中自主招生已确定...
- 魔与道java版本_魔与道360版下载
- 邮箱大师手机版服务器异常,网易邮箱大师无法收信怎么办 网易邮箱大师无法收信的解决办法...
- 在网络世界中如何才能保护好自己的安全?
- 文件名、目录名或卷标语法不正确。
- 微信营销怎么做,5中常见运作模式解析
- 如何修改linux中的文本格式
- ios微信一直显示未连接到服务器,关于微信分享显示“正在连接”,“未验证应用”以及未正确加载apple-app-site-association配置文件问题说明...
- Python语音识别,让人工智能给你读读书,你是想听——萝莉音?御姐音?大叔音?正太音?这些任你选择哦~~~
- SHU 第十届程序设计联赛(夏季赛) 解题报告
- ​DMBOK知识梳理for CDGA/CDGP——第六章 数据存储与操作(附常考知识点)
- 安装Microsoft Office 2010 提示需要安装MSXML版本6.10.1129.0 的解决
- 华为鸿蒙智慧屏测评,华为智慧屏SE系列评测:从用上到爱上 就是一“眼”之间...
- EasyDarwin框架学习记录
热门文章
- 谢尔排序/缩减增量排序(C++)
- Windows平台SSH登录Linux并使用图形化界面
- 获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换
- Oracle学习笔记:创建logical standby
- 5G NR - 总体架构与物理层
- “百度杯”CTF比赛 十月场 Hash 复现
- 利用世界杯,读懂 Python 装饰器
- LINUX 下 WEBlogic集群的搭建-01
- 新建Java文件的 文档注释
- [C++] Variable storage space