当前位置: 首页 > news >正文

初识java——javaSE(2)--运算符与逻辑控制【求个关注】

文章目录

  • 一 运算符
    • 1.1 算术运算符
      • 当两个不同类型的值相加时:
      • / 运算符
      • %运算符
    • 1.2 关系运算符
    • 1.3 逻辑运算符
      • 短路:
      • 逻辑非
    • 1.4 位运算符
      • &
      • |
      • ^
        • 位运算符当作逻辑运算符中使用
      • ~
      • >>
      • <<
      • >>>
    • 1.5 赋值运算符
    • 1.6 三目运算符
  • 二 逻辑控制
    • if语句
    • switch语句
    • 对于switch语句与if语句的差异
    • while语句
      • break与continue
    • do while 与for 语句


一 运算符

1.1 算术运算符

算术运算符有以下几种:+ - * / %

当两个不同类型的值相加时:

当两个不同类型的值进行相加时,较小类型的值其类型会自动转换成较大类型。

代码:

 byte a = 2;int b = 5;int c  = a+b;System.out.println(c);

在这里插入图片描述

  byte b1 = 5;int i = 5;byte b2 = b1+i;System.out.println(b2);

因为变量b1与i相加,首先b1自动转换类型为int ,然后b1+i的值为int类型,赋给byte类型b2,没有强制类型转换操作符,所以报错!
在这里插入图片描述

/ 运算符

当除数为0时:

     int a = 10/0;System.out.println(a);

在这里插入图片描述
输出结果显示异常,其提示是因为/ by zero,即除以0的原因。

 整数与整数之间相除,结果取整,对于小数部分则丢弃
   int a = 5;byte b = 2 ;System.out.println(a/b);

在这里插入图片描述

  整数与浮点数相除,结果为小数
int a = 5;double d = 2.0;System.out.println(a/d);System.out.println(d/a);

在这里插入图片描述

%运算符

%运算符的右操作数亦不能为0
   int b = 8%0;System.out.println(b);

在这里插入图片描述

整数与整数之间的取模,结果依然为整数,为正整数还是负整数取决于操作数的符号
   int a = 5;int b = 2;int c = -2;System.out.println(a%b);System.out.println(a%c);//正数对负数取模int a2 = -5;System.out.println(a2%b);//负数对正数取模
 整数与浮点数之间的取模,结果为浮点数,为正数还是负数,亦取决于操作数的符号
    int a2 = 5;float f1 = 2.0f;System.out.println(a2%f1);

在这里插入图片描述

  浮点数与浮点数之间的取模结果依然是浮点数,结果的符号,取决于操作数的符号
      double d1 = -5.0;double d2 = 2.0;System.out.println(d1%d2);

在这里插入图片描述

1.2 关系运算符

关系运算符:  > , < , == , >= ,  <=,!=
关系运算符与操作数组成的表达式为关系表达式,关系表达式的结果是布尔类型,值有两种,true与false
因此关系表达式是布尔表达式的一种。

举例:

        int a = 10;int b = 5;boolean  b1=  a>b ;System.out.println(b1);

在这里插入图片描述

1.3 逻辑运算符

逻辑运算符有:&& 逻辑与  || 逻辑或   !逻辑非
//&&的逻辑是两边的布尔表达式的结果都为true,则此逻辑表达式的结果为true,否则结果为false。
  int a = 10;int b =5;boolean b1 = a>b&&10>0;System.out.println(b1);

在这里插入图片描述

 ||  逻辑或
此运算符的逻辑是,两边的布尔表达式的结果均为false,此逻辑表达式的结果才为false,否则结果为true
   int a = 10;int b =5;boolean b1 = a>b||10<0;System.out.println(b1);

在这里插入图片描述

短路:

