java学习记录

1.值传递和引用传递

值传递:变量之间只传递值,另外变量的值改变,不会改变另一个变量的值

引用传递:传递的是地址,在jvm中,可以简略的分为三个部分:栈内存、堆内存和方法区

                栈内存放的是运行的方法,new出来的数据放在堆内存,栈内存里面指明数据在堆内存中的地址。引用传递中,对应地址的值改变,相关变量的值也会改变。

2.数组反转:两种方式

找规律

逆序赋值:需要创建一个大小相通的数组,进行拷贝

3.数组扩容

 创建一个数组长度增加的数组,将原来数组的值赋给新数组,数组为引用类型,再进行引用类型的值传递。

速度比较慢,每次需要开辟一个新空间。相比链表而言。

4.类和对象

方便进行数据的管理

对象-属性和行为

类是一个抽象的数据类型,属性就是每一类对应的属性(即特点),其实可以类比于对人的分类,对象是类的具体化      

对象也是new出来的,栈内存存放对象的地址,通过地址找到堆中存放的地方(引用类型存放的是地址,基本类型存的就是相应的数据信息),通过堆中的地址找到方法区对应地址,方法区中有一个常量池,里面存放了真正的信息。

5.属性=成员变量

属性可以是基本数据类型,也可以是引用数据类型

属性有不同的访问权限,属性如果不赋值,有默认值

6.Java内存的结构分析

栈:一般存放基本数据类型

堆:存放对象

方法区:常量池,类加载信息

Person p = new Person();
p.name = "小明";
p.age  = 10;

创建对象流程分析:先加载Person类信息,属性和方法信息,只会加载一次。在堆中分配空间,进行默认初始化,把地址赋给p,p只想对象,进行指定初始化,如果是基本数据类型,直接改值,若不是,通过地址,找到方法区的常量池,进行初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值