一.运算符

1.算数运算符:+、-、*、/、%、++、–

1.算数运算符
     int num1 = 10;int num2 = 5;int result = num1 + num2;System.out.println(result);//15System.out.println(10-5);//5System.out.println(10*5);//50System.out.println(10/5);//2System.out.println(10%3);//1++:自增1int a = 10;//++a:先自增1,再使用System.out.println(++a);//11System.out.println(a);//11int a = 10;//a++:先使用,再自增1System.out.println(a++);//10System.out.println(a);//11--:自减1int a = 10;//--a:先自减1,再使用System.out.println(--a);//9System.out.println(a);//9int a = 10;//a--:先使用,再自减1System.out.println(a--);//10System.out.println(a);//9
2.深入算数运算符:
     案例1:byte b1 = 10;byte b2 = 5;//byte b3 = b1 + b2; 运行报错byte b3 = (byte)(b1 + b2);System.out.println(b3);案例2:short s1 = 10;short s2 = 5;//short s3 = s1 + s2; 运行报错short s3 = (short)(s1 + s2);System.out.println(s3);案例3:int i = 10;double d = 1.2;double result = i + d;System.out.println(result);//11.2案例4:int a = 10;//++a;     a++;System.out.println(a);//11

注意:
1.两个byte类型做运算,会向上转型成int类型
2.两个short类型做运算,会向上转型成int类型
3.除了byte和short类型,其他的数值型都是向上转型后再做运算
4.分号代表一条执行语句的结束,不管是++a还是a++,都自增了

3.训练题
     经典面试题一:输出结果为?int a = 8;int b = (a++)+(++a)+(a*10);//                    8     10    100System.out.println(b); //118经典面试题二:输出结果为?int i = 0;   i = ++i; //底层实现://  i = (int)(i+1);// i = i;System.out.println(i);//1int i = 0;   i = i++;  //底层实现://int temp = i; --> temp=0//i = (int)(i +1); --> i=1//i = temp;System.out.println(i);//0扩展:byte b = 10;//++的公式:b = (byte)(b + 1);++b;System.out.println(b);//11

2.赋值运算符:=、+=、-=、 *=、/= 、 %=

1.赋值运算符
     int i = 10;i += 5;//i = (int)(i+5);i -= 5;//i = (int)(i-5);i *= 5;//i = (int)(i*5);i /= 5;//i = (int)(i/5);i %= 3;//i = (int)(i%3);System.out.println(i);//1
2.训练题
     经典面试题一:输出结果为?int a,b; //一次性声明多个变量a = b = 100;//先把100赋值给b,再把b赋值给aSystem.out.println(a); //100System.out.println(b); //100经典面试题二:下面的两种写法结果分别是?short s=1; s = s+1; //报错,s-short 1-int,运算结果的类型为intshort s=1; s += 1;// s = (short)(s+1);

赋值规则:
s+ = 1
s = (T)((s) +(1))
复合赋值 E1 op= E2等价于简单赋值 E1 = (T)((E1) op (E2)),其中T是E1的类型,op为符号。

3.关系运算符:==、!=、>、 <、 >=、 <=

1.关系运算符
 boolean bool = 10 == 20;System.out.println(bool);//false             System.out.println(10 != 20);//trueSystem.out.println(10 > 20);//falseSystem.out.println(10 >= 20);//falseSystem.out.println(10 < 20);//trueSystem.out.println(10 <= 20);//true

注意:
1.== 判断两个值是否相等
2.!= 判断两个值是否不相等
3.关系运算符的结果一定为boolean类型

2.训练题
     经典面试题一:输出结果为?int x = 10;int y = 10;boolean flag = (x == y);System.out.println(flag);//trueflag = (x = y);//不兼容,布尔类型不能和其他基本数据类型兼容System.out.println(flag);经典面试题二:输出结果为?boolean b1 = true;boolean b2 = false;boolean b3 = (b1 == b2);System.out.println(b3);//falseboolean b4 = (b1 = b2);System.out.println(b4);//false

