献给小白的笔记day2

Java类型转换与运算符详解

献给小白的笔记day2

1.1 基本数据类型转换

自动类型转换(隐式类型转换)

  • 取值范围较小的数据类型转换为取值范围较大的数据类型
    取值范围校的数据类型可以自动转换为取值范围大的,隐式转换
  • 从取值范围小的数据类型转换为取值范围大的数据类型,可以自动提升,且隐式转换
  • 基本数据类型取值范围顺序
  • byte<short<int<long<float<double
  • char<int<long<float<double
  • 基本数据类型取值范围从小到大的顺序
    • byte < short < int < long < float < double
    • char < int < long < float < double

强制类型转换(显式类型转换)

  • 取值范围较大的数据类型转换为取值范围较小的数据类型
    显示转换,取值范围大的转换为小的,取值大的前面加上强制转换符号

  • 从取值范围大的数据类型转换为取值范围小的数据类

  • 必须使用强制转换,为显式转换,具体格式如下

  • 取值小数据类型 变量名=(取值小数据类型) 取值范围大的数据类型值;

  • 强制类型转换有可能出现精度受损,一般不推荐使用

  • 格式:

    取值范围较小的数据类型 变量名 = (取值范围较小的数据类型)取值范围较大的数据类型的数据值;
    

类型转换的注意事项:

因为jvm虚拟机默认整数类型的数据为int型,所以在byte和short初始化的时候,隐式默认的将初始化值进行对应初始化类型的强制转换,且byte和short及char类型的数据进行运算时,自动提升为int类型

boolean 不可以作为类型转换

byte和short在初始化取值范围内时,jvm自动给他做了一步强制类型转换,
因为java虚拟机运算时一般默认数据类型为int类型,byte,short,char只要参与运算,自动转换为int类型
boolean类型不可以作类型转换,如果byte和short初始化的值在取值范围内,jvm自动隐式强制转换,但若超过取值范围,编译不通过,若必须初始化,记得显式加强制转换

  • 因为在类型转换的时候,会出现精度的丢失,一般不推荐使用强制类型转换
  • byte 和 short 在其初始化值是其取值范围内的时候,JVM自动给其做一步强制类型转换
  • byte 、short、 char 这三种数据类型只要参与运算操作,直接提升成int类型
  • boolean类型不可以参与类型转换

1.2 运算符

  • 运算符:在程序中,用来连接常量或者变量的符号
  • 运算符:在程序中,用来连接常量或变量的符号
  • 表达式:在程序中,用运算符连接起来的式子
  • 表达式:在程序中.用运算符连接的式子
  • 分类:
    • 算术运算符±*/
    • 算术运算符:±*/
    • 赋值运算符+=-=*=/=%=
    • 赋值运算符:+=-=*=/=%=
    • 关系运算符
    • <><=>=!===
    • 关系运算符
    • 逻辑运算符&|^~&&||
    • &|!^&&||
    • 三元运算符表达式1关系运算符表达式2?1:2
    • 三元运算符 表达式1关系运算符表达式2?表达式1:表达式2
    • 位运算符
    • <<>>左右移位

算术运算符

  • 加法符号多种用途
  • 加号的多种用途,1 对有字符串出现的数据进行拼接 2 做运算加法使用
    • 加法
    • 连接:+号两边有任何一边出现了字符串,+号就不在是加法的意思了,而起到了连接的作用
  • 除号和取余号区别
  • 除号和取余号区别
  • /是两个数相除的商
  • %是两个数相除的余
    • / :两个数相除的商
    • %:两个数相除的余数
  • ++ –
  • +±-单独使用时,作用一样,一旦进行复合使用,前++是先自增后进行复合的运算,后++是先进行运算在自增
  • 前–是先自减后进行复合的运算,后–是先进行运算在自减
    • 单独使用:前++和后++ 结果是一样的
    • 复合使用:
      • ++在前:先自增,后运算
      • ++在后:先运算,后自增

赋值运算符

  • 基本赋值运算符:=
  • 基本赋值运算符 =
  • 扩展赋值运算符:
  • 将赋值运算符左边的数据和右边的数据运算操作,将最后的赋值给左边的变量
    • 将符号的左边的数据和右边的数据做运算操作,将最后的结果赋值给左边的变量
    • 在将最后的结果赋值给左边的变量时,隐含做了一步强制类型转换

关系运算符(比较运算符)

  • 关系表达式的结果一定是boolean
  • 关系运算符,表达式结果一定boolean型
  • 进行两个数据相等时,千万不要把==写成=
  • 在进行两个基本数据类型比较是否相等时,千万不要将==写成=

逻辑运算符

  • &(与,且):有false则false 有false就是false
  • &(与,且);youfalse则false,逻辑运算符两边都会被执行
  • |(或):有true则true 有true就是true
  • |(或):有true则true 两边的表达式都会被执行
  • ^(异或):相同为false,不同为true ^异或 相同就是false 不同就是true
  • ^(异或):两侧表达式相同则为false,不同则为true
  • !(非):非true则false,非false则true 单独使用,用在false前就变成true,用在true前就是false
  • !,此逻辑运算符单独使用,非true则false,非false则true
  • &&(双与,短路与)
    • &&和&结果是一样的,&&具有短路效果,当符号的前面为false的时候,符号后面不会被执行;& 无论前面的结果是什么,后面都会执行
    • && (短路与),与单&结果相同,但是短路与,一旦表达式1执行为false,就不再会执行表达式2,这样有利于提高效率
  • ||(双或,短路或)短路作用,前面为false时,后面不会被执行
    • ||和|结果是一样的,||具有短路效果,当符号的前面为true的时候,符号后面不会被执行;| 无论前面的结果是什么,后面都会执行
  • || (短路或),与单|结果相同,但是短路或,一旦表达式1执行为true,就不再会执行表达式2,这样有利于提高效率短路作用,前面为true时,后面不会被执行

三元运算符(三目运算符)

  • 格式

    数据类型 变量名 = 关系表达式? 结果1 : 结果2;
    ​```数据类型 变量名=关系表达式?结果1:结果2
    数据类型 变量名=表达式1 关系运算符 表达式2?结果1:结果2
    
  • 执行流程

  • 执行流程,关系运算符判断是false则执行结果2,true执行结果1

  • 先看关系表达式的值,是true还是false

  • 如果是true执行的是结果1,如果是false执行的是结果2
    先看关系表达式是true还是false,true执行结果1,false执行结果2

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值