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

Java 基础|变量、数据类型、类型转换、表达式与运算符

一、变量

(1)概念

变量是计算机内存中的一块空间,是程序中存储数据的基本单元。

(2)变量的组成部分

  • 数据类型:决定变量在内存中的空间大小
  • 变量名:用于访问变量对应的内存空间
  • 数据:变量里面存储的实际值

(3)变量的定义

  1. 声明:数据类型 变量名;
int a;
  1. 赋值:变量名 = 数据;
a = 5;

(4)变量其他定义方式

  1. 声明同时赋值
数据类型 变量名 = 数据;
  1. 同时定义多个同类型变量
数据类型 变量名1,变量名2,变量3=值,变量4;

二、数据类型

存储单位换算 位 (bit /b),字节 (Byte / B) 1B = 8b 1KB=1024B、1MB=1024KB、1GB=1024MB、1TB=1024GB

Java 数据类型分为两大类:基本数据类型引用数据类型

1. 基本数据类型(原始数据类型,共 8 种)

(1) 整数类型

表格

类型字节取值范围注意事项
byte1B-128 ~ 127
short2B-32768 ~ 32767
int4B-2147483648 ~ 2147483647整数默认字面值为 int
long8B-9223372036854775808 ~ 9223372036854775807long 字面值末尾建议加大写L,区分数字 1

字面值:程序中直接书写出来的数据。 Java 是强类型语言

(2) 小数(浮点)类型

表格

类型字节说明注意事项
float4B单精度字面值后面必须加F/f
double8B双精度字面值 D/d 可省略,开发中优先使用 double

float、double 使用科学计数法,是近似存储,非精确存储

📌面试题:8 字节 long 和 4 字节 float 哪个存储的数据范围更大? 答案:float 范围更大,底层采用科学计数法存储。

(3) 字符类型 char
  • 占用:2 字节,基于 Unicode(万国码)编码
  • 三种字面值写法
//① 单引号包裹单个字符【开发重点】 char c1 = 'A'; //② 直接写整数,对应Unicode编码值 char c2 = 65; //代表字符 'A' //③ 十六进制unicode形式【了解】 char c3 = '\u0041'; //代表字符 'A'

转义字符\,改变原有字符含义

\' //单引号 \" //双引号 \n //换行 \t //Tab缩进 \\ //反斜杠
(4) 布尔类型 boolean
  • 只有两个字面值:truefalse
  • ⚠️区别 C 语言,Java 不允许使用 0/1 表示真假。

2. 引用数据类型(对象类型)

包含:数组、类、接口等。

String字符串属于引用数据类型

  • 字面值使用双引号包裹,可以是一个或多个字符
String str = "ada";

📌开发小案例:个人信息对应数据类型

表格

信息推荐数据类型
姓名String
年龄int
成绩double
性别char / String
地址String
电话号码String(避免开头 0 丢失)
身份证号String(存在字母 X)

三、数据类型提升

1. 自动类型提升

条件:类型互相兼容;小范围类型赋值给大范围类型,自动转换

提升顺序:

byte --> short --> int --> long --> float --> double char --> int --> long --> float --> double

2. 强制类型转换

条件:类型互相兼容;大范围类型赋值给小范围类型,需要手动强转

语法:

目标类型 变量名 = (目标类型) 源变量;

特点:

  1. 小数强制转整数:直接截断小数部分,只保留整数
  2. 大数据数值落在小类型范围内,数据可以完整保存
  3. boolean 不能参与任何类型转换,强制转换也不行

四、表达式

  1. 概念:由变量、字面值、运算符组成的式子,运算之后会产生一个结果。
  2. 表达式结果处理
  • 结果只用一次:直接写在使用位置;
  • 结果多次使用:存入变量保存。

表达式运算结果类型规则:

  1. 只要有 double 参与运算,结果就是 double
  2. 没有 double,有 float 参与,结果为 float
  3. 没有 double、float,有 long 参与,结果为 long
  4. 其余全部情况,结果都是int包含:byte+byte、byte+short、short+short、byte+int、int+int

📌面试题:分析下面代码能否编译通过

byte b=1; b = b + 1;

解析:编译报错。b+1运算时 byte 提升为 int,表达式结果是 int,int 不能直接赋值给 byte。

五、运算符

1. 算术运算符

+-*/%(取余 / 取模)

