package com.test;

import com.test.Pro;
//protected 修饰的成员只能在本包中和 继承该类的方法中使用
public abstract class Testpro {
public void aa(){
Pro p=new Pro();
p.getProtex();
} //抽象方法不需要 方法体,但是 如果一个类中有abstract方法是,该类也必须是抽象的。
//抽象类中 可以有非抽象方法
//抽象类可以被继承,但是必须重写抽象类中的抽象方法,否则该类仍然是抽象类。
// 抽象类中可以 有成员变量,接口中也可以有成员变量,但是必须给与初值, //接口与抽象类: 如果许多类实现了一个接口,但是 这些类 又有一些重复的部分,这时可以考虑将这些重复放到抽象类中,
//其他仍然作为 抽象方法,如本例中的 happFood() (重复部分),eat()(其他部分) 。抽象类是为了简化接口的实现
private String aa; public abstract void eat(); public void haapyFood(){
System.out.println("happy food");
}
}

java  堆和栈

Pro p=new Pro(); // pro 普通java  类

1.new 是在内存中为对象开辟空间,即在内存的堆(heap)上为对象开辟空间。
p 是 一个Pro 对象,是对象引用 ,p 并不是对象本身,而是相当于一个指针,指向该对象。而p 存在与
内存的栈(stack) 上
2.栈的读取速度比堆 快,但是 栈上存储的数据 受到有效范围的限制 , 方法调用等 完成后 相应的栈数据就会被清空。
3.java中所用的普通对象都储存在 堆 中 ,但是基本类型(primitive type)的对象,比如int, double,保存在栈上,我们声明基本类型时,不需要new。一旦声明,Java将在栈上直接存储基本类型的数据。所以,基本类型的变量名表示的是数据本身,不是引用。 所以在方法调用结束后,栈中引用 和 基本类型 会被清空, 但是堆中的对象仍然存在,所以对象所占据的内存不会随着方法调用的结束而清空。进程空间可能很快被不断创建的对象占满,,Java内建有垃圾回收(garbage collection)机制,用于清空不再使用的对象,以回收内存空间。
4.垃圾回收的基本原则:当存在引用指向某个对象的时候 ,该对象不会被回收。当没有引用指向该对象时,该对象被清空,空间被回收。。

方法的 参数传递:

java的参数传递为 值传递, 即当我们传递一个参数时,方法将获得该参数的一个拷贝。
实际上,我们传递的参数,一个是基本类型的变量,另一个为对象的引用。
基本类型变量的值传递 ,意味着变量本身被复制, 并传递给java 方法,java方法对变量的修改不会影响到原变量。
引用的值传递,意味着对象的地址被复制,那么java方法对该应用的访问将会影响对象,但是 不会 影响原有的那个栈引用。这些栈会在方法结束时清空。

最新文章

  1. Flex中的initialize,creationComplete和applicationComp
  2. 微信支付curl出错及错误码解决方案
  3. 【BZOJ-4569】萌萌哒 ST表 + 并查集
  4. jquery ajax跨域请求webservice webconfig配置
  5. javascript中字符串格式json如何转化成json对象
  6. Python中通过多个字符分割(split)字符串的方法
  7. C#读写文件总结
  8. win8.1恢复win7 CTRL+Space切换输入法
  9. 我终于忍不住喷一下某些书了,关于Java传引用的XX言论
  10. OpenCV——CvMatchShapes函数
  11. SpringMVC + Spring 3.2.14 + Hibernate 3.6.10
  12. mvc4中的过滤器
  13. JS组件系列——在ABP中封装BootstrapTable
  14. daterangepicker 使用方法以及各种小bug修复
  15. SpringMVC 返回json的两种方式
  16. Post Office
  17. Hessian基础入门案例
  18. [matlab] 3.矩阵
  19. C语言实现split以某个字符分割一个字符串
  20. Thrift版本管理

热门文章

  1. mysql级联删除
  2. (18/24) webpack实战技巧:快速入门webpack模块化配置
  3. Redis hash数据结构
  4. HtmlRowCreated关于e.Row.Cells[0]的获取和设置
  5. is not on any development teams
  6. jQuery上传插件uploadify 3.2.1
  7. Java Integer值用==和equals相等问题
  8. tensorflow笔记之学习率设置
  9. http://dl-ssl.google.com/android/eclipse/ 无法访问的解决办法
  10. Dynomite 安装配置