运算符:
  (1)算术运算符:
      +,-,*,/,%,++,--(加、减、乘、除、取余、自增,自减)
    ++和--的注意事项:
      a:他们的作用是自增或者自减
      b:使用
        1.单独使用
          放在操作数据的前面和后面效果一样。
          a++或者++a效果一样。
        2.参与操作使用
          放在操作数的前面:先自增或者自减,再参与操作

          放在操作数的后面:先参与操作,再自增或者自减

 int a = 10;
int b = ++a; //b=11,a=11
int a = 10;
int b = a++; //b=10,a=11

  (2)赋值运算符
    A:=,+=,-=,*=,/=,%=(等于,加等于,减等于,乘等于,除等于,取摸等于)
    B:=叫做赋值运算符,也是最基本的赋值运算符
      举例:int x = 10; 把10赋值给int类型的变量x。
    C:扩展的赋值运算符的特点
        隐含了自动强制转换。
    举例代码:

 short s = 1;//声明变量s,并将常量1赋值给变量s
s = s + 1; //Type mismatch: cannot convert from int to short short ss = 1;
short ss += 1; //ss变量加上常量值1
/*s = s + 1; s转换为int型,在参与运算,得到的结果仍然是int型,
*而ss是short型无法将int转换为short,所以报错。
*/

  (3)比较运算符
    A:==,!=,>,>=,<,<=
    B:无论运算符两端简单还是复杂最终结果是boolean类型。
    C:千万不要把==写成了=(==表示比较,=是赋值)
  (4)逻辑运算符
    A:常用的:!,&&,||   不常用:&,|,^,
    B:逻辑运算符用于连接boolean类型的式子,得到的结果也是boolean类型
    C:结论
      !:非true则false,非false则true
      &&:结果和&是一样的,都表示与运算,只不过有短路效果,即判断左边的表达式可以确定整个表达式的值,就不再运算其他部分表达式,而&要运算全部的表达式。

        举例:(1 !=1 && a > b)左边是false,右边不执行。
      ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
      &:有false则false
      |:有true则true
      ^:相同则false,不同则true。(异或)
  (5)位运算符
    ^的特殊用法
      一个数据针对另一个数据位异或两次,该数不变
  举例:
    1.实现两个变量的交换:
      A:采用第三方变量
      B:用位异或运算符

 1 /*实现两个变量的交换*/
2 //方式一:采用第三方变量
3 //方式二:巧用位异或运算符
4 int a=0; //
5 int b=10; //
6 //方式一:
7 int temp = 0;
8 temp = a;
9 a = b;
10 b = temp;
11 //方式二:
12 a = a^b;     //a=1010->10 使用异或操作符不仅节省了代码量,还可以让程序更加快速,更加专业,因为异或的底层是二进制的运算

   2.最有效率的方式计算出256乘以8和256除以16的结果
    256<<3 = 2048(二进制码右移3位补0),256>>4 = 16(二进制码左移4位补0)
     <<,>>是移位操作符,一个是右移,一个是左移。每向右移动一位都相当于是乘2,每向左移动一位都相当于是除2
  (6)三元运算符
    A:格式
      比较表达式?表达式1:表达式2;
    B:执行流程:
      首先计算比较表达式的值,看是true还是false。
      如果是true,表达式1就是结果。
      如果是false,表达式2就是结果。
        举例:c = a>b?a:b;  //如果 a > b ,则 c = a;否则 c = b;
  (7)运算符的优先级

优先级   描述        运算符
  1     括号          ()、[]
  2    正负号       +、-
  3    自增自减,非   ++、--、!
  4    乘,除,取余    *、/、%
  5    加、减       +、-
  6    移位运算      <<、>>
  7    大小关系      >、>=、<、<=
  8    相等关系       ==、!=
  9    按位与        &
  10    按位异或        ^
  11    按位或       |
  12    逻辑与       &&
  13    逻辑或       ||
  14    条件运算      ? :
  15    赋值运算     =、+=、-=、*=、/=、%=
  16    位赋值运算    &=、|=、<<=、>>=、>>>=
备注:如果在程序中,要改变运算顺序,可以使用()。在一些比较复杂的运算中,使用括号,能够提高程序的可读性。

2:键盘录入(后面再详细解释)
  (1)目的从键盘上灵活的录入我们的数据。
    使用步骤:A:导包
          import java.util.Scanner;
          位置:在默认包名的下方,class的上方
         B:创建对象
          Scanner sc = new Scanner(System.in);
         C:获取数据
          int x = sc.nextInt();

3:流程控制语句
  (1)顺序结构 从上往下,依次执行
  (2)选择结构 按照不同的选择,执行不同的代码
  (3)循环结构 做一些重复的代码

