【114天】尚学堂高琪JAVA300篇视频笔记(31-37)
第31-32集
栈——存放局部变量
堆——存放new出来的对象
方法区——存放:1、类的信息(代码)2、static变量3、常量池(字符串常量)等
内存分析(重要!)
栈连续分配内存空间,后进先出
堆不连续分配内存空间
第33集
垃圾回收机制,C++相对JAVA更加及时灵活,但是团队协作起来,Java容错率更高。
Java中,程序员无权调用垃圾回收器,最多通过System.gc()通知GC运行【给个建议】,但是Java规范并不能保证你的建议立刻运行。
finalize方法是Java提供给程序员用来释放对象或资源的方法,但是尽量少用。第34集
构造方法也是方法
Java通过new调用构造方法,为啥?因为没有构造方法,对象也没法创建啊,所以无法通过对象去调用,只能专门找个new关键字来调用
第35集
重载:一个类中,定义名字相同,但参数不同的多个类。
这里的参数不同,指的是数量、顺序、类型不同
形参值不一样不算重载。
第36集
static变量又称类变量
static方法又称类方法
根据类这个目标新建出来的对象,只有非静态的属性与方法。
静态方法内部不能直接调用非静态的方法和变量,必须先新建一个对象,才能借助对象调用非静态的方法和变量,但非静态的方法能够直接调用静态的方法和变量,为啥?因为先有类,才有对象。
第37集
普通方法中,this总是指向调用该方法的对象。
构造方法中,this总是指向正要初始化的对象。this不能用于static方法!(this指向当前对象,static方法跟对象没有一毛钱的关系)普通方法中,其实默认都传入了this
this最常用法:
让类中的一个方法,访问该类的另一个方法或属性。
使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句。