5(答え)50強制Javaのインタビューの質問

41、日時:

1)どのように日付、時間、分、秒を取得しますか?

2)現在まで1970年1月1日に0時00分00秒でからのミリ秒数を取得する方法?

3)どのように月の最終日を得るのですか?

4)どのように日付をフォーマットするには?

次のように操作方法は次のとおり

1)java.util.Calendarのインスタンスを作成し、異なるパラメータ値を渡し、そのget()メソッドは、パラメータに対応得ることができるコール

2)以下の方法は、ミリ秒数を得ることができます。

。Calendar.getInstance()getTimeInMillis();  
System.currentTimeMillis();  
//何问起hovertree.com

3)以下のサンプルコード:

カレンダー時間= Calendar.getInstance();  
time.getActualMaximum(Calendar.DAY_OF_MONTH)。  
//何问起hovertree.com

フォーマットjava.text.DataFormat(例えばてSimpleDateFormatクラス)を使用して、サブクラス4)(日)メソッドは、日付をフォーマットすることができます。

 

42、昨日現在の時刻を印刷します。

回答:

 

パブリッククラスYesterdayCurrent {   
    パブリック静的無効メイン(文字列[] args){   
        カレンダーCAL = Calendar.getInstance();  
        cal.add(Calendar.DATE、-1)。  
        System.out.println(cal.getTime())。  
    }   
} //何问起hovertree.com

 

43、JavaとJavaSciprtを比較します。

回答:JavaScriptとJavaは2は、二つの異なる製品を開発しています。SunはJavaは、インターネットアプリケーション開発のために特に適したオリジナルのオブジェクト指向プログラミング言語は、ある導入、およびJavaScriptはNetscapeの製品である - 開発Netscapeブラウザの機能を拡張する方法は、上で動作するWebページに埋め込むことができますオブジェクトとイベント駆動型の解釈前身LiveScriptある言語、;以前はオークとして知られており、Java言語、。

次に、二つの言語間の類似点と相違点は、次の比較を作るために:

1)オブジェクトベースのオブジェクト指向:Javaは、真のオブジェクト指向言語、簡単な手順であっても、開発されたオブジェクトを設計する必要があります。JavaScriptがネットワークを独立させるために使用することができますスクリプト言語の一種である、ユーザーとの対話複雑なソフトウェア。これは、オブジェクト(オブジェクトベース)に基づいて、イベント駆動型(イベントドリブン)プログラミング言語です。だから、自身がデザイナーが使用するために非常に豊かな内部オブジェクトを提供します。

2)の解釈とコンパイル:実行前にJavaソースコード、コンパイルする必要があります。JavaScriptが解釈したプログラミング言語であり、そのソースコードは、ブラウザの実行によって解釈、コンパイルする必要はありません。

3)弱いと強いタイプ変数変数の型は:;その弱いタイプを使用して、変数の宣言ではJavaScript Javaは強くコンパイルする前に、すべての変数が陳述をしなければならない変数の確認を入力しました。すなわち、必要が使用する前に、変数の宣言をしないために、しかしインタプリタは、実行時にそのデータ型をチェックします。

4)コードの形式は同じではありません。

追加:上記の4つのポイントが与えられ、元のいわゆる標準答えがあります。実際には、JavaおよびJavaScriptの最も重要な違いは、静的言語は、動的言語であるということです。現在の傾向プログラミング言語は、機能的かつ動的言語です。Javaクラス(クラス)において、第一級市民であり、JavaScript関数(機能)は、第一級市民です。この問題のために、自分の言葉で面接または回答に、よりトリッキーになります。

 

44、ときアサートを使用するには?

A:アサーション(アサーション)は、ソフトウェア開発言語に共通のデバッグモードは、多くの開発者のために、このメカニズムをサポートしています。一般的に、基本的な、重要な正しさのためのアサーション保証手順を話します。アサーションチェックは、開発およびテスト中に、通常は開いています。パフォーマンスを向上させるために、ソフトウェアのリリース後、アサーションのチェックは通常閉じられています。実装では、アサーションはブール式を含むステートメントで、ときの文の実装式が真であると仮定し、式がfalseと評価された場合、システムはAssertionErrorが報告されます。

デバッグ目的のためのアサーション:

アサート(A> 0)。// <= 0の場合はAssertionErrorをスローします

アサーションは、2つの形式で来ることができます。

