録音-.Netエンジニアが質問の要約に直面している(1)

1、オーバーロードとの違いは何書き換えどんな効果を持っています

書き換え:基底クラス内のメソッドは、親クラスのメソッドで定義されたサブクラスが繰り返されると、仮想メソッドと書き換えられるために、標識された抽象メソッドとabsractにのみ仮想.NETで継承の親子関係は、ある意味修飾子は、オーバーライドを指定する必要がありますサブクラスの方法では、仮想なければなりません

過負荷(オーバーロード)が同じ名前のメソッドを指し、同じクラス内のパラメータリストと戻り型の異なる値が存在します。

ルールを書き換える方法:

1、パラメータリストは、メソッドとまったく同じである必要があり、上書きされ、それ以外の場合は、リライトする呼び出すことができませんでしたが、過負荷状態に。

2、戻り値の型は、常にメソッドの同じタイプが上書きされ、それ以外は過負荷に書き換えるために呼び出さすることができませんでした返さなければなりません。

3、制限されたアクセス修飾子は、アクセス修飾子が方法(パブリック>保護>デフォルト>プライベート)に書き換えられるよりも大きくなければなりません。

4、オーバーライドメソッドは、新たな異常を投げてはいけないか、異常な比率は、より広範な検査の種類を明記オーバーライドされたメソッドです。

ルールのオーバーロード:
1は、異なるパラメータのリストを持っている必要があります;
2、限り、それに異なるパラメータのリストなど、さまざまな戻り値の型を持つことができます;
3、異なるアクセス修飾子を持つことができます;
4、あなたは別の例外をスローすることができます

 

2、仮想、抽象的、密封されたのそれぞれの役割

仮想キーワードまたは属性の宣言を修正するための方法は、この場合には、メソッドやプロパティは、仮想メンバーと呼ばれています。派生クラスは、内部変化を書き換えることができる
上書き封止もしくはその改変方法もしくはクラス、密封されたキーワードの役割によって継承することができない。他のこのようなクラスの継承を防ぐ用いクラス宣言内に封入され、メソッド宣言に密閉された修飾子の使用は、このメソッドクラスのオーバーライドを防止拡大
修正クラスabstrctをインスタンス化することができない、抽象クラスは、参照のみを宣言することができ、あなたはオブジェクトを作成できません。

 

 

3、簡単なconstの、静的、読み取り専用、volatileキーワードの役割との違い

CONST:静的定数は、静的変更されている、変更することはできません

静的:静的修正クラス

読み取り専用:動的定数は非常に類似して、静的な、静的な読み取り専用及びCONSTを修正することができます

揮発性:変数修飾子で、揮発性のキーワードが修飾が複数で同時に行うことができるフィールド・スレッドを示します。フィールドが揮発性のコンパイラの最適化(単一のスレッドによってそのアクセスを想定)の制約として宣言されていません。これは、フィールドが提示いつでも最新であることを保証  値を。フィールドvolatile修飾子は通常、複数のスレッドによるアクセスに使用されているが、アクセスをシリアル化するためにロックステートメントを使用しないでください

 

 

4、いくつかのフィルタタイプMVCの簡単な紹介

インターセプタ(インターセプター):
アクション(NET MVCが付属しています)
結果(NET MVCが付属しています)
例外(NET MVCが付属しています)

不要なフィルタリング要求が-停止し、ユーザーのデータ、事前のデータ処理を確認するためにチェック-アクションが経過
アクション[ResultFillters]で記述されている使用方法
インターセプタ役割:コードの再利用を、インターセプタを多重化することができます
操作するコントローラ入る前に:条件がスタート
うち、シェフが料理のための唯一の責任があり、早期にすべてを残して悪いの呼び出し:単一の責任を。
IHttpModeuleインタフェースによって達成インターセプタ
シーンのために:決済センター。

フィルター(フィルター):
このよう下品な言葉、危険な文字をフィルタリングするようなものを、使用した構成のように、リクエストコントローラの前に行われます。
インターフェイスへの登録要求に対処していない場合も、URLの一部をフィルタリングすることができ除外されます。

