目录

一、算术运算符

1.  表格

2.  练习题:

二、 关系运算符

1.  表格

三、逻辑运算符

1.  表格

2.  练习题

四、赋值运算符

1.  介绍

2.细节特点

五、三元运算符

1.  基本语法

2.  使用细节

六、运算符优先级

1.  表格

七、标识符的命名规则和规范

1.  标识符的命名规则

2.  标识符命名规范

八、键盘输入语句

1.  步骤

九、进制

十、原码、反码、补码(重点 难点)

十一、位运算符


一、算术运算符

1.  表格

运算符 运算 范例 结果
+ 正号 +7 7
- 负号 b = 11;-b -11
+ 9+9 18
- 10-8 2
* 7*8 56
/ 9/9 1
% 取模(取余) 11%9 2

++

++

自增(前):先运算后取值

自增(后):先取值后运算

a = 2;b = ++a

a = 2;b = a++

a = 3;b = 3

a = 3;b = 2

- -

- -

自减(前):先运算后取值

自减(后):先取值后运算

a = 2;b = - -a

a = 2;b = a- -

a = 1;b = 1

a = 1;b = 2

+ 字符串相加 "abc"+"def" "abcdef"

使用细节:

①  除法(/)

System.out.println(10 / 4);
//输出2,因为10和4都是int型数据,结果为int型
System.out.println(10.0 / 4);
//输出2.5,因为10.0是double型,故结果为double型
double d = 10 / 4;
System.out.println(d);
//输出2.0,因为10/4计算得int型结果2,然后将2转换为double型得2.0

②  取模(%)

%的本质:a % b = a - a / b * b

③  自增(++)用法同自减(- -)

int j = 8;
int k = j++;  // k = j;j = j + 1
System.out.println("k = " + k + "j = " + j)  // 结果:k = 8; j = 9int x = 8;
int y = ++x;  //  x = x + 1;y = x;
System.out.println("y = " + y + "x = " + x)  // 结果:x = 9; y = 9

2.  练习题:

int i = 1;
i = i++;  //(1) temp = i;(2)i = i + 1;(3)i = temp;
System.out.println(i);  //输出1 int x = 1;
x = ++x;  //(1)x = x + 1;(2)temp = x;(3)x = temp;
System.out.println(x);  //输出2
//定义一个变量保存华氏温度,华氏温度转换为摄氏温度的公式为:5/9*(华氏温度-100)
//算出华氏温度对应的摄氏温度
double a = 234.5;
double b = 5.0 / 9 * (a - 100);
//注意是5.0不是5 因为int型的精度比较低,导致最后的结果为零
System.out.println("对应的温度为" + b);

二、 关系运算符

1.  表格

运算符 运算 范例 结果
= = 相等于 8 = = 7 false
! = 不等于 8!=7 true
< 小于 8<7 false
> 大于 8>7 true
< = 小于等于 8<=7 false
> = 大于等于 8> =7 true
instanceof  检查是否是类的对象 "lhh" instanceof String true

使用细节:

①  关系运算符的结果都是boolean型,true 或者 false。

②  关系运算符组成的表达式叫做关系表达式。

③  比较运算符“= =”不能误写成“=”。

三、逻辑运算符

1.  表格

a b a&b(逻辑与) a&&b(短路与) a|b(逻辑或) a||b(短路或) !a(取反) a^b(逻辑异或)
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

使用细节:

①  && 和 & 使用区别

&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false。

&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低。

在开发当中,一般都是用短路与&&,效率高。

②  | | 和 | 使用区别

| | 短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高。

| 逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低。

在开发当中,一般都是用短路或| |,效率高。

2.  练习题

boolean x = true;
boolean y = false;
short z = 46;
if(z++ == 46)&&(y = true) z++;  //注意 y = true 是赋值,为true
if(x = false)||(++z == 49) z++;  //注意 x = false 是赋值,为true
System.out.println("z=" + z);  //结果z= 50

四、赋值运算符

1.  介绍

基本赋值运算符: =

复合赋值运算符:

+ = ;- =;* =;/ =;%=;等

2.细节特点

(1)运算顺序从右往左。

(2)赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值。

(3)符合赋值运算符等价于下面的效果:a += 3 //a = a + 3。

(4)符合赋值运算符会进行类型转换。

byte b = 3;
b += 2;  //等价于b = (byte)(b + 2);
b++;  //等价于b = (byte)(b + 1);

五、三元运算符

1.  基本语法

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

运算规则:

(1)如果条件表达式为true,运算后的结果是表达式1;

