类(Class)和对象(Object)是面向对象的核心概念。
属性(field)
:对应类中的成员变量 (也叫成员变量、域、字段)
方法(method)
:对应类中的成员方法(也叫函数)
堆(Heap)
,此内存区域的唯一目的就是存放对象实例
,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。
栈(Stack)
,是指虚拟机栈。虚拟机栈用于存储局部变量
等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。
方法区(Method Area)
,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
等数据。
语法格式:修饰符 数据类型 属性名=初始化值
说明1:修饰符:
常用的权限修饰符有:private、缺省、protected、public
其他修饰符:static、final (暂不考虑)
说明2:数据类型
说明3:属性名
举例
public class Person{
private int age; //声明private变量 age
public String name = “Lila”; //声明public变量 name
}
在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
相同点:
不同点:
在类中声明的位置的不同:
关于权限修饰符的不同:
默认初始化值的情况:
在内存中加载的位置
原文:https://www.cnblogs.com/dongye95/p/14852947.html