注意:boolean 不能参与算术运算 特殊规则:+只要任意一端是 String,则变成字符串拼接,最终结果为字符串。

2. 赋值运算符

普通赋值:=复合赋值:+=-=*=/=%=

⚠️重点:复合赋值运算符底层自带强制类型转换,不会遵循普通自动类型提升。

📌面试题:对比两段代码

//代码1 byte b=1; b = b + 1; //编译报错,b+1结果提升为int //代码2 byte b2=1; b2 += 1; //编译通过,底层等价 b2=(byte)(b2+1)

3. 一元运算符(自增自减 ++ /--)

  • a++先使用原值,变量再自增 1
int a=2; int c = a++; // c=2,a=3
  • ++a变量先自增 1,再使用新值
int a=2; int c = ++a; // a=3,c=3

开发建议:多数场景只做变量自身 + 1/-1,不接收表达式返回结果。

4. 关系运算符

==<<=>>=!=

关系运算结果一定是 boolean,成立为 true,不成立为 false,得到布尔表达式。

5. 逻辑运算符

&&短路与、||短路或&非短路与、|非短路或

逻辑运算符两边必须是布尔表达式。

  • &&短路与:左侧为false右侧代码不会执行,直接整体 false
  • &非短路与:无论左侧 true/false,左右全部执行
  • ||短路或:左侧为true,右侧不再执行
  • |非短路或:两边全部执行

📌面试:&&&的区别&&短路与:左侧结果为 false,直接确定整体结果 false,右侧代码不执行;&非短路与:无论左侧结果,左右两侧表达式都会完整执行。

6. 三元(三目)运算符

语法:

布尔表达式 ? 表达式1 : 表达式2

执行逻辑: 布尔表达式结果为true,执行表达式 1; 布尔表达式结果为false,执行表达式 2。

http://www.cnnetsun.cn/news/4228237.html

相关文章:

  • [光学原理与应用-549]:用光量子的三重底层特征(粒子性、波动性、随机性)阐述线性光学特征和非线性光学特征,以及介质自身的特征如何影响光量子与介质的相互作用,以及展现出宏观特征。
  • 代码里实际能看到的路径 + 注释里的设计意图
  • Kimi苹果版导出表格的终极解法:当“AI导出鸭”重新定义效率边界
  • ChatGPT的LaTeX生成PDF文件复制后数学公式乱码,怎样修改?苹果用户的底层逻辑与优雅解法
  • 操作教程丨WorkBuddy 接入企业数据MCP流程与应用示例
  • 【超详细】搞懂tar、tgz、zip、rar、7z归档压缩格式,理清跨平台踩坑根源
  • MySQL基础语法解析及其在Python爬虫中的应用
  • 上线千舟报修云前后,迈得医疗工业设备股份有限公司后勤工作发生了什么?
  • Vllm LINUX部署Qwen3.8-27B多模态支持视频图片模型全流程(8张L20卡)
  • 地面站软件常用功能及页面介绍(一)
  • `import win32api`是Python调用Windows系统原生API的前置操作,依托pywin32模块可以实现各类Windows底层功能开发
  • 【第10期】Docker 基础实战:镜像、容器、端口、卷和日志到底是什么
  • GDB 调试手册
  • 全文 - Isaac ROS 06 - Getting Started
  • 上线千舟报修云前后,贵州中建秀印高速公路有限公司后勤工作发生了什么?
  • 串口收发数据包
  • 2026 年 AI Agent 框架横评:10 大框架优缺点对比 + 选型指南
  • 具身智能之通用机器人RoboCat详解:一个能用少量示范快速学会新任务和新机器人的自我改进智能体
  • 电机模块注意事项
  • 随机前沿SFA结果解读:技术效率分布与前沿面估计
  • 2026年佛山桂城少儿美术培训机构哪家好
  • 前端:全景深度分析/前端岗位起源,以及“美国没有前端岗位”的真相
  • IMX6ULL MfgTool软件烧写系统
  • .NET 软件开发平台
  • Go命令工具全解:go build/run/test/fmt/mod
  • 二叉树的基本操作详解
  • 【RAG实战】LlamaIndex 深度集成:常用 Reader 全解析与自定义 Reader
  • 具身智能中融合TVA时空特征的VLA模型
  • 具身智能TVA-VLA分层规划提升长时序任务成功率
  • 面向具身智能的TVA-VLA增量学习防遗忘机制