シーケンス:フィルタ - 迎撃 - アクション 

 

5、コールとJSの違いは適用します

適用:別のオブジェクトと現在のオブジェクトを置き換えるために、オブジェクトのメソッドを呼び出します。例えば:B.apply(A、引数);即ち、Bオブジェクトアプリケーションオブジェクトメソッド。

コール:別のオブジェクトと現在のオブジェクトを置き換えるために、オブジェクトのメソッドを呼び出します。例えば:B.call(A、args1、args2)、すなわちオブジェクトAは、オブジェクトBのメソッドを呼び出します。

コールと同じポイントを適用します。

(1)方法を意味する、すなわち、方法の機能は同じであり、同じです。

(2)最初のパラメータの役割は同じです。

コールと異なる点を適用します。

(1)は、複数のパラメータを渡すことができる電話。

(2)、2つだけの引数を適用し、それは多くの場合、アレイの形で渡された2番目のパラメータとして使用されています

存在意義:

実現(複数の)継承

 

6.閉鎖JSの役割だけでなく、一般的な使用シナリオが発生しました

コンセプト:多くの変数と環境変数式(通常は機能)を結合した、これらの変数は、このように表現の一部です。

用途:

       図1は、内部変数関数読み出し
       、これらの変数の値は、メモリ内に残るように、2。F1は、コールの後、自動的にクリアされません。
       3、簡単なコールローカル変数コンテキスト。コードのカプセル化を奨励しています。
理由:F1、F2が親関数で、f2はグローバル変数に代入され、f2は常にメモリ内に存在している、依存f1とf2があり、F1ため、メモリが常にある、とないコールの終了時に、ガベージコレクションの回復。

特徴:

  1. 関数が戻るとき、参照変数の関数として、それがアクティブ状態になっています。
  2. 閉鎖スタック領域は、関数がリソースの解放せずに、戻ったときということです。

 

シナリオを使用します。

1、自己実行匿名関数

2.結果キャッシュ

3、パッケージ

4、クラスと継承を実装

 

 

7.開梱と梱包とは何ですか

ボックス化値型は、プロセスの参照型に変換され、基準は、プロセス型の値型ボックス化解除変換することである
I = 10 int型、
オブジェクトO = I; //パッキング
のint J =(INT)O; // 解体箱

短所:
メモリとCPUを取ります

 

8、Vacharと文字の違いは何ですか

チャーは、VARCHARは可変長型であり、固定長のタイプです。
以下のような文字の種類:だけ一時的に3バイトと、その後、残りは空白文字によって占有されていない場合、CHAR(10)が構成する
数であるvacharどのくらい使用
charは255文字まで格納できる
65532文字まで保存することができますvachar
CHARアクセスvacharよりもスピードが、時間のためのスペースである
ストレージのcharが英語の文字は文字の1つのバイトは2バイトの記憶領域を占有する占有し、それぞれ英語の文字が2を占めているvarchar型でありますバイト、2バイト文字も。

 

9、文字列とStringBuilderの違いは何ですか?

文字列:不変文字列
のStringBuilder:文字の可変配列
新しい文字列オブジェクトにスプライシングされたメモリストリング内の文字、新しい領域の割り当て、文字列がスプライスされている場合は、StringBuilderのを使用するときなどは、場合、作成され続けます単純に新しい文字列オブジェクトを使用することができる作成
S =文字列"1234"と、
Console.WriteLineを(S);
S + = "789";
Console.WriteLineを(S);
出力は次のようになります12341234789
最初の出力であることを特徴と1234が、2番目は参照していますが、2つの文字列のヒープがされた新しいメモリ、新しいアドレスへのメモリポイントを作成するために、実際には二、しかし1234の最初のですが、それがメモリに残っています

文字列は、理由は削除されず、保持される:文字列は、文字列S =「1234」として参照型である;文字列 strが=「1234」; 前記STR点sです。メモリの効率的な利用を確保するために、
オブジェクトのStringBuffer StringBuilderクラスを変更するために、多くの時間とすることができ、新しい未使用のオブジェクトを生成しません。

