首页 > 其他分享 >m1_day4

m1_day4

时间:2024-05-10 23:19:10浏览次数:25  
标签:变量 .. day4 运算符 000 m1 println out

课程内容:
  • Java中的运算符

  • Java中的变量


Java中的运算符:高 -》 低
  • [+ - * / %]

    • +:当+遇到String类型的时候 不再表示算数加法 而是表示追加连接

      • 任何一个数据类型想要变成String +""

      • int x = 45;

      • String y = x+"";

    • *:当心数值超出int类型最大边界 注意使用long类型

    • /:整数 除以 整数 结果一定是整数

    • %:取模运算符 求余数 最终结果的符号位取决于参与运算的第一个数的符号

  • += -= *= /= %=....

    • 优势:他们可以保证运算符的左边的数据类型不发生改变 -》 其实底层已经发生隐式的强转

      面试题:
      short x = 1;
      x = x + 1;//short = int
      System.out.println(x);//报错 损失精度

      short y = 1;
      y += 1;//y = (short)(y + 1);
      System.out.println(y);//2
  • ++ --[自增自减运算符]

    • [a:取值 b:运算 x++:ab ++x:ba]

  • [> < >= <= ! = != ==]

    • [> < >= <=]结果都是boolean类型的判断句 -》 true/false

    • !:非 !boolean !true = false !false = true

    • !=:判断左右两边的值是否不相等

      • System.out.println(45 != 66);//true

    • ==:判断左右两边的值是否相等

      • System.out.println(gender == '女');

    • =:赋值运算符 将右侧的值交给左侧的变量保管

      • int age = 45;

  • && || & | [逻辑运算符]

    • 面试题:&&和&之间的区别?

      相同点:&&和&都是逻辑的与 相当于汉文中的并且的意思 需要前后两个条件同时成立才能执行

      不同点:&&叫做逻辑的短路与 有短路特性
      短路特性:如果通过前面的条件可以得出最终结果的话 后面的条件直接舍弃不再判断

      18岁的女生 -> age == 18 && gender == '女'

      例子1如果晚上我有空的话 而且你们愿意 那么我请大家吃饭
      if(我有空 && 你们愿意){
      我请大家吃饭
      }
    • 面试题:||和|之间的区别?

      相同点:||和|都是逻辑的或 相当于汉文中或者的意思 需要前后一个条件成立就能执行
      不同点:||叫做逻辑的短路或 有短路特性
      例子:火车站买票 -》 出示证件
      身份证 || 驾驶证 || 户口本 || 护照...

      boolean && boolean
      true       判断
      false       短路

      boolean || boolean
      true       短路
      false     判断
  • & | ^ ~[按位[二进制]运算符]

    • 基础用法【了解】

      &:按位的与 要求上下二进制都是1才能写1  逢0写0
      System.out.println(9 & 5);//1
      9:8 + 1 = 000..0001001
      5:4 + 1 = 000..0000101 &
      000..0000001 -》 1
      |:按位的或 要求上下二进制只要有1就写1 逢1写1
      System.out.println(9 | 5);
      9:8 + 1 = 000..0001001
      5:4 + 1 = 000..0000101 |
      000..0001101 = 8 + 4 + 1 = 13

      ^:按位的异或 上下二进制不一样的时候才能写1
      System.out.println(9 ^ 5);
      9:8 + 1 = 000..0001001
      5:4 + 1 = 000..0000101 ^
      000..0001100 : 4 + 8 = 12

      ~:按位的取反 0-》1   1-》0
      10101010 ~
      01010101
    • 重点

      &:在某些情况下可以取代%
      当我们拿着一个正数 % 上2的n次方数的时候
      结果等价于
      我们拿着这个正数 & 上2的n次方数-1的结果
      27 %2 %4 %8 %16.... %2(n)
        1 3     3 11
      27 &1 &3 &7 &15.... &2(n)-1
      1 3     3     11

      ^:可以不借助第三块空间的方式交换两个的变量值
      int x = 45;
      int y = 40;
      int z = x;
      x = y;
      y = z;

      x = x ^ y;
      y = x ^ y;
      x = x ^ y;

      能够使用^交换的数据类型只有:
      boolean char byte short int long
  • [<< >> >>>]位[二进制]移运算符

    <<相当于乘以 >>相当于除以
    移动多少位相当于乘以/除以2的几次方数

    *2 *4 *8 *16.... *2(n)
    <<1 <<2 <<3 <<4.... <<n

    /2 /4 /8 /16.... /2(n)
    >>1 >>2 >>3 >>4.... >>n

    System.out.println(100 * 8);/、100+100+100+100
    System.out.println(100 << 3);//二进制

    >>和>>>之间的区别?
    >>叫做有符号右移 移动之后空缺的高位看原本的符号位
    01111010 >> 2
    00011110

    10001010 >> 3
    11110001
    >>>叫做无符号右移 移动之后空缺的高位直接补0
    01111010 >>> 2
    00011110

    10001010 >>> 3
    00010001
  • ? : [三目运算符 三元运算符]

    • boolean ? 2 : 3

    • 如果第一部分结果为true 那么执行第二部分

    • 如果第一部分结果为false 那么执行第三部分

总结