在java中的短路与c语言中的短路是一样的,这里再系统阐述一下:

 对于逻辑与 与 逻辑或 操作符的特性//提出了短路的思想//对于逻辑与操作符 ,如果左边的布尔表达式的结果为false,则此逻辑表达式的结果一定为false,所以右边的布尔表达式就不需要再//计算了,也不会再计算//这样是为了节省资源,减少不必要的执行
    int a =10;int b =5;//    boolean b2 = 10/0>5;   //这样会报警告boolean b1 =  a<b&& 10/0>5;//这个算式不会,原因就在于后面的表达式根本就没有执行!System.out.println(b1);

在这里插入图片描述

   int a = 6;int b = 4;boolean b1 = a>b|| 10/0>5;System.out.println(b1); //此时不会报警告,因为第一个布尔表达式值为true,所以第二个布尔表达式不会执行//也就不会报警告

在这里插入图片描述

逻辑非

此运算符的作用是用于改变布尔表达式的值,如果是false,则变为true,如果是true,结果是false
  System.out.println(!false);System.out.println(!true);System.out.println(! (10>0));

在这里插入图片描述

1.4 位运算符

 位操作符& 按位与|  按位或^  按位异或~  按位取反<<   左移二进制位>>   右移二进制位>>>  无符号右移动二进制位

&

&  按位与//   按位与的操作数有两个,针对的是操作数的二进制位//  运算规则为,如果两个操作数对应的二进制位均为1,则结果对应的位为1,否则为0
  byte a = 2;byte b = 3;//2 的二进制位为 ://0000 0010// 3 的二进制位为://0000 0011//则两个数的按位与结果为://0000 0010         转换为十进制,结果为2System.out.println(a&b);

在这里插入图片描述

 //针对按位与的特性,可以得出两个结论//一个数 按位与 其本身,结果还是其本身// 一个数 按位与 0 ,结果还是0  ;

|

//  |按位或//按位或的操作数有两个// 其运算规则为:如果两个操作数对应的二进制位均为0,则结果的该位为0,否则结果的该位为1
  byte a1 = 2;byte b2 = 3;// 0000 0010// 0000 0011//结果://0000 0011  ——转换为十进制,结果为3。System.out.println(a1|b2);

在这里插入图片描述

// 对于按位或的规则,我们可以得出结论://一个数按位或其本身,结果还是其本身

^

//     ^ 按位异或   按位异或也是二进制运算符,其操作数有两个
//   其运算规则是,将两个操作数对应的二进制位进行比较,如果相同,则结果中该位为0,不同该位为1
   byte a1  = 3;byte b1 = 5;// 3 的二进制:0000 0011// 5 的二进制:0000 0101//3^5 的结果: 0000 0110 ——转换为十进制为6System.out.println(a1^b1);

在这里插入图片描述

    // 一个数 按位异或 其本身,则结果为0// 一个数 按位异或  0,则结果为其本身
位运算符当作逻辑运算符中使用
    //1  按位与可当作逻辑与操作符,二者的差别在于前者没有短路
    System.out.println(3>0&4>0);System.out.println(3>0&10/0>1);

在这里插入图片描述

  // 按位或可当作逻辑或操作符,二者差别在于前者没有短路
 System.out.println(3<0|5>3);System.out.println(3>0|10/0>2);

在这里插入图片描述

~

  //按位取反的操作数与其他位运算符不同,操作数只有1个//其运算规则是将一个数的二进制位全部取反,即将1变成0,将0变成1
byte a3 = 5;// 0000 0101//按位取反的结果:~5:// 1111 1010 -- 这是补码// 1000 0101    — 转换成原码// 结果为 - 6System.out.println(~a3);

在这里插入图片描述

>>

//>> 操作符//>>运算符的操作数有两个,运算规则是将左操作数的各个二进制位向右移动右操作数值位,// 符号位由原来符号补上
    byte a = 2;// 0000 0010//a>>1// 0 0000 001   //0补上原符号位//0000 0001System.out.println(a>>1);byte a2 = - 3;//1000 0011 --原码//1111 1101 --补码//右移一位,符号位不变//1  1111  110//1111 1110--补码//1000 0010-- 原码  结果为-2System.out.println(a2>>1);

在这里插入图片描述

<<

