JAva面接問題説明[2]


1、プログラミング問題:Singletonを書く----------コアは構造方法の私有化である
  
package com.test.demo;
public class Singleton {
	private static final Singleton sin=new Singleton();
	private Singleton(){  //        
	}
	public static Singleton getInstance(){
		return sin;
	}
}

 
JavaにはRuntimeクラス、Classクラスがありますが、いずれも一例設計です.
2、コードを作成し、コンソールから数字のセットを出力した後、ソートしてコンソールで出力することを実現する.
数値の間に「」を使用して分割すると仮定し、ソートである以上、集合保持を使用してTreeSetを使用して保存できます.
 
package com.test.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Demo {
	public static void main(String[] args) throws Exception{
		BufferedReader buf=new BufferedReader(
			new InputStreamReader(System.in));
		System.out.print("       ,        :");
		String str=buf.readLine();
		Set<Integer> set=new TreeSet<Integer>();
		String s[]=str.split(" ");//    
		for(String x : s) {
			set.add(Integer.parseInt(x)); //    
		}
		System.out.print("        :");
		Iterator<Integer> iter=set.iterator();
		while(iter.hasNext()){
			System.out.print(iter.next()+"、");
		}
	}
}

 
以上の操作では、すべてのデータが正しい数字と仮定されているため、時間的に文字列である可能性があります.
§1つ目の方法:文字列は許可されますが、すべての文字列は無視されます.
§2つ目の方法:文字列は許可されていません.文字列が発生した場合、プログラムは下に進みません.
プログラムの改善機能:
package com.test.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Demo {
	public static void main(String[] args) throws Exception{
		BufferedReader buf=new BufferedReader(
			new InputStreamReader(System.in));
		System.out.print("       ,        :");
		String str=buf.readLine();
		Set<Integer> set=new TreeSet<Integer>();
		String s[]=str.split(" ");//    
		for(String x : s) {
			if(x.matches("\\d+")){
				set.add(Integer.parseInt(x));
			}
			//
		}
		System.out.print("        :");
		Iterator<Integer> iter=set.iterator();
		while(iter.hasNext()){
			System.out.print(iter.next()+"、");
		}
	}
}

 
3、あるフォルダの下にあるすべてのファイルをリストします.
典型的な再帰呼び出し.
package com.test.demo;
import java.io.File;
public class ListFiles {
	public static void main(String[] args) {
		File file=new File("D:"+File.separator+"doc");
		fun(file);
	}
	public static void fun(File file){
		if(file.isDirectory()){
			File f[]=file.listFiles();
			if(f!=null){
				for(int x=0; x<f.length; x++){
					fun(f[x]);
				}
			}
		}else{
			System.out.print(file);
		}
	}
}

 
4、Char型変数に中国語の漢字を1つ保存できますか?どうして?
unicode符号化を使用しているので、保存できます.
5、マルチスレッドにはいくつかの実現方法がありますが、何ですか.同期にはさまざまな実装方法がありますが、何ですか?
Threadクラスを継承しRunnableインタフェースを実装する2つの実装方法
l ThreadクラスはRunnableインタフェースのサブクラスです
l Runnableインタフェースを使用してリソース共有の目的を実現する
lすべてのスレッド操作はThreadクラスのstart()メソッドで開始する必要があります
同期を実現する2つの方法
l同期コードブロック:Synchronized(this){}
l同期方法
6、Float型float f=3.4は正しいですか?
正しくありません.デフォルトでは3.4がdoubleタイプのデータです.
7、StringとStringbufferの違いは?
Stringは変更できません.Stringbufferは変更を許可します.
8、  Class.forNameの役割は?どうして使うの?
Class.forNameはコンテナへのロードプログラムに属します.たとえば、前に説明したJDBCの使用でこの文が使用されたことがあります.
9、Intとintegerの違いは何ですか?
Intは基本データ型、integerはパッケージクラス
JDK 1.5以降、自動梱包・解体作業が可能
10、最も効率的な方法で2に8を掛けると何になりますか.
シフト操作を用いる:2<<3
11、クラスセットフレームワークの完全な構造を説明してください.
žクラス・フレームワークの最大インタフェース:Collection、Map、Iterator、Enumeration
žCollection Collection:請求書値の保管
List:重複コンテンツの許可
Arraylist:非同期処理、新しい操作クラス、非スレッドセキュリティ
Vector:同期処理、古い操作クラス、スレッドセキュリティ、Enumeration出力サポート
Set:重複コンテンツは許されず,HashCode()とequals()で重複検証を行う.
HashCode:無秩序保管
ThreeSet:秩序正しく保管し、Comparableでソートする
Map:一対の値を格納
HashMap:新しいクラス、非同期処理、非スレッドセキュリティ、空き値を許可します.
Hashtable:古いクラス、同期処理、非スレッドセキュリティ、空き値は許可されません.
Iterator:反復出力、Collectionインタフェースのiteratorメソッドによる出力、新しい出力基準
Enumeration:古い出力操作.
12.Stringクラスを継承できるか
final宣言が使用されているため、許可されません.