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

[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);
http://www.xdnf.cn/news/10774.html

相关文章:

  • 基于QwenAgent解锁Qwen3无思考高效模式:vLLM部署实战与Ollama模板定制
  • 美尔斯通携手北京康复辅具技术中心开展公益活动,科技赋能助力银龄健康管理
  • RabbitMQ在SpringBoot中的应用
  • 六步完成软件验收:从计划到终验的全面指南(二)
  • smartGit 试用突破30天
  • HCIP(BGP基础)
  • 工厂方法模式深度解析:从原理到应用实战
  • 【灵动Mini-F5265-OB】vscode+gcc工程创建、下载、调试
  • Unity——QFramework框架 内置工具
  • 强制卸载openssl-libs导致系统异常的修复方法
  • 无人机智能识别交通目标,AI视觉赋能城市交通治理新高度
  • 【OCCT+ImGUI系列】012-Geom2d_AxisPlacement
  • EPSON差分晶振X1G005331000100,SG7050VEN晶振6G无线应用
  • JVM简介
  • 二叉树(二)
  • 深入理解前端DOM:现代Web开发的基石
  • Ansys Zemax | 手机镜头设计 - 第 4 部分:用 LS-DYNA 进行冲击性能分析
  • Android Native 内存泄漏检测全解析:从原理到工具的深度实践
  • 提取 PDF 文件中的文字以及图片中的文字
  • 从 iPhone 备份照片: 保存iPhone图片的5种方法
  • 计算机基础知识(第三篇)
  • 如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案
  • [Java 基础]运算符,将盒子套起来
  • 如何提高工作效率
  • 企业即时通讯平台,助力企业数字化转型的即时通讯工具
  • 【AI Study】第三天,Python基础 - NumPy(1)
  • 【设计模式-4.7】行为型——备忘录模式
  • 欢乐熊大话蓝牙知识14:用 STM32 或 EFR32 实现 BLE 通信模块:从0到蓝牙,你也能搞!
  • 机器人现可完全破解验证码:未来安全技术何去何从?
  • 【JAVA版】意象CRM客户关系管理系统+uniapp全开源