4.逻辑运算符:&(与)、&&(短路与)、|(或) 、||(短路或)、^(异或)、!(非)

1.逻辑运算符
//& 与:前后两者都是boolean,都为true,结果则为trueSystem.out.println(true & true);//trueSystem.out.println(true & false);//falseSystem.out.println(false & true);//falseSystem.out.println(false & false);//false
//&& 短路与:前后两者都是boolean,都为true,结果则为trueSystem.out.println(true && true);//trueSystem.out.println(true && false);//falseSystem.out.println(false && true);//falseSystem.out.println(false && false);//false//&:前者为false后,还会判断后者
//&&:前者为false后,不会判断后者,所以效率更高
//ArithmeticException -- 算数异常System.out.println(false && (10/0)>0);//| 或:前后两者都是boolean,其中一个为true,结果则为trueSystem.out.println(true | true);//trueSystem.out.println(true | false);//trueSystem.out.println(false | true);//trueSystem.out.println(false | false);//false//|| 或:前后两者都是boolean,其中一个为true,结果则为trueSystem.out.println(true || true);//trueSystem.out.println(true || false);//trueSystem.out.println(false || true);//trueSystem.out.println(false || false);//false//|:前者为true,还会判断后者
//||:前者为true,不会判断后者,所以效率更高System.out.println(true || (10/0)>0);//^ 异或:相同为false 不同为trueSystem.out.println(true ^ true);//falseSystem.out.println(true ^ false);//trueSystem.out.println(false ^ true);//trueSystem.out.println(false ^ false);//false//! 非 --> 置反boolean bool1 = true;System.out.println(!bool1);//falseboolean bool2 = false;System.out.println(!bool2);//true
2.训练题
练习题:在dos窗口输入一个数字,判断是否在50~100的区间内:Scanner scan = new Scanner(System.in);System.out.println("请输入一个数字:");int num = scan.nextInt();System.out.println(num > 50 && num < 100);

5.三目运算符/三元运算符

1.三目运算符

语法:数据类型 变量 = (表达式)?值1:值2;
理解:表达式的结果一定是boolean类型
true - 把值1赋值给变量
false - 把值2赋值给变量

2.实验
实验:int num = (false)?10:20;System.out.println(num); //20
3.案例
案例1:在控制台输入两个int类型的数字,输出最大值Scanner scan = new Scanner(System.in);System.out.println("请输入第一个数字:");int a = scan.nextInt();System.out.println("请输入第二个数字:");int b = scan.nextInt();int result = (a>b)?a:b;System.out.println(result);案例2:在控制台输入三个int类型的数字,输出最大值Scanner scan = new Scanner(System.in);System.out.println("请输入第一个数字:");int a = scan.nextInt();System.out.println("请输入第二个数字:");int b = scan.nextInt();System.out.println("请输入第三个数字:");int c = scan.nextInt();int max = (a>b)?a:b;max = (max>c)?max:c;System.out.println(max);
4.训练题
 扩展面试题1:int a = 5;System.out.println((a<5)?10.9:9);//9.0A. 编译错误B. 10.9C. 9D. 以上答案都不对  扩展面试题2:char x='x';int i=10;System.out.println(false?i:x);//120System.out.println(false?i:x);//xSystem.out.println(false?65536:x);//120A. 120  xB. 120 120C. x 120D. 以上答案都不对

三目运算符返回值规则:
1.值1和值2都是数字字面量,按照取值范围大的类型返回
2.值1和值2都是变量,按照取值范围大的类型返回
3.值1是数字字面量,值2是变量,判断值1是否在值2所属类型的取值范围里
在:就按照值2类型返回
不在:就按照值1类型返回

6.字符串拼接符: +

加号两侧都是数值,此符号为算数运算符
加号两侧有一次或两侧是字符串,此符号为字符串拼接符

案例:System.out.println(1+2+"abc"+1+2 + "xxx");//                  3 +"abc"+1+2 + "xxx"//                  "3abc"  +1+2 + "xxx"//                   "3abc1"     +2 + "xxx"//                  "3abc12"     + "xxx"//                 "3abc12xxx"

