Java传值和传引用: 张三和李四的故事
下面开讲故事:
从前有个房间,房间里有份文档,房间还有一把钥匙。 这把钥匙在张三手里。
这时李四来向张三要那份文档。 张三不太喜欢李四,但又怕耽误了
工作不好交代。于是张三就把房间里文档的文档复印了一份,然后把那个复印件交给了李四(这叫传值)。
李四拿到文档后(复印件),胡乱修改一番,心想:张三,这回要你好看。可是他没想到那份原件还好好的在张三的房间里锁着呢。
以上故事对应:
public static void counter(int count) {
count = 2;
}
这个李四不甘心,于是他偷偷地配了一把张三的钥匙(这叫传引用), 准备进入房间修改那份文档。
这事被张三及时发现,他悄悄的把李四配的钥匙换成了另外一个房间的钥匙。
李四去了错误的房间。 张三再次以胜利告终!
以上故事对应:
public static void changeA1(int[] ints) {
ints = temp;
int[] temp = new int[3];
ints[0] = 7;
ints[1] = 8;
ints[2] = 9;
}
李四锲而不舍,他趁张三还沉浸两次胜利的喜悦里,终于成功的配了钥匙(这叫传引用),达到了修改那份文档原件的目的。
以上故事对应:
public static void changeA2(int[] ints) {
ints[0] = 4;
ints[1] = 5;
ints[2] = 6;
}
故事讲完了。 这里需要注意的是无论是传值还是传引用,传的都是复本(文档复印件或配的钥匙)。
相关文档:
集合模式:
作用:处理由一些对象组成的组或者集合;处理如何组织类和对象来形成更大结构的细节;关注设计一个无冗余数据类的最有效方法;允许在一组对象构成的集合上定义操作。
1. 合成:允许单个对象合成对象以一种统一的方式被访问。换句话说,合 ......
1.JAVA连接ACCESS数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
在上面的连接方法中,所涉及到的参数含义如下所示 ......
package org.mingyuan.fetcher;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
i ......
java回调机制
回调概念:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似 ......
1.servlet产生验证码:
package com.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Random;
import javax.imageio.ImageIO; ......