// << 运算符的操作数亦有两个,运算规则是将左操作数的各个二进制位向左移动右操作数数值位,空出的位补0
    byte a1 = 3;/*0000 0011a1<< 1000 0011 00000 0110 ————转化为十进制为:6*/System.out.println(a1<<1);byte b1 = -3;//  1000 0011-- 原码//  1111 1101 -- 补码//    111 1101 0  ---左移一位补0//  1111 1010  --补码//  1000 0110  结果为-6System.out.println(b1<<1);

在这里插入图片描述

>>>

//  >>> 此运算符与>>运算符的不同之处在于>>>运算符是无符号右移,即补符号位时,只补0
 byte a1 = -3;// 1000 0011 -----原码// 1111 1101 ------补码//a1>>>1 无符号右移一位// 0 1111 110//0111 1110 结果为:126System.out.println(a1>>>1);  System.out.println(Integer.MAX_VALUE);

在这里插入图片描述

     //出现这个结果说明,变量在无符号右移时,自动转化成int类型

1.5 赋值运算符

 = ,+=,-= ,/= ,%= 
//    赋值运算符// 赋值运算符 =byte a = 5;  //意为将5赋值给变量a// +=a+=5;//a+=5,是一种简写,展开为://a = a+5 ;// -=a-=3;//同理,展开为:a =a-3;//*=a*=3;//同上,展开为:a=a*3;// /=a/=2;//同上,展开为:a=a/2;//%=a%=2;//同上,展开为:a = a%2;

1.6 三目运算符

 布尔表达式  ?表达式:表达式
三目运算符共有三个操作数,其运算规则是先判断?之前的布尔表达式的值为true还是false,如果为true ,
则执行 :之前的表达式,如果为false,则执行 :之后的表达式。
//  三目运算符int c=  5>0?3:2;System.out.println(c);

在这里插入图片描述

二 逻辑控制

java中逻辑控制与c语言中的一样,包括:顺序执行(顺序执行代码),
选择执行(if,switch语句),循环执行(while,for,do while)

if语句

对于if语句,java与c语言不同之处即在于java中if语句的判断条件必须是布尔表达式(单纯的一个布尔值也是布尔表达式),而c语言中没有这个限制。

public class test {public static void main(String[] args) {int a = 5;int b = 4;if(a>b){System.out.println("haha");}else {System.out.println("hehe");}boolean b1 = true;if(b1) {System.out.println("xixi");}/* if(a){System.out.println("luelue");}*/}

在这里插入图片描述
在这里插入图片描述
而在c语言中数字可以作为if语句的判断条件。这体现了java语言的严谨之处

switch语句

switch也是一种选择语句,根据()中值,选择对应的case,执行相应的语句。

   int a = 1;switch (a){case 1 :System.out.println(1);break;case 2:System.out.println(2);break;case 3:System.out.println(3);break;default:System.out.println("haha");}
上面的基本功能是与c语言一样的地方,与c语言不一样的地方在于:
switch语句()中允许的参数类型。

首先float类型不允许作为()中的参数类型

在这里插入图片描述
其次,double也不可以
在这里插入图片描述
long 类型也不可以
在这里插入图片描述
boolean 类型也不可以
在这里插入图片描述
上面的这四种类型不可以作为switch语句的参数
下面是可以作为参数的类型:
在这里插入图片描述
有些我们并没有学到,这里拿String类型举例:

String s1 = "haha";switch (s1){case "1" :System.out.println(1);break;case "2":System.out.println(2);break;case "3":System.out.println(3);break;default:System.out.println("haha");}

在这里插入图片描述
要注意,在java中switch语句的参数不可以是表达式,而在c语言中则可以
java:
在这里插入图片描述
c语言:
在这里插入图片描述

对于switch语句与if语句的差异

(1)switch语句不能使用复杂的判断条件,而if可以
在这里插入图片描述
不过在c语言中可以使用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main(){int a = 10;int b = 3;switch (a > 2&& b<5) {case 1:printf("1");break;case 2:printf("2");break;case 3:printf("3");break;default:printf("haha\n");}
}

在这里插入图片描述
(2)switch语句可以嵌套,但是非常难看,代码的可读性较差

while语句

while语句与c语言中的区别在于其判断条件必须是布尔表达式,
当布尔表达式只是一个单纯的布尔值时,就会陷入死循环
int a = 3;
while (a<10){System.out.println(a);a++;
}

在这里插入图片描述

break与continue

在java中的break与continue的作用与c语言中的作用是相同的,这里再复习一下这两个语句的功能

break

break语句的作用是跳出当前的循环(即如果是多层嵌套循环的话,只跳出当前的一层)

