说明Java的传递与回调机制的代码示例分享

java传值还是传引用
1.原始类型参数传递

public void badSwap(int var1, int var2)
{
int temp = var1;
var1 = var2;
var2 = temp;
}

2.引用类型参数传递

public void tricky(Point arg1, Point arg2)
{
 arg1.x = 100;
 arg1.y = 100;
 Point temp = arg1;
 arg1 = arg2;
 arg2 = temp;
}
public static void main(String [] args)
{
 Point pnt1 = new Point(0,0);
 Point pnt2 = new Point(0,0);
 System.out.println("X: " + pnt1.x + " Y: " +pnt1.y);
 System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
 System.out.println(" ");
 tricky(pnt1,pnt2);
 System.out.println("X: " + pnt1.x + " Y:" + pnt1.y);
 System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
}

运行这两个程序,相信你会明白的:Java manipulates objects 'by reference,' but it passes object references to methods 'by value.

java回调机制
spring大量使用了java回调机制,下面对Java回调机制做一些简单的介绍:

一句话,回调是一种双向调用模式,什么意思呢,就是说,被调用方在被调用时也会调用对方,这就叫回调。“If you call me, i will call back”。

看下面关于回调机制的例子:

接口CallBackInterface :

public interface CallBackInterface {
 void save();
}

类ClassB:

public class ClassB implements CallBackInterface {

public void save() {
System.out.println("执行保存操作!");
}
//
public void add()
{

    //这里调用ClassA的方法 同时ClasssB又会回调ClassB的save方法
    new ClassA().executeSave(new ClassB());
 }

}

类ClassA:

public class ClassA {

 public void executeSave(CallBackInterface callBackInterface)
 {
 getConn();
 callBackInterface.save();  //you call me
 realse();
 }
 public void getConn()
 {
 System.out.println("获取数据库连接!");
 }
 public void realse()
 {
 System.out.println("释放数据库连接!");
 }
}

更加经典的关于回调函数的使用的例子(使用java匿名类)这里省去了源码

(0)

相关推荐

  • 妙解Java中的回调机制(CallBack)

    前言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题.但是,对于初学的我来说,缺了一个循序渐进的过程. 回调是一种双向调用模式,什么意思呢,就是说,被调用方在被调用时也会调用对方,这就叫回调."If you call me, i will call back". 不理解?没关系,先看看这个可以说比

  • java回调机制实例详解

    java回调机制实例详解 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback--背景1 class A中包含一个class B的引用b --背景2 clas

  • 详解java模板和回调机制

    最近看spring的JDBCTemplete的模板方式调用时,对模板和回调产生了浓厚兴趣,查询了一些资料,做一些总结. 回调函数: 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数.回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机.一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供.由于S并不知道C

  • Java 异步回调机制实例分析

    Java 异步回调机制 一.什么是回调 回调,回调.要先有调用,才有调用者和被调用者之间的回调.所以在百度百科中是这样的: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用. 回调是一种特殊的调用,至于三种方式也有点不同. 1.同步回调,即阻塞,单向. 2.回调,即双向(类似自行车的两个齿轮). 3.异步调用,即通过异步消息进行通知. 二.CS中的异步回调(Java案例) 比如这里模拟个场景:客户端发送msg给服务端,服务端处理后(5秒),回调给客户端

  • 详解Java的回调机制

    模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用.回调和异步调用.下面着重详解回调机制. 1. 概述 Java 中的回调机制是一个比较常见的机制,只是有可能在你的程序中使用得比较少,在一些大型的框架中回调机制随处可见.本文就通过一些具体的实例,慢慢走近 Java 的回调机制. 2.回调 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法.实际在使用的时候,也会有不同的回调形式,比如下面的这几种. 2.1 同步回调 这里我假设

  • 理解Java当中的回调机制(翻译)

    你好,今天我要和大家分享一些东西,举例来说这个在JavaScript中用的很多.我要讲讲回调(callbacks).你知道什么时候用,怎么用这个吗?你真的理解了它在java环境中的用法了吗?当我也问我自己这些问题,这也是我开始研究这些的原因.这个背后的思想是控制反转( PS:维基百科的解释是控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.)这个范例描述了框架(framework)的工作方式,也以"好莱坞原则:

  • Java回调机制解读

    模块间调用 在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种: (1)同步调用 同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法继续往下走.这种调用方式适用于方法b()执行时间不长的情况,因为b()方法执行时间一长或者直接阻塞的话,a()方法的余下代码是无法执行下去的,这样会造成整个流程的阻塞. (2)异步调用 异步调用是为了解决同步调用可能出现阻塞,导致整个流程卡住而产生的一种调用方式.类A

  • java 回调机制的实例详解

    java 回调机制的实例详解 序言 最近接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题.但是,对于初学的我来说,缺了一个循序渐进的过程.此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教! 开始之前,先想象一个场景:幼稚园的小朋友刚刚学习了10以内的加法. 第1章. 故事的缘起 幼师在黑板上

  • 详解 JAVA的回调机制CallBack

    序言 CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了."回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的. 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBac

  • Java 回调机制(CallBack) 详解及实例代码

     Java 回调机制 概要: 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题.但是,对于初学的我来说,缺了一个循序渐进的过程.此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教! 开始之前,先想象一个场景:幼稚园的小朋友刚刚学习了10以内的加法. 第1章. 故事的缘起 幼师

随机推荐