7.位运算符: & 、 |、 ^ 、 <<、 >>、 >>>

1.位运算符

& 、| 、^ :前后两侧都为布尔值,此符号为逻辑运算符
& 、|、 ^ :前后两侧都为数值,此符号为位运算符

//&:同位比较,两者为1,结果则为1byte b1 = 27;//0001,1011byte b2 = 34;//0010,0010//0011,1001
/*byte 27 - 向上转型为int 0000,0000,0000,0000,0000,0000,0001,1011byte 34 - 向上转型为int 0000,0000,0000,0000,0000,0000,0010,0010相&后
0000,0000,0000,0000,0000,0000,0000,0010强转后
0000,0010*/byte result = (byte)(b1 & b2);System.out.println(result);//2 - 0000,0010//|:同位比较,两者有1,结果则为1System.out.println(b1 | b2);//59 - 0011,1011//^:同位比较,两者相同为0,不同为1System.out.println(b1 ^ b2);//57 - 0011,1001//<< 左移:向左整体移动n位,就用n个0补位byte b = 10;//0000,1010System.out.println(b << 2);//0010,1000//>> 右移:向右整体移动n位,就用n个最高位补位byte b1 = 10;//0000,1010System.out.println(b1 >> 2);//0000,0010byte b2 = -10;//1111,0110System.out.println(b2 >> 2);//1111,1101//>>> 无符号位右移:向右整体移动n位,就用n个0补位byte b2 = -10;//1111,0110
//0011,1111,1111,1111,1111,1111,1111,1101System.out.println(b2 >>> 2);//1073741821
2.训练题
面试题1:用最有效率的方式计算2*8//0000,0100System.out.println(2 << 3);面试题2:猜猜下面代码的运行结果System.out.println((int)(char)(byte)-1);
/*
-1 int:1111,1111,1111,1111,1111,1111,1111,1111
byte:1111,1111
char:1111,1111,1111,1111
int:0000,0000,0000,0000,1111,1111,1111,1111
注意:char没有负数,所以向上用0补位
*/

8.表达式

5+6:算数表达式
5>6:关系表达式
5|6:位运算表达式

9.运算符的优先级别

经验:不用记,灵活运用小括号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4fjjK4E-1592395785332)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200617185723640.png)]

10.转义字符:特殊意义的字符本身

转义字符:特殊意义的字符本身
" 代表一个双引号
’ 代表一个单引号
\ 代表有一个斜杠
\n 代表换行
\t 代表水平制表
注意:println() 打印+换行
print() 打印