   for(int i =0;i<2;i++){for(int j = 0;j<10;j++){if(j==3){break;}System.out.println(j);}}

在这里插入图片描述
此例中,当j==3时,执行break语句,跳出最内层循环,然后继续执行外层循环,所以会出现这个结果

continue

continue语句的作用是停止本次循环,而进入下一循环,注意不是跳出循环。

 for(int i =0;i<2;i++){for(int j = 0;j<10;j++){if(j==3){continue;}System.out.println(j);}}

在这里插入图片描述
在结果中我们看到并没有出现3,是因为j==3时,执行continue语句,进入下一循环,而不会指向打印3的语句。

do while 与for 语句

do while

do while语句的判断条件与while一样,必须是布尔表达式
它与while的区别在于while语句是根据判断条件的布尔值判断是否执行语句,而do while 的功能是先执行一遍语句,再根据判断条件判断是否继续执行。

do {System.out.println(3);
}
while (false);

在这里插入图片描述

for 语句

对于for语句,其判断条件可以是布尔表达式,也可以为空,当for语句的判断条件为空时,默认为恒为真。这会陷入死循环当中。

相关文章:

初识java——javaSE(2)--运算符与逻辑控制【求个关注】

文章目录 一 运算符1.1 算术运算符当两个不同类型的值相加时&#xff1a;/ 运算符%运算符 1.2 关系运算符1.3 逻辑运算符短路&#xff1a;逻辑非 1.4 位运算符&|^位运算符当作逻辑运算符中使用 ~>><<>>> 1.5 赋值运算符1.6 三目运算符 二 逻辑控制if语…...

JAVA前端快速入门基础_javascript入门(02)

写在前面:本文用于快速学会简易的JS&#xff0c;仅做扫盲和参考作用 1.JavaScript函数 什么是函数:执行特定任务的代码块 1.1定义&#xff1a; 使用function来进行定义(类似于python里面的def 或者java和c里面的void&#xff0c;int这些返回类型开头)。定义规则如下: func…...

【热门话题】ElementUI 快速入门指南

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 ElementUI 快速入门指南环境准备安装 ElementUI创建 Vue 项目安装 ElementUI 基…...

webpack4和webpack5区别4---自动清除打包目录

webpack4 自动清除打包目录 需要使用clean-webpack-plugin插件 const {CleanWebpackPlugin} require(clean-webpack-plugin); module.exports {plugins: [new CleanWebpackPlugin()} } webpack5 自动清除打包目录 module.exports {output: {clean: true} }...

npm许可证检查

node开发做项目&#xff0c;很少有人去纯手工打造&#xff0c;大多是采用一些开源框架&#xff0c;还会使用前人做好的轮子&#xff0c;所以咱们的项目文件里&#xff0c;除了自己编写的js文件&#xff0c;还会带有一些拿来主义的npm模块&#xff0c;从其他开源发布网站上下载的…...

利用AI大模型和Echarts 绘制知识图谱,实现文本信息提取和图数据库操作

引言 随着信息时代的到来&#xff0c;海量的文本数据成为了我们获取知识的重要来源。然而&#xff0c;如何从这些文本数据中提取出有用的信息&#xff0c;并将其以可视化的方式展示出来&#xff0c;一直是一个具有挑战性的问题。近年来&#xff0c;随着人工智能技术的发展&…...

Telegram电报+86手机接收验证码及账号解封方法

Telegram电报86手机无法接受验证码目前可用Telegram X获取&#xff0c;测试可用。获取验证码的前提是需要确保网络通畅 不要同一时段获取超过太多验证码&#xff0c;获取过多验证码将会很长一段时间收不到验证码&#xff0c;6小时最多获取2次验证码。 方法1&#xff1a;使用官…...

迅饶科技 X2Modbus 网关 AddUser 任意用户添加漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…...

基于YOLOv8+PyQt5复杂场景下船舶目标检测系统

1. 应用场景 复杂场景下船舶目标检测系统的应用场景包括&#xff1a; 港口管理和安全&#xff1a;监控港口区域&#xff0c;确保船舶安全地进出港口&#xff0c;预防相撞事故的发生。 海洋交通监控&#xff1a;实时追踪海上交通流&#xff0c;并识别违规或异常航行行为&#x…...

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 &#xff1a;一、Spring Security 介绍二、Spring Security 快速入门2.1 基础环境搭建 :① 创建Spring Boot 项目② 创建 html资源文件③ 编写Web控制层 2.2 开启安全管理效果测试 :④ 添加 spring-boot-starter-security 启动器⑤ 项目启动测试 三…...

力扣经典150题第五十五题:逆波兰表达式求值

目录 题目描述和要求示例解释解题思路算法实现复杂度分析测试和验证总结和拓展参考资料 题目描述和要求 给你一个字符串数组 tokens&#xff0c;表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式&#xff0c;并返回一个表示表达式值的整数。 注意&#xff1a; 有…...

C#队列(Queue)的基本使用

概述 在编程中&#xff0c;队列&#xff08;Queue&#xff09;是一种常见的数据结构&#xff0c;它遵循FIFO&#xff08;先进先出&#xff09;的原则。在C#中&#xff0c;.NET Framework提供了Queue<T>类&#xff0c;它位于System.Collections.Generic命名空间下&#x…...

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…...

Pandas入门篇(三)-------数据可视化篇3(seaborn篇)(pandas完结撒花!!!)

目录 概述一、语法二、常用单变量绘图1. 直方图&#xff08;histplot&#xff09;2. 核密度预估图&#xff08;kdeplot&#xff09;3. 计数柱状图&#xff08;countplot&#xff09; 三、常用多变量绘图1.散点图(1) scatterplot(2)regplot 散点图拟合回归线(3)jointplot 散点图…...

SpringBoot中阿里OSS简单使用

官方文档:Java跨域设置实现跨域访问_对象存储(OSS)-阿里云帮助中心 1.pom中引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> 如…...

websocket简介

服务端推送消息给浏览器 WebSocket 教程 - 阮一峰的网络日志...

Linux的shell外壳

Shell外壳 在计算机领域&#xff0c;“shell”&#xff08;外壳&#xff09;是指一种用户界面&#xff0c;提供了访问操作系统服务的方式。Shell 是用户与操作系统之间的桥梁&#xff0c;它解释并执行用户输入的命令。 Shell 的主要功能包括&#xff1a; 命令解释&#xff1a…...

支付宝支付流程

第一步前端&#xff1a;点击去结算&#xff0c;前端将商品的信息传递给后端&#xff0c;后端返回一个商品的订单号给到前端&#xff0c;前端将商品的订单号进行存储。 对应的前端代码&#xff1a;然后再跳转到支付页面 // 第一步 点击去结算 然后生成一个订单号 // 将选中的商…...

打招呼得不到回复,跟头像还有关系?

现在很多人有个想法,那就是觉得某些公司是不是为了某些目的才往出发的招聘信息啊,其实他们并不需要招聘新员工。 目录 已读不回? 头像很重要 选择自己的精修照片 已读不回? 很有这种可能,但你细心观察会发现,的确有很多大公司,...

【网络原理】HTTPS 的工作过程

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序&#xff08;万字博文&#xff09; 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制&#xff08;CRC算法、MD5算法&#xff09; 【网络…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...