Expression1のを主張。

Expression1の主張:Expression2のを。

式1は常にブール値を生成する必要があります。

式2導出された値は、任意の式であってもよく、この値は、よりデバッグ情報文字列メッセージの表示を生成するために使用されます。

アサーションは、コンパイル時にアサーションを有効にするために、デフォルトでは無効になって、あなたはソース1.4のマークを使用する必要があります。

javacの-source 1.4 Test.java

実行時にアサーションを有効にするには、-enableassertionsまたは-eaマークを使用します。

実行時にアサーションを無効にする選択するには、-daまたは-disableassertionsマークを使用します。

アサーションのシステムクラス、使用-esaまたは-dsaマークを有効にするには。また、パッケージに基づいてアサーションを有効または無効にすることができます。置かアサーションは通常予想内の任意の場所に到達することはできません。アサーションは、プライベートメソッドに渡されたパラメータを検証するために使用することができます。しかし、アサーションは関係なく、アサーションが有効になっているかどうかの、パブリックメソッドは、パラメータをチェックするため、パブリックメソッドに渡されたパラメータを検証するために使用すべきではありません。しかし、両方はまた、公共のプロセスにおける非パブリックメソッドにおける事後条件アサーションテストを利用することができます。また、アサーションは、どのような方法でプログラムの状態を変更しないでください。

 

45、エラーと例外の違いは何ですか?

回答:エラーは、システムエラーの異常なレベルを示し、に対処する必要はありません、回復した場合の深刻な問題は不可能ですが、非常に難しいことではありませんされ、このようなメモリオーバーフローとして、プログラムは、このような状況に対処するために期待することはできません。例外は、キャプチャする必要性を表明異常や処理のために必要な手順、設計や実装の問題、つまり、それが適切に実行した場合、状況は決して起こらなかったことを意味します。

追加されました.. 4つのオプションに、モトローラ2005インタビューのメモリ不足「のプロセスは、スタックオーバーフロー実行時エラーが報告された場合、最も可能性の高い原因は何ですか?」などの質問をし、bの書き込み無効なメモリ空間、再帰関数もにStackOverflowErrorが発生する可能性があり、実行時に境界Javaプログラムのうち、;. Dの配列のインデックスを呼び出すC、これが唯一の再修正したコードに、この質問に直面する答えがあり、回復不能なエラーです。 C。あなたは再帰的な迅速な収束を書き込むことができない場合は、次のように、スタックオーバーフローエラーをトリガする可能性があります。

 

パッケージcom.lovo。  
  
パブリッククラスStackOverflowErrorTest {   
  
    パブリック静的無効メイン(文字列[] args){   
        主(NULL)。  
    }   
} //何问起hovertree.com

 

そのため、再帰を使用してプログラムを書くときは心の中で二つのことを負担しなければならない:1つの再帰式を、2収束条件(それはもはや再帰的であるときには背面に見て)...
 

 