データ操作のStringBufferマルチスレッドオペレーティング列バッファ大量の、
大きなデータ列バッファStringBuilderのシングルスレッド動作を操作します。

StringBuilderクラスは、Java 5の方法は、スレッドセーフ(アクセスを同期することはできません)ではないことを、それとのStringBuilder StringBufferの間の最大の違いを提示しています。
速度の利点と比べたStringBufferのStringBuilder以来、ほとんどの場合、StringBuilderクラスを使用することをお勧めしますので。ただし、アプリケーションの場合は、スレッドセーフ必要で、あなたはStringBufferクラスを使用する必要があります。

スピード:StringBulider> StringBufferの>文字列

 

 

10、あなたは取引、業務の理解を使用していました

リレーショナルデータベースでは、SQLで構成することができ、SQLもで数日で構成することができる
特性

一貫性(一貫性):お金ジョー・スミスとジョン・ドウの合計は変わりません。

アトミック(原子性):ジョー・スミスとジョン・ドウ少ないお金は同時にお金を増加させます。

持続性(耐久性):データベースに格納されるデータにこれらの最終的な変更
アイソレーション(分離):完全にトランザクションが成功する前に、その他の事項に影響を与えません実行、それが他のトランザクションによって影響されることはありません

データベースのトランザクション:

1、彼はデータベースの正常な動作に失敗した状態から回復するための方法を提供することができます

図2に示すように、複数のアプリケーションが同時にデータベースにアクセスするとき、それはこれらの用途の単離のための方法を提供することができる、操作は、それぞれのアプリケーション間の相互干渉を防止することができます

システムトランザクション:

事業運営の一連の、いずれかがすべて実行したり、すべての実行されていない3、

シーンを使用することができる:3つのデータテーブルが変更される時、修正された第1のデータテーブル、第二変形例、突然停電のテーブルデータは、トランザクションを使用することができる場合。

 

11、差分値と参照型

文字列は参照型に属します。に属するint型の値

1.メモリ・スタックに格納されるデータの種類の値、基準データのスタック型メモリに格納され、メモリセルは、ヒープ内のオブジェクトのみを記憶している
アドレス。
2.値型アクセス速度、アクセス速度より遅い参照型。
3.データは、実際の値、参照型は、ヒープまたは参照に格納されたデータを指すポインタを示すことを示しています

 

12、手書きのAJAX JavaScriptコード

機能テスト(){
VARのヴァル= 1;
$アヤックス({
タイプ: "GET";
URL: "ログイン";
非同期:トゥーレ;
データ: "+ =値":ヴァル;
データ型:JSON;
成功:機能(データ){
}
エラー:関数(データ){
}
})
}

 

13、バブルソート手書き

公共の静的な無効ArraySort()

{
INT []編曲= {9、8、7、6、5、4、3、2、1}。

int型、T = 0;

//小規模から大規模まで

N-1回の//総; - ;(私は+ +1 iがArr.Lengthを<I 0 = INT)のために

{
について(INT J = 0; J <arr.length - 1 - I; J ++)//(パスN-1-数)比較のトリップ総当たり
{
IF(編曲[J]>編曲[J + 1] )
{
T =編曲[J]。

ARR [J] = ARR [J + 1]。

ARR [J + 1] = T。
}
}
}
foreachの(編曲でのI INT)
{
Console.Write(I + "");
}
}
公共の静的な無効メイン()
{
ArraySort()。
}

 

14、refとの違いは何ですかアウト?

ときに参照型のパラメータを、渡されたパラメータを初期化する必要があります。
場合アウト初期化処理しなければならないパラメータの
複数の戻り値を返すために必要なときうち、修正された方法を参照してREFが発呼者と呼ばれています。
内部パラメータにREF摩耗が直接関数で使用することができ、及び方法を使用するためにアウト初期化する必要があり
refはせずにアウト摂取を有し、そして

 

 

