Java 变量与运算符

初识变量

  • 内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
  • 变量的构成包含三个要素:数据类型变量名存储的值
  • Java 中变量声明的格式:数据类型 变量名 = 变量值

变量的数据类型

Java中变量的数据类型分为两大类:

  • 基本数据类型 :包括 整数类型浮点数类型字符类型布尔类型
  • 引用数据类型 :包括数组接口枚举注解记录

基本数据类型转换规则

在Java程序中,不同的基本数据类型(只有7种,不包含 boolean 类型)变量的值经常需要进行相互转换

转换的方式有两种:自动类型提升强制类型转换

自动类型提升

规则:将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型

基本数据类型的转换规则如图所示:

强制类型转换

规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型

自动类型提升是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行

转换格式:数据类型1 变量名 = (数据类型1)被强转数据值

基本数据类型与 String 的运算

  1. 任意八种基本数据类型的数据与 String 类型只能进行连接 + 运算,且结果一定也是 String 类型
  2. String 类型不能通过强制类型 () 转换为其他的类型

运算符

运算符的分类:

  • 按照功能分为:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda 运算符

    分类 运算符
    算术运算符(7个) +、-、*、/、%、++、--
    赋值运算符(12个) =、+=、-=、*=、/=、%=、>>=、<<=、>>>=、&=、|=、^=等
    比较(或关系)运算符(6个) >、>=、<、<=、==、!=
    逻辑运算符(6个) &、|、^、!、&&、||
    位运算符(7个) &、|、^、~、<<、>>、>>>
    条件运算符(1个) (条件表达式)?结果1:结果2
    Lambda运算符(1个) ->
  • 按照操作数个数分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符 (三目运算符)

    分类 运算符
    一元运算符(单目运算符) 正号(+)、负号(-)、++、--、!、~
    二元运算符(双目运算符) 除了一元和三元运算符剩下的都是二元运算符
    三元运算符 (三目运算符) (条件表达式)?结果1:结果2

算术运算符

  • + 号两种用法
    • 第一种:对于 + 两边都是数值的话,+ 就是加法的意思
    • 第二种:对于 + 两边至少有一边是字符串的话,+ 就是拼接的意思

比较运算符

  • instanceof 后面在面向对象具体学习

逻辑运算符

  • 区分"&"和"&&":

    • 相同点:如果符号左边是true,则二者都执行符号右边的操作
    • 不同点:
      • & : 如果符号左边是false,则继续执行符号右边的操作
      • && :如果符号左边是false,则不再继续执行符号右边的操作

    建议:开发中,推荐使用 &&

  • 区分"|"和"||":

    • 相同点:如果符号左边是false,则二者都执行符号右边的操作
    • 不同点:
      • | : 如果符号左边是true,则继续执行符号右边的操作
      • || :如果符号左边是true,则不再继续执行符号右边的操作

    建议:开发中,推荐使用 ||

条件运算符

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

  • 与if-else的转换关系
    凡是可以使用条件运算符的地方,都可以改写为if-else结构
    开发中,如果既可以使用条件运算符,又可以使用if-else,推荐使用条件运算符。因为执行效率稍高
相关推荐
南宫生1 分钟前
力扣-数据结构-1【算法学习day.72】
java·数据结构·学习·算法·leetcode
666和7776 分钟前
C#的单元测试
开发语言·单元测试·c#
小王爱吃月亮糖12 分钟前
QT开发【常用控件1】-Layouts & Spacers
开发语言·前端·c++·qt·visual studio
aworkholic25 分钟前
opencv sdk for java中提示无stiching模块接口的问题
java·c++·opencv·jni·opencv4android·stiching
字节程序员30 分钟前
四种自动化测试模型实例及优缺点详解
开发语言·javascript·ecmascript·集成测试·压力测试
程序员老冯头30 分钟前
第十六章 C++ 字符串
开发语言·c++
爱学习的白杨树30 分钟前
什么是MVCC?
java·服务器·数据库
灵槐梦1 小时前
【速成51单片机】2.点亮LED
c语言·开发语言·经验分享·笔记·单片机·51单片机
想睡觉 . 我也想睡觉 .1 小时前
【C++算法】1.【模板】前缀和
开发语言·c++·算法
it噩梦1 小时前
深度分析 es multi_match 中most_fields、best_fields、cross_fields区别
java·elasticsearch