本周学习


Java语言基础:运算符【有所区别

算术运算符

+(3+2)   -   *   /   %(取余,模运算)   +(连接符)(3+‘‘2’’)

++  --

class VarDemo

{
//算术运算符
public static void main(String[] args)

{

int x=6370;
x=x/1000*1000;
System.out.println(x);

}

}

【必须是整数型】

连接符

class VarDemo

{
public static void main(String[] args)

{
int a=4,b=5;
System.out.println("a="+a+",b="+b);

}

}

比较运算符

只要是运算符,运算完毕一定有结果。比较运算符结果为true/false

逻辑运算符

用于连接两个布尔(boolean)类型的表达式

^:异或:和或有点不一样

true^true=false//除此之外都一模一样

两边结果相同是false

两边结果不同是true

一个数异或同一个数两次,结果还是这个数。

【面试题】

&&:
和&运算的结果是一样的。但是运算过程有点区别。

&:无论左边的运算结果是什么,右边都参与运算(6&3=2:110&011=010=2)

&&:当左边为false时,右边不参与运算

||:
和|运算的结果是一样的。但是运算过程有点区别。

|:无论左边的运算结果是什么,右边都参与运算

||:当左边为true时,右边不参与运算

位运算符

<<左移  >>右移  >>>无符号右移

3<<2//3往左移两位(32位,高位去掉2位,末尾补2个0):正数补0,负数补1

0000 0000 0000 0000 0000 0000 0000 00011=3

        

00 0000 0000 0000 0000 0000 0000 0001100=12:3*2(2)

(左移几位相当于乘以2的几次方)

(右移几位相当于除以2的几次幂)

>>右移>>>无符号右移      区别

>>>:无符号右移:数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。

练习:

计算最有效率:位运算

对于两个变量的值进行互换:①利用第三方变量(开发时使用,阅读性强)

             ②求和【a=a+b;b=a-b;a=a-b;】//这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换,数值会变化

             ③利用运算符^(面试使用)

              a=a^b;//a=3+5;a=8;

              b=a^b;//3+5-5=3;b=3;

              a=a^b;//3+5-3=5;a=5;

Java语言基础:三元运算符

格式

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

如果条件为true,运算后的结果为表达式一

如果条件为false,运算后的结果为表达式二

//获取两个整数中较大的整数

int a,b;

int max=a>b?a:b;

//获取三个整数中较大的整数

int q,p,o;

int temp=o>p?o:p;

int max2=temp>q?temp:q;

判断结构 if 语句

三种格式

1、

if(条件表达式)

{

  执行语句:

}

2、

if(条件表达式)

{

  执行语句:
}

else//否则

{

  执行语句:

}

3、

if(条件表达式)

{

  执行语句:

}

else if(条件表达式)

{

  执行语句:

}

三元运算符就是if else 语句简写形式

局部代码块//作用域

if(false);//加了;意义不一样了

{//局部代码块

  执行语句:

}

选择结构

switch语句

格式:

switch(表达式)

{

case 1:

  执行语句:

  break:

.

.

.

default:

  执行语句:

  break;

}

if和switch的应用

if:

1、对具体的值进行判断

2、对区间判断

3、对运算结果时boolean类型的表达式进行判断

switch:

1、对具体的值进行判断

2、值的个数通常是固定的

对于几个固定的值,建议使用switch语句,因为switch语句会将具体的答案都加载进内存

循环结构

while语句

while(条件表达式)

{
  执行语句:

}

for循环

for(初始化表达式; 循环条件表达式;循环后的操作表达式)【运算顺序】

      1      2 5 8        4 7

{

执行语句:(循环体)

          3 6 9

}

for和while的特点:

1、for和while可以互换

2、格式上的不同,在使用上有一点小区别。

  如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。

for(int y=1;u<5;y++)

{

System.out.println("y="+y);

}

System.out.println("y="+y);【运行错误,y已经被释放】【for和while的小差别】

}

循环结构的使用场景

当对某些代码执行很多次时,使用循环结构完成。

当对一个条件进行一次判断时,可以使用if语句。

当对一个条件进行多次判断时,可以使用while语句。

注意:

  在使用循环时,一定要明确哪些语句需要参与循环,哪些不需要。

  循环通常情况下,需要定义条件,需要控制次数。

制表符

\n:回车

\t:制表符

\b:退格

\r:按下回车键

Windows系统中回车符其实是由两个符号组成的 \r \n

linux中回车符是 \n

其他流程控制语句

break(跳出),continue(继续)

break:应用范围:选择结构和循环结构

continue语句:应用于循环结构

注:

1、这两个语句离开应用范围,存在是没有意义的

2、这个两个语句单独存在下面都不可以有语句,因为执行不到

3、continue语句是解释本次循环继续下次循环

4、标号的出现,可以让这两个语句作用于指定范围

随机推荐

  1. SpringCloudAlibaba框架学习

    遇到问题找了各种办法都没有解决,就reload maven,再不行就重启idea,重启电脑.(有奇效,我好几次就这么解决的,可能是我电脑配置太拉了) 注册中心 - Nacos 配置文件优先级:本地配置 ...

  2. SpringBoot3集成Kafka

    目录 一.简介 二.环境搭建 1.Kafka部署 2.Kafka测试 3.可视化工具 三.工程搭建 1.工程结构 2.依赖管理 3.配置文件 四.基础用法 1.消息生产 2.消息消费 五.参考源码 标 ...

  3. Linux下后台运行Java程序

    1.背景描述 用Java编写了一个程序(可执行的jar),需要在Linux中启动并持续运行 1.1.直接执行程序 直接执行程序后,在程序执行期间,无法在当前会话中再执行其他操作 1.2.直接执行程序后 ...

  4. 每日一库:fsnotify简介

    fsnotify是一个用Go编写的文件系统通知库.它提供了一种观察文件系统变化的机制,例如文件的创建.修改.删除.重命名和权限修改.它使用特定平台的事件通知API,例如Linux上的inotify,m ...

  5. 分布式测试插件 pytest-xdist 使用详解

    使用背景: 大型测试套件:当你的测试套件非常庞大,包含了大量的测试用例时,pytest-xdist可以通过并行执行来加速整体的测试过程.它利用多个进程或计算机的计算资源,可以显著减少测试执行的时间. ...

  6. git clone时报错:Permission denied

    一.问题简述: 执行git clone git@github.com:T-Better/Soft_test.git时报错:\302\226git@github.com: Permission deni ...

  7. Nomad 系列-Nomad+Traefik+Tailscale 集成实现零信任安全

    系列文章 Nomad 系列文章 Traefik 系列文章 Tailscale 系列文章 概述 终于到了令人启动的环节了:Nomad+Traefik+Tailscale 集成实现零信任安全. 在这里: ...

  8. Spring Cloud LoadBalancer原理讲解及自定义负载均衡器

    Spring Cloud LoadBalancer原理 LoadBalancerClient作为负载均衡客户端,用于进行负载均衡逻辑,从服务列表中选择出一个服务地址进行调用,其内部方法为下图显示: ( ...

  9. 【译】ASP.NET Core在 .NET Core 3.1 Preview 1中的更新

    .NET Core 3.1 Preview 1现在可用.此版本主要侧重于错误修复,但同时也包含一些新功能. 这是此版本的ASP.NET Core的新增功能: 对Razor components的部分类 ...

  10. ModbusTCP 转 Profinet 主站网关控制汇川伺服驱动器配置案例

    ModbusTCP 转 Profinet 主站网关控制汇川伺服驱动器配置案例 ModbusTCP Client 通过 ModbusTCP 控制 Profinet 接口设备,Profinet 接口设备接 ...