(2)如果条件表达式为false,运算后的结果是表达式2。

2.  使用细节

(1)表达式1和表达式2要为可以赋给接受变量的类型(或者可以自动转换)

(2)三元运算符可以转为if--else语句

if res = a > b ? a++;--b;  //等价于下面if (a > b) res = a++;else res = --b;

练习题:求三个数中的最大值

int a = 10;
int b = 20;
int c = 30;
//方法一
int temp = a > b ? a : b;
int lagest = temp > c ? temp : c;
System.out.println("a,b,c当中最数的是" + lagest);
//方法二
int lagest = (a > b ? a : b) > c ? (a > b ? a : b) : c;
System.out.println("a,b,c当中最数的是" + lagest);

六、运算符优先级

1.  表格

.  ()  {}  ;  ,
R—>L + +  - -  ~  !(data type)
L—>R *  /  %
L—>R +  -
L—>R <<  >>  >>>  位移
L—>R <  >  <=  >=  instanceof
L—>R = =  ! =
L—>R &
L—>R ^
L—>R |
L—>R &&
L—>R | |
L—>R ? :
R—>L =   *=  /=  %=
+=  *=  <<=  >>=
>>>=  &=  ^=  |=

优先级从上到下依次减退。

(1)() {}等

(2)单目运行  + +  - -

(3)算术运算符

(4)位移运算符

(5)比较运算符

(6)逻辑运算符

(7)三元运算符

(8)赋值运算符

七、标识符的命名规则和规范

1.  标识符的命名规则

(1)由26个英文字母大小写,0-9,_或$组成。

(2)数字不可以开头。

(3)不可以使用关键字和保留字,但是可以包含关键字和保留字。

(4)Java中严格区分大小写,长度无限制。

(5)标识符不能包含空格。

2.  标识符命名规范

(1)包名:多单词组成时所有字母都小写:aaa.bbb.ccc