4:if语句
  (1)三种格式
    A:格式1
      if(比较表达式) {
        语句体;
      }
    执行流程:
      判断比较表达式的值,看是true还是false
      如果是true,就执行语句体
      如果是false,就不执行语句体

    B:格式2
      if(比较表达式) {
        语句体1;
      }else {
        语句体2;
      }
    执行流程:
      判断比较表达式的值,看是true还是false
      如果是true,就执行语句体1
      如果是false,就执行语句体2

    C:格式3
      if(比较表达式1) {
        语句体1;
      }else if(比较表达式2){
        语句体2;
      }
      ...  //这里表示可以嵌套多个else if语句
      else {
        语句体n+1;
      }
    执行流程:
      判断比较表达式1的值,看是true还是false
      如果是true,就执行语句体1
      如果是false,就继续判断比较表达式2的值,看是true还是false
      如果是true,就执行语句体2
      如果是false,就继续判断比较表达式3的值,看是true还是false
      ...
      如果都不满足,就执行语句体n+1
  (2)注意事项
    A:比较表达式无论简单还是复杂,结果是boolean类型
    B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。
      建议:一般不要省略。
    C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号(成对出现)。
    D:else后面如果没有if,是不会出现比较表达式的。
    E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
  (3)三元运算符和if语句第二种格式的关系
    所有的三元运算符能够实现的,if语句的第二种格式都能实现。

if (a > b ){
c = a;
}else{
c = b;
}
//等价的三元表达式
c = a>b?a:b;  //如果 a > b ,则 c = a;否则 c = b;

5.switch语句
  (1)格式:
    switch(表达式) {
      case 值1:
        语句体1;
      break;
      case 值2:
        语句体2;
      break;
      ...
      default:
        语句体n+1;
      break;
    }
    格式解释说明:
      switch:说明这是switch语句。
      表达式:可以是byte,short,int,char(都可以强转为int)
      JDK5以后可以是枚举
      JDK7以后可以是字符串
      case:后面的值就是要和表达式进行比较的值
      break:表示程序到这里中断,跳出switch语句
      default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else
  (2)应注意的问题
    switch语句的表达式可以是byte,不可以是long,JDK7之后可以是String。
  (3)执行流程:
    A:首先计算表达式的值
    B:和每一个case进行匹配,如果有就执行对应的语句体,执行到break就结束。
    C:如果没有匹配,就执行default的语句体n+1。
  (4)注意事项:
    A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    B:default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
    特殊情况:
      执行到switch语句之前,case就可以把值确定。
    C:break可以省略,但是如果break省略了,程序就不会跳出switch,会按照原来的顺序继续执行,直到跳出。这个现象叫做case穿透。   
    D:default的位置不一定要在最后,但是它一定是在最后执行。
    E:switch语句的结束条件
      a:遇到break就结束了
      b:执行到末尾就结束了
  (5)if语句和switch语句各自的场景
    A:if
      针对boolean类型的判断
      针对一个范围的判断
      针对几个常量的判断
    B:switch
      针对几个常量的判断

6.循环语句
  (1)有三种:for,while,do...while,foreach(增强for)
  (2)for循环语句
    A:格式
      for(初始化语句;判断条件语句;控制条件语句){
        循环体语句;
      }
  A.执行流程:
    a:执行初始化语句
    b:执行判断条件语句
      如果这里是true,就继续
      如果这里是false,循环就结束
    c:执行循环体语句
    d:执行控制条件语句
    e:回到b
  B.注意事项
    a:判断条件语句无论简单还是复杂,结果是boolean类型
    b:循环体语句如果是一条,可以省略大括号,但是不建议
    c:有分号就没有左大括号,有左大括号就没有分号

  (3)while循环
    A:基本格式
      while(判断条件语句) {
        循环体语句;
      }
    扩展格式:
      初始化语句;
      while(判断条件语句){
        循环体语句;
        控制条件语句;
      }
      通过查看这个格式,说明while循环可以和for循环等价转换。
    B:for和while的区别
      a:使用上的区别
        for语句的控制条件变量,在循环结束后不能在使用(作用域)。
        而while的可以继续使用。
      b:理解上的区别
        for适合于一个范围的判断
        while适合次数不明确的
  (4)do...while循环
    A:基本格式
      do {
        循环体语句;
      }while(判断条件语句);
    扩展格式:
      初始化语句;
      do {
        循环体语句;
        控制条件语句;
      }while(判断条件语句);
      通过查看格式,说明三种循环的格式可以相互替换的。

    B:三种循环的区别
      a:do...while循环至少执行一次循环体
      b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体
  (5)foreach循环(其实叫做:增强for)
     格式:for (int[] arr : array) {
          //遍历数组
        }

      注意:Java中没有foreach循环,foreach循环其他的语言中的名称,但是Java中的增强for的本质是跟foreach循环一样的,这个循环一般是用来实现遍历操作。
  (6)循环使用的注意事项(死循环)
    A:一定要注意修改控制条件,否则容易出现死循环。
    B:最简单的死循环格式
      a:while( true ) { ... }
      b:for( ; ; ) { ... }