15、代表者との関係は、なぜ利用手数料が何であるかのイベント

道を包装する方法を提供し、イベントは特定のアクションが発生したされ、イベントはの委託に基づいている代表団
プログラムが実行されているときに、同じデリゲートは、限り、彼の方法の変更を挙げることができるよう、さまざまなメソッドを呼び出すことができますので、コンディショナーを委託決定をコンパイルする際に方法はありませんが、プログラムが決定したに実行されています。

 

 

異なるインタフェースとクラス、および同じポイントで何16、

異なる点:
直接インタフェース、およびクラスができ、インスタンス化されていない
メソッドが含まのみ、全く方法実施ない属性インターフェース
インターフェース多重継承を、単一の継承クラスながら、
クラス区分のクラスの概念、異なるソースに定義することができます。ファイルの間で分割
異なる意味のセットの実現および発現は、インタフェース仕様は、メイン、均一な呼び出し方法、制約クラスを定義し、クラスメソッド関数

同じ点:
インタフェースとクラスと構造が複数のインターフェイスから継承することができる
同様の抽象基底クラスインターフェース:非抽象インタフェースの任意のタイプは、メンバーのすべてを継承するインターフェースを実装しなければならない
インターフェイスとクラスはイベント、インデクサ、メソッドおよびプロパティを含めることができ

 

 

17は、なぜ我々はDataReaderのではなく、データセットを使用するようにしてください

DataReaderオブジェクトは、SqlConnectionオブジェクトで占有されているため、すべての操作がsqlconnnectionになりますが、一つだけのデータをロードするたびに、より少ないメモリ占有するので、DataReaderの例外を作る
データセットはメモリ内に、すべてのデータ出力が完全にロードされた1回限りです。あなたが動的に行、列、データを追加することができますので、DataReaderのより柔軟な、大きなによって占有メモリ。そして、データベース更新操作を返します。

 

 

18、それぞれの一般的な意味

クラスA <T>ここで、T:新しいです()

Tは、変数の型との関係についてその制約示す場合
Aから継承された変数を表すデータのタイプ、またはそれ自体:T
新しい()Tのインスタンスは、関数を使用することは十分に指定する必要が作成され:Tは

Tは、プレースホルダを指し

 

 

19. オブジェクト指向の考え方とは何ですか

継承:サブクラスは、データと親クラスの動作のすべて継承し
、操作に基づいて、一緒にパッケージの抽象データ型とデータデータはカプセル化された抽象データ型で保護されていますパッケージの
多型:異なる方法の共存が、同じ名前を持つプログラムオーバーロードと書き換え:場合、2つの形式があります

 

 

20、ヒープ及びスタック、ヒープとスタックとの間の差との間の差

ヒープ:実行時のメモリ空間の動的割り当て、およびストレージはオブジェクトの配列である(つまり、実際には、オブジェクトの配列である)、任意の新たな確立がヒープにある、ヒープは、エンティティ(オブジェクト)に格納されています

スタックローカル変数に格納されている割り当てられたメモリ中にコンパイルされ、スタックメモリが、第一の記憶領域であるが、全ての方法は、(グローバル変数メソッドの外側にある)ローカル変数で定義されています

スタックのライフサイクルは、一般的にリリース上で実行して、非常に短く、時間からの回復時に実体ヒープガベージコレクションに保存されます

 

 

 

21、フィボナッチ数、第三十の計算値

F(N-1)+ F(N + 1)

第三十是832040

パブリックstaticのFn(INT i)を
{
(iは<= 0)場合
、{
0を返します。
}
そうならば(私は> 0 && iが<= 2){} 1を返します

他{F(I-1)+ Fを返す(I + 1)}
}

}

 

 

差が何であるかをデータベーステーブル方式、に接続されている22、

左側(左)と参加右(右)データが一致しないため、発生することがあり、呼接続に参加し、データに応じて右記録し、左、およびテーブルの対応するフィールドが行うカラーブランキング処理
等:表2に参加左TABLE1から選択* table1.id = table2.idに。