实验:System.out.println(""HelloWorld"");System.out.println("'HelloWorld'");System.out.println("\HelloWorld\");System.out.print("HelloWorld\n");System.out.print("HelloWorld");System.out.println("桃谷绘里香\t泷泽萝拉\t三上悠亚");
System.out.println("北条麻衣\t水野朝阳\t爱田奈奈");

常量:程序中,不可变的量
1.数字字面量:程序中出现的数字
2.字面值常量:用双引号括起来的内容
3.用final修饰变量,变量变成常量 (final int i = 10;)
扩展:字面常量 和 final修饰的变量的生命周期:
位置:常量池

11.Java执行语句

Java执行语句:
1.顺序语句:方法中的代码从上往下执行
2.分支语句:依据不同的条件,执行不同的功能
2.1 if
2.2 switch
3.循环语句:依据不同的条件,重复执行某个功能
3.1 for
3.2 while
3.3 do-while
4.特殊的流程控制语句
4.1 break
4.2 continue
4.3 return
4.4 lable

简单if分支语法:
if(表达式){
…代码块…
}

理解:表达式的值只能是boolean类型

        true - 执行代码块false- 跳出if分支,执行if以外的代码
案例:如果麻生希的Java考试成绩大于98分,麻生希就能获得一辆法拉利作为奖励Scanner scan = new Scanner(System.in);System.out.println("请输入麻生希的Java成绩:");double javaScore = scan.nextDouble();if(javaScore > 98){System.out.println("奖励麻生希一辆法拉利");

JAVA零基础入门第一阶段(3)相关推荐

  1. JAVA零基础入门第一阶段(4)

    一.if分支 1.复杂if分支 ①案例 案例一: 人类的健康值在20-25的数值内为健康(健康值算法为:体重(Kg) / 身高(米)的平方)分析:1.输入体重和身高2.计算出健康值3.判断 Scann ...

  2. JAVA零基础入门第一阶段(7)

    一.数组的说明 1.数组含义 存储多个数据的集合 2.相关概念 元素:数组里的数据 下标/索引:每个数据对应的编号,从0开始 3.数组的声明 数据类型[] 数组名; 二.数组的初始化 1.静态初始化 ...

  3. 最适合Java初学者学习的Java零基础入门教程

    各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java. 因此,也是吸引了不少年轻人投入到Java的学习之中. 所以,今天 ...

  4. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  5. 一篇文章让你从JAVA零基础入门`OOP`编程12.19

    一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后,整理的文章,文中对知识点的解释仅为个人理解. 配套PPT,站点源码,等学习资料 一.预科 1.1 JAVA 介 ...

  6. 一篇文章让你从JAVA零基础入门`OOP`编程12.20

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(QQ_3336392096.png)] 一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后, ...

  7. 一期完结《一篇文章让你从JAVA零基础入门`OOP`编程》12.21

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(QQ_3336392096.jpg)] 一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后, ...

  8. java零基础入门的四大步骤

    对于许多想要转换到Java开发的初学者来说,如何学习Java是一个问题.在很多人眼里,程序员是高薪的代名词,所以他们吸引了很多想要转到Java开发的初学者.但是对于很多初学者来说,他们不知道从哪里开始 ...

  9. 【JAVA零基础入门系列】Day14 Java对象的克隆

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

最新文章

  1. 【运维人员应该掌握哪些常用技术】
  2. python3爬虫系列教程-Python3爬虫视频学习教程
  3. HTML5 中的canvas元素用于,HTML5中的Canvas元素
  4. 1203正规式转换为有穷自动机
  5. 查询ecshop网站代码排查方法_提升网站访问速度,提升网站访问速度,提升网站访问速度的个人经验分享...
  6. Linux rm 删除指定文件外的其他文件 方法汇总
  7. 如何用python写个人专属群聊提醒小助手?
  8. Pandas 中第二好用的函数是?
  9. java 获取本机的IP和hostname
  10. 华为OSPF多区域+路由重发布/路由引入
  11. 任意Android设备上运行测试
  12. Android 7.0后SettingProvider ContactsProvider TelephonyProvider MediaProvider数据库位置
  13. 美元反弹外汇分析,黄金外汇买卖近期将有怎样的行情_小豹科技
  14. HOMAG工控机维修西门子IPC627D维修HG-A.1.0
  15. 哔哩哔哩2019秋招笔试试题二——脸滚键盘
  16. GGSN -- 解释
  17. oracle12c备份与恢复,Oracle 12c 备份与恢复
  18. 数据库学习之(5)详解DBMS
  19. Android10.0 Service启动源码解析
  20. DEFERRED_SEGMENT_CREATION参数

热门文章

  1. Java 仿QQ空间评论 后台代码实现 一张表
  2. java executor 源码_Java线程池ThreadPoolExecutor深度探索及源码解析
  3. CFA一级通过率如何?
  4. TS2532: Object is possibly ‘undefined‘
  5. window的dos命令学习笔记 七
  6. 教你用 Python 自制简单版《我的世界》
  7. 他司四大名著(zz)
  8. 指尖江湖服务器维护,指尖江湖备受国内外媒体好评,服务器问题已解决,玩家:洛风好用...
  9. 重装ubuntu18.04笔记
  10. 制造业信息化的长治久安之计--Agentflow解决方案简介