実行時に46、return文がある} {試みるが、その後、コードは最後に試した後に続くだろう{}レーンの前または後に返す、実行されないのだろうか?

A:はい、実行、呼び出し元メソッドに戻る前に実行。Javaは、あなたは、finallyブロックがreturn文はすぐに呼び出し元に戻りませんしてみてください、存在するが、最終的には次のレコードを完成するためにブロックした後、戻り値が再び呼び出すかのように、最終的に悪い習慣である、戻り値を変更することができますあなたは戻り値を変更すると、その値の復帰、そして最終的には、このプログラムは、規定上の多大な苦痛、C#は文法から、このようなことを行うことができない原因となります。

 

47、どのようにJava言語の例外処理、キーワード:スロー、使用方法、それぞれ、最終的には、キャッチ、してみてください、投げますか?

:オブジェクト指向のアプローチを介してJavaの例外処理は、種々の異常を分類し、かつ良好なインターフェースを提供します。Javaでは、各異常クラスのThrowableまたはサブクラスのインスタンスであるオブジェクトです。メソッドが例外情報が含まれている例外オブジェクトをスローした後、例外が発生すると、そのオブジェクトのメソッドは、この例外処理をキャプチャすることができます呼び出します。Javaの例外処理は、5つのキーワードによって実現されます。最後に、しようとキャッチし、投げる、投げる、と。通常の状況下では、デフォルトのプロセッサによって最終的には(最終的に)例外が発生した場合、システムは、あなたがタイプ(キャッチ)でそれをキャッチすることができます。この時間が例外をスロー(スロー)し、プログラムを実行するためにそれを試して、またはあります対処するために、すべての「異常」のための予防プログラムを指定しようとすることで、あなたが「異常」をキャプチャするタイプを指定するために使用される、すぐにtryブロックの後にcatch句、; throw文は、明示的に "スローします異常な「;メンバ関数をマークするために使用することは、さまざまな投げることが投げる」異常「と、何が起こるかに関係なくことを保証するためのコードの最後に作品」「異常はコードの実装であり、あなたは、メンバ関数の呼び出しを試して文を書くことができますこのメンバ関数内の他のコードを保護しようとする別のステートメントを記述します。try文があるときはいつでも、すべて試すの文が完了するまで、「異常」の枠組みでは、スタックの一番上に置くために。次のレベルのtry文が処理のために、「例外」のいくつかの種類ではない場合、それは、この「異常」の文を試すに対処する必要が遭遇するまで、スタックが展開されます。

 

48.テストの異常の類似点と相違点と実行時例外とは何ですか?

:異常が、発生する可能性があり、通常は仮想マシンの実行時例外を示して異常状態のプログラムは、それが異常を生じる可能性がある実行しているを示している限りプログラミングは全く問題は通常発生しませんでしたとして、共通ランタイムエラーです。異常な状況は問題がまだ使用してスローされる可能性があるため、プログラミングが、正しい場合でも、約実行している被験者。宣言を要求しなければならないJavaコンパイラは、被験者の異常が発生する可能性がスローされますが、スローキャッチされない例外が宣言されなければならないの実行時に必要とされていません。異常と継承は、オブジェクト指向プログラミングは、神が例外の使用で「効果的なJavaの」として、以下のガイドラインを与え、多くの場合、虐待を受けているものです。

 

  • 通常の制御フローのために例外処理を使用しないでください(うまく設計されたAPIは、正常と異常の使用の流れを制御するために、呼び出し元に強制すべきではありません)

  • 利用対象者の異常事態は、実行時プログラミングエラーの使用に、例外を復元することができます

  • (異常の発生を防止するために、いくつかの状態検出手段を介して)例外の不必要な使用を回避する被写体

  • 標準の例外の優先利用

  • 各メソッドは、例外が文書を持っている必要がありますスロー

  • 異常アトミック

  • キャッチでキャッチされた例外を無視しないでください。

 

 

49、あなたの共通ランタイム例外のいくつかをリストアップ!

回答:

ArithmeticException(算術演算例外)

ClassCastExceptionが(クラスキャスト例外)

例外:IllegalArgumentException(不正な引数例外)

例外:IndexOutOfBoundsException(以下の表境界例外)

NullPointerExceptionが(ヌルポインタ例外)

SecurityExceptionが(セキュリティ例外)

 

50、最終的に、最終的には、違いを確定?

:ファイナル:修飾子(キーワード)は、3つの使い方があります。クラスは、それが抽象的と反意語であるので、継承することはできません別の予期せぬ新しいサブクラスを送信できないことを意味し、最終的に宣言されている場合。finalとして宣言された変数は、最後の変数が初期文で与えられなければならないとして、彼らが利用変化していないことを保証することができ、それが宣言され、その後の参考文献にのみ変更することができません読み取ることができます。また、宣言され、最終的なアプローチだけで使用は、サブクラスでオーバーライドすることはできません。最終的には:通常、常に、あなたが最終的に外部リソースで書かれたコードを公開することができますに関係なく、正常または異常な実行プログラムは、コードは限りJVMが実行できるよう、ここで閉じていない発生することを意味し、コードブロックを実行しますください... catch構造の背後に配置ブロック。確定:クラスで定義されたオブジェクトのメソッドを、Javaのガベージコレクタでメモリから出て行く前に必要なクリーンアップ作業を行うためにオブジェクトを削除するにはファイナライズ()メソッドを使用することができました。このメソッドは、オブジェクトが破棄されたとき、あなたはファイナライズ()メソッドをオーバーライドすることにより、システムリソースを片付けるか、その他のクリーンアップ作業を行うことができるガベージコレクタによって呼び出されます。

おすすめ

転載: blog.csdn.net/qq_39581763/article/details/93715976