参加左(左結合)、すべてのテーブルのデータをチェックアウトするデータのtable1.id = table2.idに沿って、表2、NOT NULLとして
右(右リンク)に参加し、反対側の参加左
の内側を(等価結合)に参加:チェックのみデータのtable1.id = table2.id

 

 

 

23、データベーステーブルとのMyISAMのInnoDBエンジンとの間の差

InnoDBは:トランザクションエンジンのサポート、コミット提供、ロールバック、トランザクションセーフストレージエンジンのクラッシュリカバリ、一個の以上のファイルに格納されたコンテンツのすべて、Oracleのサポート。ロック機構
の利点は以下のとおりです。一連のコマンドは、すべての成功を実行する際に、問題を制御する機能を提供し、またはコマンドエラーのいずれかの結果は、すべてのコマンドはロールバックされている
短所は次のとおりです。遅い、大容量のディスクスペース


MyISAMテーブルは: -ストレージの定義、データの保存非トランザクションエンジンは、検索とスピードの保管、およびフルテキスト検索エンジンを向上させる、あなたが頻繁にアプリケーションのためのフルテキストインデックス、データのクエリを使用することができますされ、テーブルには3つの文書に分かれて、粗製のインデックスを保持します。
利点は以下のとおりです。高速で読み、リソースの多くを取ることはありません。
短所は次のとおりです:1、2がトランザクションをサポートしていない、フォールトトレランスは、ディスクがクラッシュした後、データがなくなって、良いではありません

 

 

 

GETを使用するとき24は、ポストを使用する場合

この方法は非常に長いURLが生成されますGET、ツアーの長さを超えてURLが限られている、不安は、他の人がパラメータを参照することができ
、サーバからデータを取得し、クエリがGETデータのために一般的に使用されているが
作る、一般的に提出を形成POST欠失一般データは、サーバはPOSTを変更するためのデータを送信します

 

 

25、Redisの使用方法について話をすると、キャッシュされたデータを更新するかどうかを判断する方法、およびどのような効果のキャッシュを参照してください

キャッシュキャッシュは、データを取得し、我々は常にデータベースは常に一貫性があることを確認することができないと、多くの場合、一般的ではありません
キャッシュは、データベースクエリを低減する利点を持っており、操作する
データキャッシュの欠点を完全に保証し、一貫することはできませんデータベース

使用するには、次のとおりです。キャッシュ内のデータがあるかどうかを判断するために、そこにデータベースクエリからのデータのないキャッシングはありませんし、データ更新のキャッシュを変更します

キャッシュの速度が速いの理由である:メモリーの動作を維持し、シングルスレッド動作、非ブロックI / Oの多重化機構(つまり、小包の顧客を得るために、宅配車です)
Redisの有効期限ポリシーを:

定期的に削除します。タイマーを設定し、キーをチェックし、ランダムチェックが100ms毎には(すべてのチェック場合、Redisのは動けなくなります)
不活性削除します、Redisのチェックのキー要求の期限が切れている場合は、有効期限が削除されます場合。
+理由もなくタイミングの不活性を削除するには、[削除]:それは定期的に削除キーを削除し、要求に行きませんでした、メモリは高くなります。あなたは、メモリを排除しないための機構を使用する必要があります(エラーにはメモリを、またはキー最近の記憶があまりない削除、全くランダムメモリキーを削除しません)

 

26、MVCを使用して、ならびにMVCの理解

:MVCは、3つの層に分割されている
V =ビュービュープレゼンテーション層
モデルビューに戻ってから取得したデータの処理、C =コントローラユーザインタラクション層を
M = Modelサービスロジック処理をするだけでなく、BLLモデルとDALを横切ります。
利点:
1、お互いを乱すことなくその職務を遂行。レイヤ3、コードだけで、他の層に影響を与えることなく、コードに対応する層を変更する必要があり、需要の変化に
基礎となる根本的な作るのですか、分業の賛成で、2ページを行うには、ビジネスを行う、ビジネスを行う
欠点を:
1、非効率的なモデルデータへのアクセスは、複数の呼び出しにのみ、不要なアクセスを変更していないデータに表示されるのに十分なデータを取得する動作性能を損傷するおそれが表示します

 

 

