java值传递与引用传递
1、对象是按引用传递的---带"="号的赋值操作
2、Java 应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的
3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本
4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值 的副本
5、注意:String虽是对象,但永远是传值
首先我们来看看第一点:对象是按引用传递的确实,这一点我想大家没有任何疑问,例如:
class Test01
{
public static void main(String[] args)
{
StringBuffer s= new StringBuffer("good");
StringBuffer s2=s;
s2.append(" afternoon.");
System.out.println(s);
}
}
对象s和s2指向的是内存中的同一个地址因此指向的也是同一个对象。
如何解释“对象是按引用传递的”的呢?
这里的意思是进行对象赋值操作是传递的是对象的引用,因此对象是按引用传递的,有问题吗?
程序运行的输出是:
good afternoon.
这说明s2和s是同一个对象。
这里有一点要澄清的是,这里的传对象其实也是传值,因为对象就是一个指针,这个赋值是指针之间的赋值,因此在java中就将它说成了传引用。(引用是什么?不就是地址吗?地址是什么,不过就是一个整数值)
再看看下面的例子:
class Test02
{
public static void main(String[] args)
{
int i=5;
int i2=i;
i2=6;
System.out.println(i);
}
}
程序的结果是什么?5!!!
这说明什么,原始数据类型是按值传递的,这个按值传递也是指的是进行赋值时的行为。
下一个问题:Java 应用程序有且仅有的一种参数传递机制,即按值传递
&nb
相关文档:
1. socket通信:有客户端和服务端的socket代码。
2.
多线程:客户端和服务端各用一线程发送信息;服务端另有一监听线程,用于把超时的信息删除。
这里应用到了同步,使两个线程可以操作同一个map。
代码:(类全在同一个包内)
server端:
import java.io.BufferedReader;
import java.i ......
java中字符串转换成时间格式总结
关键字: java 字符串 时间 格式
通过长时间的对时间不同格式的转换,自己觉得其实就是对毫秒数的操作
Java代码
System.currentTimeMillis()
System.currentTimeMillis()
得到从1970年1月1日到现在的毫秒数,就可以转换成各种的形式。
有这样一个字符串:“ ......
annotations : 注释
好处
1.文档编制
2.编译器检查
3.代码分析
JSR 175 是编程语言的元数据工具,为将元数据合并到核心java语言中提供正式理由和说明
基本知识:
注释采用"@"标记形式,后面是注释名称,然后在需要数据时,通过name=value对向注释提供数据
注释的三个基本种类:
标记注释 ......
Graphics2D arg;
float thick=3.0f;
arg1.setStroke(new BasicStroke(thick, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND));
arg1.drawLine(first.x, first.y, next.x, next.y);
arg1.setColor(Color.red);
......