函数的重载 返回值不同会报错java
java中,若是本身定义了构造函数的话,它就不会给你默认一个无参函数程序员
若是一个属性,只进行定义,不初始化,自动补0,
若是是一个布尔属性,默认是false
可是若是一个局部变量只定义不进行初始化,它就是个垃圾值,报错!数组
Java把内存划分为4个部分 1. 代码区 一、栈区 三、堆区 四、静态区域
一、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束以后,系统自动释放JVM内存资源
二、堆区(heapsegment)—通常由程序员分配释放,存放由new建立的对象和数组,jvm不定时查看这个对象,若是没有引用指向这个对象就回收
三、静态区(datasegment)—存放全局变量,静态变量和字符串常量,不释放
四、代码区(codesegment)—存放程序中方法的二进制代码,并且是多个对象共享一个代码空间区域jvm
this指针:(实际上,每一个非static方法中都隐含这一个this指针
指向当前正在调用该方法的对象。)函数
static(静态的):
若是在一个属性的前面加上static ,那么这个属性就不是某一个对象的了,而是N个对象共用的了。在静态区存放,不释放。
static属性变量是属于类自己的,没有对象咱们仍然能够经过类名的方式进行访问该类内部的static属性。(static方法也能够)
(注意:一、类能够直接调用,实例化出来的对象固然也能够进行调用。
理解:模型均可以,模型造的对象固然能够。
二、加上static的确是属于类自己的,可是要去访问它必须控制符是非私有的,若是控制符是私有的,则不能直接经过类名进行访问!!
理解:private static void a(){} private static int i;都是不能够直接经过类名进行访问,由于前面的控制符是private
三、非静态的方法能够访问静态成员,反之不能够。非私有的静态成员才能经过类名直接调用。
理解:静态的方法和静态的变量属于类自己,不是静态的方法必须经过对象进行调用,在实例化对象的同时也包含了静态的方法,固然能够。
反之不能够。)
class A{
public static int i;
}post
class M{
public static void main(String[] args){
System.out.printf("%d\n",A.i);
}
}this