27、ESの理解とは何か、ESの使用方法(ES7を、タイプのグループ化を削除します)

オープンソースのLucene検索エンジンに基づいており、基本的に複数のコンピュータが複数のESを実行することを可能にする分散型データベースがされて
インデックスを作成しました-ノード-クラスタの概念、クラスタ内のノードのセットを、インデックスは、単一のドキュメントでは、ドキュメントと呼ばれる記録し、そしてより文書がインデックスを構成して、各ドキュメントはJSON形式です。断片化の概念を使用すると、デフォルトでは5、プライマリとセカンダリの断片化され、同等の負荷分散、自動的にルート
問題のスライスのため、だけでなく、他のを介してデータを照会するために、他の断片にロードバランシングに応じた制御をルーティングした後、ノードが回復します。
トークナイザは、IKセグメンテーションとしてインストールすることができる
データの取得方法を指定し、JSONデータクエリ(HTTPリクエスト)を接続するGET要求に対応する取得される
データベースのフィールド構造に対応する、マッピングマッピングインデックスの前に確立するために

 

28、データベースおよびサブパーティションテーブル

ゾーニング:パーティションが時間に応じて、そのような領域は2018から2019です。データテーブルは、N個のブロックに分割し、論理テーブルから成り、物理ブロックは、実際のNから構成されている
サブテーブル:N別個の物理記憶空間に分解される所定の規則に従ってテーブルを1/2/3/4/5型テーブルの種類に応じてテーブルを5つの分割されているように、テーブル、
優先度のパーティション、サブテーブル。
パーティションデータがテーブルに存在するが、一部のテーブルに応じて、テーブルは、クエリの速度をスピードアップと速度を書き込むために、このように各テーブル内のデータの量を減らすこと、テーブルをNにフィールドを吸引した後に

サブライブラリーに保存されたデータは、サーバーなしで吸い込ま

 

 

29、切り捨てとdelect、違いが何であるかをドロップ

削除delectがテーブルから削除されたすべての行を実行され、ロールバックするトランザクション・ログ・レコードで、この削除操作
TRUNCATEはテーブル内のすべてのデータを削除使い捨てで、ログインしていない、ロールバックではありません除去プロセスは、テーブル、実行速度に関連した削除トリガー活性化しない
テーブル全体を削除するには、ドロップ
のみのテーブル用の切り捨て
手術台を表示することができdelectと
> TRUNCATE>スピードdelectをドロップします

 

 

30、インターフェースは何ですか

インターフェースは、単に理解慣例である、の形で一貫性を達成するようなクラスまたはインタフェース構造体
インタフェースは、一般的に二つのタイプに分けられます。
まず、インターフェース・プログラムの内部:とモジュールとモジュールとの間の相互作用の方法。このようなログインとポストとして、ポストは、ログインインターフェースを呼び出す必要を投稿するにはログインする必要があります。
第二に、外部へのシステムインタフェース:他のサイトから互いのリソースや情報を得るためには、他の側は、データベースを開くことはありませんが、その後、他の当事者は、このようなショッピングサイトとして、指定されたデータのうち、クエリデータを取得するための方法を提供しますが、文字を呼び出すか、マイクロする必要がありますアリペイ決済インターフェース。
:インタフェースは、2つのタイプに分けられる
APIインターフェイス:HTTPプロトコル、経路によって区別、要求及びコンテンツは、キー値の形式、コンテンツは一般返されるJSON形式であり、取得およびPOSTメソッドのメソッドは、より一般的に使用されます。
Webサービスインタフェース:SOAPは、HTTPプロトコルを介して送信され、要求は、XML形式で返され

 

おすすめ

転載: www.cnblogs.com/xuzy-x/p/11701126.html