793 字
2 分钟
Java基础入门:变量与数据类型详解
每个Java新手都会在变量类型上栽跟头,我也不例外。记得有次把int和Integer搞混,debug了一下午才发现是拆箱空指针的问题。这篇文章把基本类型和引用类型的区别掰开揉碎了讲清楚,帮你少走弯路。
Java基础入门:变量与数据类型详解
变量
变量就是存数据的容器。每个变量都有类型,决定了它能存什么、能做什么操作。刚入门最容易搞混的就是int和Integer——一个基本类型一个引用类型,用错了就是空指针警告。
声明格式很简单:
int age;String name;double salary;数据类型
Java的数据类型分两大类:基本数据类型和引用数据类型。
基本数据类型
Java有8种基本数据类型:
| 数据类型 | 大小 | 范围 | 示例 |
|---|---|---|---|
| byte | 1字节 | -128 到 127 | byte b = 100; |
| short | 2字节 | -32768 到 32767 | short s = 1000; |
| int | 4字节 | -2^31 到 2^31-1 | int i = 100000; |
| long | 8字节 | -2^63 到 2^63-1 | long l = 100000L; |
| float | 4字节 | IEEE 754 | float f = 3.14F; |
| double | 8字节 | IEEE 754 | double d = 3.14; |
| char | 2字节 | 0 到 65535 | char c = 'A'; |
| boolean | 1位 | true 或 false | boolean b = true; |
注意long和float的赋值要加后缀(L/F),不加的话编译器会报错。这个刚开始写的时候老忘,后来习惯了就好。
引用数据类型
引用数据类型存的是对象的引用,不是对象本身。包括:
- 类(Class)
- 接口(Interface)
- 数组(Array)
变量初始化
变量声明后必须初始化才能用,不然编译就过不了。两种方式:
int age = 25; // 声明时初始化String name;name = "张三"; // 先声明后初始化作用域
Java有四种作用域:
- 局部变量:在方法或代码块里声明的,作用域仅限于当前代码块
- 实例变量:在类里方法外声明的,属于对象
- 静态变量:用
static修饰的,属于类,所有实例共享 - 参数变量:方法参数,作用域仅限于方法内部
常量
值不能变的变量,用final声明:
final int MAX_AGE = 120;final double PI = 3.1415926535;命名规范是全大写,单词间用下划线。这个习惯在团队协作里很有用,看到全大写的变量就知道是不能改的。
类型转换
自动类型转换
小范围转大范围,自动发生:
byte b = 100;int i = b; // 自动转,没问题强制类型转换
大范围转小范围,需要强转,但可能丢数据:
int i = 100;byte b = (byte) i; // 强转,如果值超出byte范围就截断了最佳实践
- 选合适的数据类型——别什么数字都用int,byte能搞定就别浪费内存
- 命名用驼峰——有描述性,别用a、b、c这种
- 变量一定要初始化——避免用未初始化的变量
- 能用常量就用常量——
final是你的好朋友 - 作用域越小越好——局部变量优先于成员变量
💡 实战贴士: 用
var(Java 10+)可以省去写类型名的麻烦,但别滥用——只在局部变量且类型一目了然的时候用。比如var list = new ArrayList<String>();没问题,但var result = someMethod();就让人看不懂了。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐
1
Java面向对象编程基础详解
Java 封装、继承、多态——这三个词背了无数遍,但真正理解面向对象是在写了上万行代码之后的事。这篇文章用代码实例讲清楚OOP的核心概念。
2
Java数组与集合详解
Java 从数组到集合框架,这是每个Java开发者都会经历的进阶之路。ArrayList和HashMap用起来确实方便,但搞懂底层实现才是面试不翻车的关键。
3
Java运算符与表达式详解
Java ++i和i++的区别是多少Java新手的噩梦?还有位运算虽然平时用得少,但在权限系统和性能优化场景下简直是神器。
4
Java序列化与反序列化详解
Java serialVersionUID不写会怎样?transient关键字有什么用?序列化这些看似简单的细节,搞不好就是线上事故的导火索。
5
Java多线程编程详解
Java 多线程是Java面试的重灾区,synchronized、volatile、Lock的区别能聊一个小时。这篇文章从线程的创建到并发工具类,把多线程的知识点串了一遍。






