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

[Java 基础]变量,装东西的盒子

Java 是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。变量必须先声明后使用。

在 Java 中,变量可以分为三类:

  • 局部变量(Local Variables):在方法或代码块中定义,只能在该范围内使用。
  • 成员变量(Instance Variables):属于某个对象,在类中定义,不需要手动初始化。
  • 类变量(静态变量)(Static Variables):使用 static 关键字修饰,属于类本身,所有对象共享。

如何声明变量?按照下面这种格式:

类型 变量名 =/变量

比如:

int a = 1;
boolean isBigHandsomeGuy = true;

在 Java 中,变量的数据类型分为两种,即基本数据类型和引用数据类型。

Java 数据类型概览:

数据类型分类数据范围默认值代码示例注意点
byte整数类型-128 到 1270byte b = 100;占 1 字节,适用于小范围整数,包装类型是 Byte
short整数类型-32,768 到 32,7670short s = 30000;占 2 字节,使用较少,包装类型是 Short
int整数类型-2^31 到 2^31-10int i = 100000;默认整数类型,占 4 字节,包装类型是 Integer
long整数类型-2^63 到 2^63-10Llong l = 10000000000L;需要 L后缀,占 8 字节,包装类型是 Long
float浮点类型约 ±3.4E-38 到 ±3.4E+380.0ffloat f = 3.14f;需要 f后缀,占 4 字节,精度有限,包装类型是 Float
double浮点类型约 ±1.7E-308 到 ±1.7E+3080.0ddouble d = 3.1415926;默认浮点类型,占 8 字节,精度较高,包装类型是 Double
char字符类型单个 Unicode 字符'\u0000'(空字符)char c = 'A';占 2 字节,可存储 Unicode 字符,包装类似是 Character
boolean布尔类型truefalsefalseboolean flag = true;占 1 字节,不能转换为整数,包装类型是 Boolean
String引用类型-nullString str = "Hello";不是基本数据类型,属于 class
数组引用类型-nullint[] arr = {1,2,3};数组长度不可变,默认 null

这里类型就好比是装东西的盒子,要学会根据不同的东西使用不同的类型(不同的东西装进适合的盒子中):

int age = 30; // 存储年龄
int numberOfStudents = 150; // 存储学生数量
double pi = 3.14159265359; // 存储圆周率
float temperature = 25.5f; // 存储温度
boolean isBigHandsomeGuy = true;

既然变量有类型,那不同的类型能不能互相转换?答案是能。

类型转换有两种方式,一种是自动转换,另一种是强制转换。见名知意,自动转换是自动的,不需要你显示的指明,强制转换不是自然的,需要你强制的指定。

分别举一个例子你就很清楚的知道了:

byte b = 1;
int c = b;
int b = 4;
byte c = (byte) b;

你可能比较好奇,什么情况下我要使用自动转换,什么情况下要使用强制转换呢?很好理解,如果两种类型兼容,并且是从小范围转为大范围,就能自动转换,否则就要手动转换。

有一点需要注意的是,强制类型转换可能会导致精度丢失(就好比你非要将大瓶子塞到小瓶子中,就把小瓶子塞爆了)。

double d = 9.99;
int num = (int) d;  // double 强制转换为 int,精度丢失
System.out.println(num);  // 输出 9

变量,在于变,如果不想让某个变量的值在程序运行过程中不会改变,可以使用 final 关键字声明它为常量

final double PI = 3.14159;

:::danger
常量一旦赋值,就不能修改,否则会编译错误。

:::

  1. 全部字母大写 (All Uppercase Letters): 常量名中的所有字母都应使用大写形式。
  2. 单词间使用下划线分隔 (Underscore Between Words): 如果常量名由多个单词组成,单词之间应使用下划线 _ 来连接。

比如:

final int MAX_LOGIN_ATTEMPTS = 5;
final double PI_VALUE = 3.14159;
final String DEFAULT_ERROR_MESSAGE = "An unknown error occurred.";
final long REFRESH_INTERVAL_SECONDS = 60L;

使用变量也要遵循规范,定义好的命名,可以参考:https://www.yuque.com/u22375957/adzviy/nd5w31pqevvm2za3

规则 (必须遵守):

  1. 只能包含字母、数字、下划线 (_) 或美元符号 ($)。
  2. 不能以数字开头。
  3. 不能使用 Java 的关键字(如 int, class, public 等)作为变量名。
  4. 变量名是大小写敏感的 (ageAge 是两个不同的变量)。

规范 (推荐遵守,提高可读性):

  1. 见名知意: 变量名应清晰地表达其存储内容的含义(例如,用 userName 而不是 unx)。
  2. 驼峰命名法 (Camel Case):
    • 变量名方法名: 第一个单词首字母小写,后续单词首字母大写 (e.g., firstName, calculateTotalScore)。
    • 类名: 每个单词的首字母都大写 (e.g., Student, HelloWorld)。
  3. 避免使用单个字母作为变量名(除了在循环等临时场景下,如 i, j, k),除非含义非常明确。
  4. 避免使用中文或特殊符号作为变量名(还真有中文编程:https://www.eyuyan.com/index.htm),虽然 Java 理论上支持,但通常极不推荐(太 low,显得很不专业)。

有惊喜:

char c1 = '\u6211';
char c2 = '\u559c';
char c3 = '\u6b22';
char c4 = '\u4f60';System.out.println("" + c1 + c2 + c3 + c4);

相关文章:

  • Linux 下 ChromeDriver 安装
  • Redisson学习专栏(五):源码阅读及Redisson的Netty通信层设计
  • 【分布式技术】KeepAlived高可用架构科普
  • 系统架构设计论文
  • 3.2 HarmonyOS NEXT跨设备任务调度与协同实战:算力分配、音视频协同与智能家居联动
  • P1438 无聊的数列/P1253 扶苏的问题
  • 【自动思考记忆系统】demo (Java版)
  • Day11
  • S1240拨打电话时的工作过程
  • Rust 学习笔记:关于 Cargo 的练习题
  • 如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案
  • [Java 基础]选英雄(配置 IDEA)
  • 第十三章 Java基础-特殊处理
  • C++核心编程_ 函数调用运算符重载
  • 构建基于深度学习的人体姿态估计系统 数据预处理到模型训练、评估和部署 _如何利用人体姿态识别估计数据集_数据进行人体姿态估计研究的建议Human3.6M
  • MySQL 8 完整安装指南(Ubuntu 22.04)
  • 【2025RAG最新进展】
  • 数据结构:递归的种类(Types of Recursion)
  • 互联网大厂智能体平台体验笔记字节扣子罗盘、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台
  • MQTTX连接阿里云的物联网配置
  • 淄博做网站的公司有哪些/登录百度
  • 网络销售网站外包/百度信息流怎么做效果好
  • 织梦做网站要多长时间/百度知道合伙人答题兼职入口
  • 中山哪里做网站/企业网站优化推广
  • 郑州做网站公司排/宁波网站推广
  • 阜宁做网站哪家公司最好/谷歌站长平台