Java数据类型及变量的新理解
在刚接触java时,对这些只有模糊的概念,虽然不影响使用,但一定会限制你的上限,当回过头学习JVM的时候,发现基础的重要性,这里把阅读的几篇优秀博客,和个人笔记整合在了一起,简短、易懂,希望阅读后能有所收获,欢迎补充。
要做优秀的程序员,一定不要做API调用员。
数据类型
Java的数据类型分为两大类:
-基本数据类型
:包括 整数、浮点数、字符、布尔。
-引用数据类型
:包括 类、数组、接口。
基本数据类型
变量
变量:在程序中可以变化的量称为变量,而常量是固定不变的数据。
- 成员变量
- 局部变量
- 静态变量(全局变量)
成员变量
成员变量也成为属性,直接定义在类中,在方法之外。
面向对象三大思想之一,封装的思想,封装一个实体类的时候其实我们就是在使用成员变量,只不过我们没有在意细节。
SL_World
博客中:
我们来研究一个事物:
属性:外在特征;例如人的身高,体重
行为:能够做什么;例如人有说话,打球等行为。
而在Java语言中,最基本的单位是类,类就是用来体现事物的。
用类class来描述事物也是如此:
属性:对应类中的成员变量
行为:对应类中的成员函数
例如下面例子中type和probability就是成员变量
public class Gender {
private String type;
private int probability;
...
}
局部变量
定义在方法中的变量
下面例子中,定义了4个局部变量,解析字节码文件,我们来看局部变量表
public static void main(String[] args) {
int i = 10;
int j = 20;
String c = "hello world";
}
静态变量
用static
修饰的变量,也就是全局变量。
static String s = "hello world";
静态变量和成员变量的区别:
A:所属不同
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
B:内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
C:生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用
成员变量和局部变量的区别:
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
参考
1. Java三种变量的区别