(2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz[大驼峰]

(3)变量名、方法名:多单词组成是,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz[小驼峰,简称 驼峰法]

(4) 常量名:所有字母都大写。多单词时,每个单词都用下划线链接:XXX_YYY_ZZZ

(5)其他的规范之后补充。

八、键盘输入语句

1.  步骤

(1)导入该类的所在包,java.util.*(*在此为Scanner)。

(2)创建该类对象(声明变量)。

(3)调用里面的功能。

import java.util.Scanner;
public class Input {public static void main(String[] args){Scanner oneScanner = new Scanner(System.in);System.out.println("请输入姓名:");String name = oneScanner.next();System.out.println("请输入性别:");String gender = oneScanner.next();System.out.println("请输入年龄:");int age = oneScanner.nextInt();System.out.println("请输入薪资:");double sal = oneScanner.nextDouble();System.out.println("姓名:" + name + " 性别:" + gender +" 年龄:"+ age + " 薪资:" + sal);}
}

九、进制

对于整数,有四种表示方式:

1.  二进制:0,1,满2进1,以0b或0B开头。

2.  十进制:0-9,满10进1。

3.  八进制:0-7,满8进1,以数字0开头表示。

4.  十六进制:0-9及A(10)-F(15),满16进1,以0x或者0X开头表示,其中A-F不区分大小写。

十、原码、反码、补码(重点 难点)

1.  二进制的最高位十符号位:0表示正数,1表示负数。

2.  正数的原码、反码,补码都一样。

3.  负数的反码 = 它的原码符号位不变,其它位取反。

4.  负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1。

5.  0的反码,补码都是0。

6.  java没有无符号数,换言之,java中的数都是有符号的。

7.  在计算机运算的时候,都是以补码的方式来运算的。

8.   当我们看运算结果时候,要看他的原码。

十一、位运算符

java当中有7个位运算(&、|、^、~、>>、<<和>>>)

分别十按位与&、按位或|、按位异或^、按位取反~,算术右移>>,算术左移<<,逻辑右移(无符号右移)>>>,它们的运算规则:

十按位与&:两位全是1,结果为1,否则为0

按位或|:两位有一个是1,结果为1,否则为0

按位异或^:两位一个是1,一个是0,结果为1,否则为0

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

算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位

算术左移<<:符号位不变,低位补0

逻辑右移(无符号右移)>>>:低位溢出,高位补0(注意:没有<<<符号)

B站韩顺平java学习笔记(三)--运算符章节相关推荐

  1. B站韩顺平java学习笔记(六)--面向对象编程章节

    目录 一.类和对象 1.定义及区别 2.对象内存布局 3.属性/成员变量 (1)基本介绍 (2)注意事项和细节说明 (3)访问属性 4.对象 (1)创建对象 (2)对象分配机制 ​(3)Java创建对 ...

  2. B站韩顺平java学习笔记(十六)-- 多线程基础章节

    目录 一  线程介绍 1  线程相关概念 (1)程序 (2)进程 (3)什么是线程 (4)其他相关概念 (5)查看电脑有多少个cpu核 二  线程的使用 1  线程的创建 (1)继承Thread类,重 ...

  3. B站韩顺平java学习笔记(八)-- 房屋出租系统(项目)章节

    目录 一 项目需求说明 1 项目界面 二  房屋租赁程序框架图 ​三  系统实现 1  完成House类 2  显示主菜单和完成退出软件的功能 3  完成显示房屋列表的功能 4  添加房屋信息的功能 ...

  4. B站韩顺平java学习笔记(二十五)-- 正则表达式章节

    目录 一  正则表达式入门 1  极速体验正则表达式威力 二  为什么要学正则表达式 三  正则表达式基本介绍 1  介绍 2  正则表达式底层实现

  5. B站韩顺平java学习笔记(二十三)-- MYSQL基础篇 章节

    目录 一  数据库 1  数据库简单原理图 2  使用命令行窗口连接MYSQL数据库 3  MySQL三层结构 4  数据在数据库中的存储方式 5  SQL语句分类 6  创建数据库 7  查看.删除 ...

  6. 韩顺平Java学习笔记_IO流专题

    目录 一 文件 1.文件的概念: 文件是保存数据的地方 2.文件流:文件在程序中是以流的形式来操作的 2.1.输入流指数据从数据源(文件)到程序(内存)的路径 2.2.输出流指数据从程序(内存)到数据 ...

  7. 韩顺平Java学习笔记P245对象创建流程分析P246this关键字-P250

    P245对象创建流程分析 //1.先在方法区加载方法类 //2.在堆里开空间一个存放age,一个存放name //3.(先默认初始化有默认值age=0,name=null,再显示初始化age=90,n ...

  8. java学习笔记(三):前端miniUI控件库入门

    java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...

  9. 韩顺平Java自学笔记 反射

    一.反射入门案例 目录 一.反射入门案例 二.反射的机制 1.反射的原理 2.反射相关的类 3.反射的优点和缺点 三.Class类详解 1.Class类的特征 2.Class的常用方法 3.获取Cla ...

最新文章

  1. 使用CURL构建爬虫,抓取百度百科内容
  2. 【Android】3.0 第3章 百度地图及其应用--预备知识
  3. 利润中心与其他模块的集成
  4. 如何在Eclipse中查看Android源码或者第三方组件包源码
  5. .net中的硬盘操作(针对Windows )
  6. 英特尔助力金山云带你畅游云端的游戏世界
  7. 向右挪一个键位使密码好记又安全
  8. 复旦大学邱锡鹏老师深度学习课程笔记(一)—— 一些模型概述
  9. 小米路由php,小米路由器Pro 刷机 OpenWrt
  10. win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
  11. echarts饼状图去除他的划过放大效果。
  12. DSP大数据精准广告的介绍
  13. 八、血条的制作和boss敌人的产生(雷霆战机)
  14. layui怎么给下拉框赋值_layui给select下拉框赋值
  15. 计算机专业朋友圈文案,朋友圈文案文艺范简约 很美很好听的文艺句子合集
  16. 3000字/16张炫酷动态图,推荐一款好用到爆的Python可视化利器
  17. SAP Cloud Platform会抛弃ABAP吗?
  18. 对struct cred新理解
  19. Joshua Porter 20条UI设计原则
  20. matlab偏分赋值错误,MATLAB ode45求解高阶微分方程组,出现“无法执行赋值,因为左侧和右侧的元素数目不同”问题...

热门文章

  1. 通过身份证简单获取省市等信息
  2. 使用NetBackup进行oracle备份和恢复
  3. UE4 项目工程规范
  4. 华为双屏手机计算机,华为双屏手机设计惊艳亮相 背面的屏幕是干嘛用的?
  5. python元祖封包_转-python封包
  6. 传感器实验——DHT11温湿度传感器
  7. 2022-2027年中国汽车传感器行业市场调研及未来发展趋势预测报告
  8. 《Node.js》中间件和洋葱圈模型
  9. PI3HDX12211ZHEX DIODES/美台 TQFN42 hdmi视频开关芯片
  10. 指定未知的错误:0x80240037