Java面接問題の7

2927 ワード

三十四、符号化変換、GB 2312符号化文字列をISO-8859-1符号化文字列に変換する方法.
String a=new String(「中」.getBytes(「gb 2312」)、「iso-8859-1」);
String a=new String(「中」.getBytes(「iso-8859-1」)
具体例参照:http://blog.csdn.net/u010142437/article/details/11808525
 
三十五、ごみ回収器の基本原理は何ですか.ゴミ回収機はすぐにメモリを回収できますか?仮想マシンにゴミ回収を自発的に通知する方法はありますか?
GCの場合、プログラマがオブジェクトを作成すると、GCはそのオブジェクトのアドレス、サイズ、使用状況を監視し始めます.通常、GCは、ヒープ内のすべてのオブジェクトを図面に記録および管理する.このようにして、どのオブジェクトが「到達可能」であり、どのオブジェクトが「到達不可能」であるかを決定します.GCがいくつかのオブジェクトが「不可」であると判断した場合、GCはこれらのメモリ領域を回収する責任があります.いいですよ.プログラマは手動でSystemを実行することができる.gc()は、GCの実行を通知しますが、Java言語仕様ではGCが必ず実行されるとは保証されていません.
 
三十六、staticメソッドの内部から非staticメソッドの呼び出しを発行できますか?
正確な答えは直接呼び出すことはできません.
非staticメソッドはオブジェクトに関連付けるため、オブジェクトを作成してからメソッド呼び出しを行う必要がありますが、staticメソッド呼び出し時にオブジェクトを作成する必要がなく、直接呼び出すことができます.すなわち、staticメソッドが呼び出されると、インスタンスオブジェクトが作成されない可能性があります.たとえばmainメソッドでstatic以外のメソッドを直接呼び出すと、コンパイルできません.しかし、静的メソッドでは、まずオブジェクトをインスタンス化し、メソッドを呼び出すことができます.
 
三十七、clone()メソッドを書くとき、通常は1行のコードがありますが、何ですか.
super.clone();Cloneにはデフォルトの動作があり、正確なサイズの空間を生成し、ビット単位でコピーします.(まず、親のメンバーをコピーし、次に自分のメンバーをコピーします).
 
三十八、CollectionとCollectionsの違い
1.Collectionはセットのルートインタフェースで、その下にsetとlistがあり、setとlistについては前に詳しく説明した.
2.Collectionsは、様々なコレクションの検索、ソート、スレッドセキュリティなどの操作を実現する一連のスタティツクメソッドを提供する、コレクションクラスに対するヘルプクラスです.
 
三十九、Setの要素は繰り返してはいけませんが、どのような方法で繰り返しを区別しますか?==ですか、それともequals()ですか.違いは何ですか?containsで重複するオブジェクトがあるかどうかを区別します.まだ使いません.
Set集合要素は繰り返してはいけません.要素が等しいかどうかを比較し、equalsとhashcodeを書き換えます.
比較時にhashCodeメソッドを呼び出し、異なる場合は等しくないことを証明します.同じ場合、equalsメソッドを呼び出し、equalsメソッドが同じ場合、等しいことを証明します.違います.証明は等しくありません.
すなわち,呼び出しhashCodeとequalsが等しい場合のみ,等しい.残りは等しくない.
equals()と==の違いについては前述した.
Containsは、集合に要素が含まれているかどうかを判断するために使用されます.
 
40、javaコードでスタックを書く
package com.lovo;



public class Stack {

	int[] data;

	int maxSize;

	int top;



	public Stack(int maxSize) {

		this.maxSize = maxSize;

		data = new int[maxSize];

		top = -1;

	}



	/**

	 *  

	 * 

	 * @param data

	 *             

	 * @return  

	 */

	public boolean push(int data) {

		if (top + 1 == maxSize) {

			System.out.println(" !");

			return false;

		}

		this.data[++top] = data;

		return true;

	}



	/**

	 *  

	 * 

	 * @return  

	 */

	public int pop() throws Exception {

		if (top == -1) {

			throw new Exception(" !");

		}

		return this.data[top--];

	}



	public static void main(String[] args) throws Exception {

		Stack stack = new Stack(1000);

		stack.push(1);

		stack.push(2);

		stack.push(3);

		stack.push(4);

		stack.push(5);

		while (stack.top >= 0) {

			System.out.println(stack.pop());

		}

	}

}