java基础2:数组、jvm、面向对象、成员变量与局部变量、匿名对象、封装、创建对象、静态、继承

数组:
存储相同数据类型元素的容器:
动态初始化:元素的数据类型[ ] 数组名=new 元素的数据类型大小[容器大小]
静态初始化:元素的数据类型[ ] 数组名=new 元素的数据类型大小[容器大小]{元素值}
Jvm的内存划分:
堆内存:用于存储数组,对象等数据类型较大的元素,一般用于存储引用数据类型。
栈内存:用于执行方法给每一个方法分配一个执行区域。
方法区:用于存储字节码对象、存储常量、存储静态变量。
本地方法区:用于执行本地方法,一般用于执行c语言方法。
程序计数器:用于控制程序的执行,控制执行哪一行代码。
面向对象:
面向对象的好处:更符合人类的思想习惯、简单化复杂的问题、由执行者转变为指挥者。
面向对象的基本特征:封装、继承、多态
成员变量与局部变量:
成员变量:定义在类中方法外的位置,属于对象存储于jvm的堆中,随着方法的调用而存在,随着方法调用的结束而销毁,具有初始值初始值一般为null等。
局部变量:定义在方法中的变量,属于方法存储于jvm的栈中,随着对象的创建于销毁而创建于销毁,必须手动化赋值才可以使用。
匿名对象:
匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储。
封装:
封装的好处:提高代码复用性与安全性,隐藏事物的细节。
封装的原则:隐藏事物的细节与属性,对外提供公共访问的方式。
Private关键字:可以修饰成员变量,成员方法,构造方法,内部类。背其修饰的成员只能在本类中被访问。当某个属性被private修饰了以后只能通过get方法获取,通过set方法设置值。
变量访问原则:
变量的访问都是由近及远,如果局部变量名与成员变量名重复一定访问的局部变量,除非成员变量使用this关键字。
This关键字:
那个对象来调用this所在的方法this就代表哪个对象。
构造方法:
修饰符 方法名(参数列表){ 方法体 }
构造方法必须与类名相同,构造方法没有返回值。
构造方法的重载:方法名相同,参数列表不同,与返回值有关。
创建对象:
初始化步骤:构造方法初始化、默认初始化、显示初始化
创建对象的过程:将对象所属类型加载到方法区、在栈内创建对象的引用以存储对象的地址、在堆内存中开拓空间用于存储成员变量、给成员变量默认初始化赋值、给成员变量显示初始化赋值、给成员变量构造方法赋值、将对象的地址赋值给栈内存中的引用。
静态:
静态变量是静止的不会发生改变的,随着类的加载而进入到方法区,直接在方法区的静态去开辟空间存储静态变量。优先于对象而存在,还可以通过类名直接进行调用。
静态方法:在方法上加static修饰。
静态方法不能访问非静态的变量:静态方法随着类的加载而创建可以在对象创建以前进行调用,而非静态变量只能在对象创建以后存在,因此存在矛盾。
静态的方法不能访问非静态的方法:因为非静态的方法中存在非静态变量,如果访问则产生矛盾。
静态方法中不能使用this关键字:this关键字代指当前对象,而静态方法优先于队形产生,因此矛盾。
静态变量:属于类,只一个类变量。存在于方法区的静态区中,随着类的加载销毁而加载、销毁,可以通过静态变量名和类名访问。
非静态变量:属于对象,存在于堆中,随着对象的加载销毁而加载销毁,只能通过变量名进行访问。
继承:
注意事项:私有的成员不能被继承,父类中的构造方法不能被继承。
特点:支持单继承,不支持多继承,支持多层继承。
This和super
This:关键字表示本类被当前对象所引用,可以访问自父类中的成员方法与成员变量,可以访问本类与其他类的构造方法。
Super:表示本类被当前类的对象的父类做引用,只能访问父类中的成员方法、成员变量与构造方法。
This和super都要放在第一行而且不可以共存。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值