Java学习笔记--对象部分,static与final,数组元素类型

学海无涯,长路漫漫,有你相伴,便不会孤单

本人也正在Java的路上航行,整理的一点点笔记愿与诸君分享!

主要对一下几个问题做一下浅显的解答
在这里插入图片描述
1.对象与对象引用的区别是什么?
假如有个plane类,plane p1=new plane();
这里包括了三个操作:plane p1,声明一个对象,当声明被赋予特定的对象后,声明就变成了引用,产生一个对象引用变量p1;new plane(),根据plane类属性模板产生一个对象;“=”,使得对象引用变量p1指向刚刚产生的对象。
两者的区别就在于:
(1)对象引用指向该对象,改变引用的属性,对象的属性也会改变
(2)从内存空间上看,两者是独立的,对象储存在堆上,而引用储存在栈上
(3)同一个对象可以被多个引用所指向

2.对象作为参数传递的特点是什么?
一个方法中的参数可以是基本数据类型,也可以为一个对象;基本数据类型作参数时是值传递,传的是值,而对象作参数是引用传递,传的是对象的地址

3.对象初始化顺序是怎么样的?
先用new产生对象,为对象分配内存空间后,系统自动调用类的构造方法实现对对象的初始化,然后赋值给引用。
例如:
在这里插入图片描述
对于*号所指的一行,IntClass = new IntClass(10};首先执行new部分,产生一个intclass对象并分配空间,然后自动调用其构造方法,为其value赋初值,最后赋值给引用s,完成初始化。

4.类的static字段和非static字段的区别是什么?
(1).用static修饰符修饰的域变量不属于任何一个类的具体对象,而专属于类,表示静态属性,保存在类的公共存储单元中,而不在某一对象的存储空间中。静态属性仅在类加载时初始化且只初始化一次
(2).static也可以修饰一段代码,为静态代码块,和静态变量的特点相同

5.Java中final修饰符都有什么作用?
final可以有三种用法:
1.修饰类属性:表示该属性为常量
2.修饰方法:则该方法为最终方法,不能被子类覆盖
3.修饰类:则该类不能被继承

6.java中float【10】arr;语句正确么?
不正确;数组的声明格式为: 类型标识符【】数组名 或者 类型标识符 数组名【】。
声明不会分配内存空间,所以中括号里面不能有数字。如果是初始化,则需要加上数组长度。
数组初始化格式:类型标识符【】数组名=new 类型标识符【数组长度】 例如:float【】arr=new float【10】;

7.Java数组元素类型为基本数据类型和引用类型时,有什么不同?
如下图:
在这里插入图片描述
在这里插入图片描述
区别:
基本数据类型在被创建时,在栈上给其划分内存空间,将数值直接存储在栈上;
引用数据类型在被创建时,首先要在栈上给其引用分配内存空间,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值