标签:java基础
成员变量和局部变量的区别?
成员变量:
1.成员变量定义在类中,在整个类中都可以被访问.
2.成员变量随着对象的建立而建立,存在于对象所在的堆内存中.
3.成员变量有默认初始化值.
局部变量:
1.局部变量中能定义在局部范围内,如:函数内,语句内等.
2.局部变量存在于栈内存中
3.作用的范围结束,变量空间会自动释放.
4.局部变量没有默认初始化值
构造函数为什么没有返回值?
构造函数中不能返回其他东西,只能返回刚刚创建的对象,所以它的行为已经固定了.
代码块:
1.局部代码块
在函数内部定义{},
不能使用static修饰
2.构造代码块(本身意义为构造函数的补充)
也是类的成员,和成员变量和成员函数同级.
构造对象时,先调用构造代码块,然后是构造函数.
3.静态代码块
构造代码块 + static修饰符---> 静态代码块
静态代码块在类加载的时候执行,而且只执行一次
静态代码块的执行时间时间是类被加载的时候
Class.forName(String,boolean,initialize,ClassLoader) 第二个参数可以控制加载时是否调用静态代码块,默认是false
注意:静态代码块是类加载的时候执行的,而不是创建对象的时候执行,一个类被加载到一个叫"方法区"的地方,这个地方对于类信息进行永久储存
当虚拟机运行后会创建一个运行时区 这个区内包括分配的堆栈空间和方法区 , 方法区放置类的信息 每创建一个线程就会创建一个新的栈区域 ,栈区负责存放类的方法 ,每运行一个方法就会将方法压入栈顶部 当方法执行完 将其弹出. 一个运行时区至少需要有一个栈用来保存main方法,这也说明一个程序最少也需要存在一个线程来执行main方法.
标签:java基础
原文地址:http://pwitachi.blog.51cto.com/5057345/1770084