本の経典の面接試験問題は思い付きました。


三つ目の変数を使わずに二つの整数の交換を完了します。この面接問題は大体みんなが会ったことがあります。以下はjavaのコードです。
 
public class Person {

	public static void main(String[] args) {
		//     
		int a = 10, b = 5;
		a = a + b;
		b = a - b;
		a = a - b;
		
		System.out.println("a=" + a + "
b=" + b); } }
 
もう一つの方法があります。そして効率が早いです。
 
public class Person {

	public static void main(String[] args) {
		//           0          
		int a = 10, b = 5;
		a = a ^ b;
		b = a ^ b;
		a = a ^ b;
		
		System.out.println("a=" + a + "
b=" + b); } }
 
もちろん以上の2つのアルゴリズムは、jsにも対応しており、以下のようにサポートされている。
 
var a = 11,b = 22;
a = a + b;
b = a - b;
a = a - b;

console.log(a+'
'+b)
 または
var a = 11,b = 22;
a = a ^ b;
b = a ^ b;
a = a ^ b;

console.log(a+'
'+b)
 
しかし、2つの変数が対象のタイプなら、java(強いタイプ)はどうすることもできないようです。jsはできますが、実現方法はまだまだ多くあります。
 
var a = {name:'jack'},b = {name:'tom'};
a = [a,b];
b = a[0];
a = a[1];

console.log(a.name+'
'+b.name)
 
または
 
var a = {name:'jack'},b = {name:'tom'};
a = {a:a,b:b};
b = a.a;
a = a.b;

console.log(a.name+'
'+b.name)
 
jsダイナミックタイプ(弱タイプ)システムおよびオブジェクト/配列の直接量特性を利用しています。他の強いタイプはいけません。コンパイラはタイプ変換エラーを提示します。
 
資源:http://en.wikipedia.org/wiki/XOR_swap