本帖最后由 与梦逆风而行 于 2014-11-29 21:14 编辑
因为字数的问题帖子分成了3部分,希望不要影响到大家的阅读。
http://bbs.itheima.com/thread-154781-1-1.html (上)http://bbs.itheima.com/thread-154782-1-1.html ( 中 )
http://bbs.itheima.com/thread-154784-1-1.html (下)
1对象
1.访问对象成员1.引用对象的成员变量 对象名.变量名
2.引用对象的成员方法 对象名.方法名(参数) Vector v = new Vector(); v.addElement(“helloworld”); int[] a= {1, 2, 3, 4, 5}; int size = a.length; System.out.println(); 2.对象内存结构1.创建对象将在JVM堆内存中开辟对应的成员变量内存存储空间,并对其进行初始化值的设定 2.所有的对象均存在于堆内存中,即便是static修饰的对象,内存存储位置也在堆内存,只是外部引用指向该位置 3.对象内存回收1.对象的引用一旦不存在,该对象所占用的内存空间将永远不会被JVM访问到,该空间即变为垃圾内存,垃圾内存可以通过JVM自动回收的方式进行清理,也可以由程序员手工清除,具体的操作步骤详见System类中的gc方法 3.存在引用的对象内存空间将永远不被回收,如果内存中存在的此类对象过多,将造成内存不足的情况发生 4.对象作为方法的参数1.类是一种数据类型,在进行方法参数设计时,可以为类传递对象作为参数,即对象作为方法的参数 2.对象作为方法的参数与基本数据类型作为方法的参数不同,基本数据类型传递的数据为对应的值,而对象作为方法的参数传递的是对象内存空间的引用 5.对象作为方法的返回值1.类是一种数据类型,在进行方法返回值的设定时,可以将该类型作为方法返回值类型,此时方法返回的结果应为一个对象或null 2.对象作为方法的返回值与对象作为方法的参数十分相似,返回的也是该对象的引用 6.数组对象数组在进行内存空间的创建时,占用的内存空间位于堆内存范围内,数组可以看做是一种特殊的对象,操作数组同样也是使用引用的格式来进行
7.对象数组对象数组是一种特殊的数组,即数组中保存的元素是对象,在数组的内存表示格式中,对应的值不再是一个基本数据类型对应的二进制表示形式,而是一个对象的引用地址 8.This1.为加强程序的阅读性,在类的实例方法中,为每一个实例变量或实例方法的引用前面添加this关键字,指代该调用使用的是当前类的实例 2.This关键字可以理解为成员的调用者对应的内存空间,简单来说A对象调用function(),在方法中所有的this指代的就是A对象,如果换B对象调用该方法,所有的this指代的就是B对象 3.this关键字在某些情况不能省略 4.This作为对象的默认引用有两种情形: 1.构造器中引用该构造器正在初始化的对象。 2.在方法中引用调用该方法的对象。 This关键字最大的作用就是让类中的一个方法,访问该类里另一个或Field. 9.匿名对象匿名对象即没有名称的对象,也可以称为没有引用的对象,匿名对象仅在创建时有效,在其内存空间被使用完毕前,如果没有对其进行引用,则匿名对象将永久性成为垃圾内存 10.方法的所属性Java语言中方法的所属性主要体现在如下几个方面: 1.方法不能独立定义,方法只能在类体里定义。 2.从逻辑定义上来看,方法要么属于该类本身,要么属于该类的一个对象。 3.永远不能立执行方法,执行方法必须使用类或对象进行调用。 11面试题Person p = newPerson();他在内存中做了哪些事?
1.将Person.class文件加载到内存中; 2.在堆内存中创建一个对象Person; 3.把Person中的属性进行默认初始化; 4.把Person中的属性进行显示初始化; 5.调用构造代码块(如果没有,不执行这个操作) 6.调用构造函数进行初始化; 7.在栈内存中声明Person类型的变量p; 8.把堆内存的地址(引用)赋给栈内存中p。
|