必学:
+ - * / %
++ --
> < >= <= ! = != ==
&& ||
选学【提高效率/简化代码 各种取代】
+= -= *= /= %=...    
&:取代% ^:交换两个变量的值
<<取代* >>:取代/
? : 取代if else

Java中的变量:
  • 面试题:Java中的变量分为哪几种变量?

    成员变量 实例变量 属性:定义在类体里面 方法体外面的变量
    局部变量 自动变量:定义在方法体里面的变量

    *:Java中没有全局变量的概念
  • 面试题: 成员变量和局部变量之间的区别?

    定义的位置不同
    成员变量:定义在类体里面 方法体外面
    局部变量:定义在方法体里面

    作用范围不同:
    成员变量:也叫属性 表示对象有什么 成员变量依赖于对象存 在 当我们new对象的时候 属性也会创建
    当对象消亡的时候 属性伴随着也会消亡
    局部变量:从定义的那一行开始 一直到所在的方法体执行结束 之前可以访问的 一旦所在的方法体执行结束 局部 变量消亡 依赖于方法存在 只有方法调用 代码走到 那一行才能创建 方法执行完 局部变量消亡

    默认值不同:
    成员变量:即使不赋值 也有默认值 默认值为什么看数据类型
    局部变量:没有默认值 要求使用之前必须先赋值

    基本数据类型的默认值:
    boolean char byte short int long float double
    false '\u0000'   0   0     0   0L   0.0F 0.0D

    引用数据类型的默认值:
    String
    null[空]
  • 成员变量和局部变量可以重名

    • 在成员变量和局部变量重名的时候 如果直接访问该变量默认是局部变量

    • 如果想要访问成员变量 需要在变量的前面加上this.

    • this:表示当前方法的调用者

标签:变量,..,day4,运算符,000,m1,println,out
From: https://www.cnblogs.com/zhaodenghui33/p/18185470

相关文章

  • day4
    课程内容:线程的概念引用多线程的原因?如何实现线程?如何控制线程?线程类其它常用方法线程的概念线程所在包:java.lang.Thread理解程序进程线程之间的区别:程序:保存在物理介质中的代码片段​进程:一旦程序运行起来就变成了操作系统当中的一个进程......
  • QBXT五一集训DAY4笔记
    \(Day\)\(4\)图论图论主要分为\(4\)个方面1.最短路2.二分图匹配3.生成树4.强连通(这个超纲了,不讲)在介绍完理论知识后,我们会逐一讨论它们图图是由点和边构成的边又分为有向边和无向边,因此图可以分为有向图和无向图无向图的度指的是一个点连了多少条边有向图的入度指的......
  • 【未整合】数学 day4.2
    博弈论Nim游戏对于\(n=2\),\(a_1=a_2\),后手可以“模仿”先手,使得后手必胜。对于\(a_1\nea_2\),先手可以让自己进入“模仿期”,使得先手必胜。结论:若\(\oplusa_i=0\),先手必败,否则必胜。很神奇的东西,证明需要群论知识。发现石子的合并满足上面四条性质,所以石子的合并就是异......
  • 【未整合】数学 day4
    微积分导数对于\(f(x)\),其在某一点的导数,就是取一个极小的\(\delta\),\(f'(x)=\lim\limits_{\delta\rightarrow0}\frac{f(x+\delta)-f(x)}{\delta}\)。、“微小变化的放大倍数”。对导数的直观理解,就是当变化量极其微小的时候,\(dx\)与\(dy\)的关系。当Δ极小时,导数相......
  • Multisim14--软件简介及安装教程(内含安装包)
    安装包见文章末尾 一、软件简介Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用Multisim交互式地搭建电路原......
  • cf gym101981e Eva and Euro coins
     20182019-acmicpc-asia-nanjing-regional-contest-en.pdf(codeforces.com) 这类字符串的能否从s状态到达t状态的题。还可以删除若干子串后然后比较。感觉是一种套路。 100↔111↔001011↔000↔110 01001↔10010可以移动 用栈,如果找到k个连续相同,然后栈删掉这k......
  • Mac(M1)配置基于ARM64的Tensorflow
    以下步骤最好先执行condaconfig--remove-keychannels 删除conda镜像源pipconfigunsetglobal.index-url 删除pip镜像源然后接下来的步骤最好挂上梯子。1.下载miniforge:从https://github.com/conda-forge/miniforge上找到arm64(AppleSilicon)版本进行下载,下一步下一步的......
  • 笔记:J1939协议之DM1
    目标:学习SAE1939-73中的DM1,尤其是多包故障的传输规则一、基本概念SAE1939-73即CAN总线J1939协议的应用层-诊断符号缩写的含义DM1诊断信息1,当前故障码DM2诊断信息2,历史故障码DM3诊断信息3,历史故障码的清除/复位DM4诊断信息4,停帧参量DM5诊断信息5,诊断准备就绪DM6诊断信......
  • BM1 反转链表
    开始刷数据结构了。1.递归importjava.util.*;/**publicclassListNode{*intval;*ListNodenext=null;*publicListNode(intval){*this.val=val;*}*}*/publicclassSolution{publicListNodeReverseList(ListNodehea......
  • 代码随想录算法训练营三刷day44 | 动态规划之 完全背包 518. 零钱兑换 II 377. 组合总
    三刷day44完全背包基础知识问题描述举个栗子518.零钱兑换II1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组377.组合总和Ⅳ1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp......