标题图
Java当中的变量
01
Java
当中的实例变量和类变量
什么是实例变量和类变量呢?
实例变量为没有用static
修饰符修饰的变量,而类变量为用static
修饰符修饰的变量。
public class Hello{ // 私有的静态变量 name private static name = "dashu"; // 私有变量 age private int age = 17; // 无参构造方法 public Hello(){ this.age = 18; } public static void main(String[] args){ // 实例化对象 在堆内存中 new Hello(); } }
程序运行过程:Hello.java
变成Hello.class
,通过类加载器,加载到Java
虚拟机中的方法区中,在方法区中,进行加载,验证,准备,解析,初始化。
验证,class
文件的版本是否能兼容当前的Java
虚拟机版本,然后class
文件要满足虚拟机的规范。
准备,需要准备什么呢?就是要进行类成员的初始化为初始值,其中为final
修饰的类变量除外,final
变量就直接初始化为变量值,而类成员不一样。
解析,什么是解析呢?就是把符号引用解析为直接引用,就是我们变量xxx
,这种代表变为直接引用,什么是直接引用呢?就是内存地址,如我们常见的xxx0203r0e
,这种。
初始化(将类变量的值设置为初始值),把关于static
修饰的变量或者是static
静态代码块按照顺序组成构造器进行初始化变量。static
修饰的方法无法访问非static的实例哦~
初始值为要进行类成员的初始化为初始值为准备阶段,初始值为
jvm
中默认的值。
变量为成员变量和局部变量
成员变量在类中定义,有实例变量和类变量,实例变量是没有static
修饰的(属于实例),而类变量是有static
的(属于类本身)。
局部变量有在方法里的局部变量,作用域在该方法内有效;代码块中的局部变量,就只是在代码块中有效;还有形参,参可别不记得了,也是变量,在整个方法内有效。
实例变量,是在创建实例时,实例变量就存在,被销毁就不存在,类变量是,有类,类变量就存在,类变量在
jvm
中只加载一次。
在系统中会为成员变量进行默认的初始化,初始化两种,一种为基本类型,一种为引用类型。
基本类型: 0 / 0.0 / \u0000 / false引用类型: null
局部变量是在方法栈中。局部变量是由程序员赋值,系统不会默认给局部变量进行初始化的。
成员变量,是系统有给予默认的初始化值,在类方法外,在堆内存中,是随着对象的创建而存在,随着对象的消失而消失的。
局部变量,是没有初始化的值,在定义的时候必须要赋予初始值的,在方法中,在堆内存中。
面向对象
02
OOA, OOD, OOP
OOA
为面向对象分析OOD
为面向对象设计OOP
为面向对象编程
面向对象是对象之间的交互
面向过程是注重数据的流向
Java
中的三大特性为封装,继承,多态
面向对象,首先要进行面向对象分析,分析有多少个对象,然后进行面向对象设计,设计出对象含有的函数和属性等。
作者:达叔小生
链接:https://www.jianshu.com/p/4fb7e5e59241