7.控制跳转语句
  (1)break:中断的意思
    A:用在循环和switch语句中,离开此应用场景无意义。
    B:作用
      a:跳出单层循环
      b:跳出多层循环,需要标签语句的配合
  (2)continue:继续
    A:用在循环中,离开此应用场景无意义。
    B:作用
      a:跳出单层循环的一次,可以继续下一次

//控制台输出7次:Hello Java
1 for(int x=1; x <= 10; x++) {
if(x%3 == 0) {
continue;
}
System.out.println("Hello Java");
}

  (3)return:返回
    A:用于结束方法的,并返回某个值。
    B:一旦遇到return,程序就不会在继续往后执行。

Java基础系列--02_运算符和程序的语句的更多相关文章

  1. java基础59 JavaScript运算符与控制流程语句(网页知识)

    1.JavaScript运算符 1.1.加减乘除法 加法:+(加法,连接符,正数)          true是1,false是0    减法:-    乘法:*    除法:/ 1.2.比较运算符 ...

  2. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  3. 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!

    目录 目录 string基础 Java String 类 创建字符串 StringDemo.java 文件代码: String基本用法 创建String对象的常用方法 String中常用的方法,用法如 ...

  4. Java基础系列-二进制操作

    原创文章,转载请标注出处:<Java基础系列-二进制操作> 概述 Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速. Java二进制表示法 首先了解下二进制,二进制是相对十进 ...

  5. 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理

    目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...

  6. 夯实Java基础系列5:Java文件和Java包结构

    目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...

  7. 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!

    目录 抽象类介绍 为什么要用抽象类 一个抽象类小故事 一个抽象类小游戏 接口介绍 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的使用: 接口最佳实践:设计模式中的工厂模式 接 ...

  8. 夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...

  9. 夯实Java基础系列9:深入理解Class类和Object类

    目录 Java中Class类及用法 Class类原理 如何获得一个Class类对象 使用Class类的对象来生成目标类的实例 Object类 类构造器public Object(); register ...

随机推荐

  1. 学习ELk之----02. Elastic Search操作入门

    我们将使用Postman来进行日志写入操作.Postman的下载地址,你可以Google一下. 1. 在上一节中,我们启动完成ELK的Docker后,可以在浏览器中打开:http://192.168. ...

  2. PXE安装windows系统,pxe-e55:ProxyDhcp service did not reply to request on port 4011

    这个pxe-e55" 错误表示 pxe 客户端已向端口4011上的代理 dhcp 服务器发送请求, 但未收到答复.似乎只有在dhcp 服务器上设置了 dhcp 类标识符选项 #60, 但同一 ...

  3. 解决 VS2019 打开 edmx 文件时没有 Diagram 视图的 Bug

    问题描述 安装 VS 2019 (版本:16.0.2)后,发现更新选项中已经没有 “Entity Framework 6.X 工具” 了,打开 .edmx 文件时,呈现的视图是 xml 视图. 解决方 ...

  4. Mysql中concat()、concat_ws()和 group_concat()的用法

    一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...

  5. WireShark捕获HTTPS

    firefox,chrome会将 TLS 会话中使用的对称密钥保存在外部文件中. 1.建立环境变量 linux,mac 使用export建立变量:export SSLKEYLOGFILE=/tmp/s ...

  6. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

  7. ansible copy 模块的使用

    copy copy 模块是将 ansible 管理主机上的文件拷贝上远程主机中,与 fetch 相反,如果目标路径不存在,则自动创建,如果 src 的目录带“/” 则复制该目录下的所有东西,如果 sr ...

  8. Python学习曲线

    经历长达近一个月的资源筛选过程终于结束,总共1.5T百度网盘的资源经过:去重.筛选.整理.归档之后一份粗略的Python学习曲线资源已经成型,虽然中间经历了很多坎坷,不过最终还是完成,猪哥也是第一时间 ...

  9. Vue.js-02:第二章 - 常见的指令的使用

    一.前言 在上一章中,我们了解了一些在使用 Vue 进行开发中经常会遇到的基础概念,与传统的前端开发不同,Vue 可以使我们不必再使用 JavaScript 去操作 DOM 元素(还是可以用,但是极度 ...

  10. 轻量级数据库Sqlite的使用

    SqLite是什么? SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置. 就像 ...