java 编写函数 交换两个基本变量的值
Java编写一个函数交换两个变量的值
Java函数在传递过程中只能够传值,不能传址。这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来。所以解决之道就是要找到要交换对象的引用。对于普通的值类型,像int或者double这样的可以改传他们的包装类Integer和Double。而对于本来就是引用类型的对象,则需要对他们再包一层。一个好的方法就是将参数列表改成数组,例如void
swap(Object[]); //数字应当只包含两个元素
下面以整数为例介绍三种交换两个值的算法,假设有这样的声明:
void swap(Integer a, Integer b)
方法一:采用临时变量
int temp = a.value;
a.value = b.value;
b.value = temp;
方法二:使用异或
a.value ^= b.value;
b.value ^= a.value;
a.value ^= b.value;
方法三:使用求和和求差
a.value = a.value + b.value;
b.value = a.value - b.value;
a.value = a.value - b.value;
相关文档:
一:理解多线程
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。
线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
......
在Firefox 3.6中,当焦点在flash或者java applet对象上时,会出现一个环绕对象的虚线框,当将flash与java applet对象的大小设成100%时,点击对象后页面会出现滚动条,影响显示效果,解决的方法是使用如下的css定义:
:focus {
outline: 0;
}
这样在各个不同的浏览器中显示的效果都能保持一致。 ......
KeywordFilter.java:
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KeywordFilter
{
private static Pattern pattern = null;
private static KeywordFilter filter = new KeywordF ......
Java中的集合(Collection)有两类,一类是List,再有一类是Set。你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后
者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢?这就是
Object.equals方法了。但是,如果每增加一个元素 ......
(
1
)
+=
:sum += 1;
相当于
sum = sum + 1;
(
2
)
++ --
:i++ i
加
1, i-- i
减
1, ++
或
—
放在数值后,表示执行运算后加(减)
1
,反正数值前表示执行运算前加(减)
1
(
3
)
?
: :
int n = a<10?1:2
表示如果
a
小于
10
则
n
等于
1
否则等于
2
(
4
......