理解java传值还是传引用
/**
*探究值传递与引用传递
* 看了好多关于java值传递和引用传递的文章,深感迷惑
* 所以就自己看看大虾们的思路,自己用代码动手实验,
* 感觉挺爽的。
* @author java魔人
* 2009-07-20 下午
*/
public class Test {
// method1
public static void changValue1(int a, int b) {
int c = a;
a = b;
b = c;
}
// method2(从结果来看:显而易见:值传递)
public static void print1() {
int x = 0;
int y = 1;
changValue1(x, y); // 传递的是值得coapy,x,y自身没变化。
System.out.println("x=" + x); // 输出:x=0
System.out.println("y=" + y); // 输出:y=1
}
/**
* 个人总结:以上方法没有完成我们的理想。仔细分析如下,看看内存中的存储方式:
* method2方法的两个成员变量:
* 变量 内存
* x--------->[值0]
* y--------->[值1]
* 调用changValue(x,y)时,内存中是这样的情景:
* x------>[值0]
* (一次复制)
* a------>[值0]
* y同理
* 此时,好像与x,y没什么关系了啊。
*
*/
// method3
public static void changeValue2(StringBuffer a) {
a.append(" zhangxiangrong");
}
// method4(从结果来开:应该是引用传递)
public static void print2() {
StringBuffer sb = new StringBuffer("I'm");
changeValue2(sb); // 传递的是引用,所以执行完后,sb的值不再是"I'm"了。
System.out.println("sb=" + sb.toString()); // 输出:I'm zhangxiangrong
}
/**
* 个人总结:这个和上面的例子貌似差不多,但可以改变sb的的值。看看内存中情景
* 开始:
* sb---------->[值"I'm"]
* 调用changeValue2(StringBuffer a)时,就大变样了,(因为不是拷贝了)
* sb---------->[值"
相关文档:
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
本文转自http://blog.csdn.net/nokiaguy/archive/2010/04/16/5493817.aspx
缩放图像的基本原理是创建一个目标大小的画布,然后读取源图像,并将该图像绘制这个画布上。为了使程序通用,源图像和缩放后的目标图像应用分别使用
InputStream和OutputStream来表示,代码如下:
public
st ......
一、什么是反射:
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC+ ......
Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。
在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制 ......
package com.gamvan.tools;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Inpu ......