以下はNETインタビューのすべてではなく、見逃したかもしれないと思うことを書いてください。
1.インタビューの概要
ピットを避ける:深セン龍崗李ラングYH株式協会鳩のオファー
オファーは鳩によって再就職されたので、8日から12日(11社)の面接から、全体的に面接は難しくないと感じています。つまり、多くの企業がプロセスを取っているので、本当に人が必要ではなく、一部でも1つまたは2つの話をして、通知に戻りましょう。面接の前に会社が何をしているか、ビジネスがどのように見えるかを理解することは注目に値します。履歴書は一般的に技術的に一致しているか、プロジェクトが類似しているので、2つの側面で答えられないことを避けることができ、同じ都市での面接はできるだけ誠実です。
2.インタビュー内容の概要:
バックエンド技術の要点:オブジェクト指向、よくあるアルゴリズムと実現、よくある設計パターン、C#基礎、.. NET Core(ミドルウェア、. NETとの、IOC/DI、、国内フレームワーク(furion))、coreとORM、マルチスレッド、パフォーマンス最、キャッシュ(Redis、MongoDB )、、マイクロサービス、分散(少ない)、Docker(少ない)、CI/CD(少ない)、Linux(少ない)、リソートテーブル(少ない)。
データベース技術のポイント:SQL構文、インデックス、クエリ最適化、ストアドプロシージャ、主流のデータベース(SQLサーバー、My SQL、Postgresql(少ない))、デッドロック、トランザクション、関数、B+ツリー、赤黒木、Bツリー(この部分は非常に少ない)。
フロントエンド技術のハイライト:Vue、jQuery、UniApp。
ビジネス関連:1。顧客や現場と直接コミュニケーションを取るかどうか、どのように行うか。2.プロジェクトの機能とシナリオ、問題が発生した場合、解決方法を説明します。
面接の質問(覚えている部分):
- オブジェクト指向の理解と特徴を教えてください。
回答を参照https//blog.csdn.net/weixin_51201930/article/details/122652397
A:オブジェクト指向とは、現実世界の物事をオブジェクトに抽象化することを指し、各オブジェクトは対応するメソッドとプロパティを使用し、オブジェクト指向の3つの主要な機能:継承、カプセル化、多相。
- 普段の仕事で役に立つことはありますか?
回答を参照https//blog.csdn.net/dreame_life/article/details/104342490 https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
答え:再帰、バブル、二分。(この質問はデータ構造についての質問だと思いますが、https://blog.csdn.net/heyuchang666/article/details/498916 3 5を参照してください。
- 一般的なデザインパターンは?仕事で使うものは?
回答を参照https//www.cnblogs.com/abcdwxc/archive/2007/10/30/942834.html
A:アダプター、デコレータ、抽象ファクトリー
- C#の値型と参照型とは何ですか?違いは何ですか
参照先learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-types A:値型は整数型、浮動小数点型、ブール型、構造体、列挙型、タプル、charで、参照型はclass、interface、delegate、record、dynamic、object、stringです。
値型の変数には型のインスタンスが含まれます。型のインスタンスへの参照を含む参照型変数とは異なります。
値型はすべてSystem.ValueTypeから暗黙的に派生します。
- C#コレクションとは何ですか?違いは何ですか?
参照先learn.microsoft.com/zh-cn/dotnet/standard/collections/commonly-used-collection-types
A:より多くの使用:ArrayList、List、Queue、Hashtable、Dictionary、違いはスレッドセーフとアプリケーションシナリオであり、リストの読み取りはスレッドセーフであり、arrayListはそうではなく、リストはジェネリックソート、検索に使用でき、辞書はキー値ペアの辞書コレクションに使用できます。Queueは、先入れ先出しオブジェクトのコレクションを表します。キューは、項目への先入れ先出しアクセスが必要な場合に使用されます。ハッシュテーブルの各項目にはキー/値のペアがあります。コレクション内のアイテムはハッシュキーで直接アクセスできます。
- char、string、stringbuildの違いは?
参照先learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/strings/ https://blog.csdn.net/qq_44034384/article/details/106739003
答えは:単一文字を格納するための文字列は、文字列オブジェクトの読み取り専用コレクションであり、文字列の変更は、新しい文字列オブジェクトを作成し、StringBuilderクラスは異なり、各操作は、新しいオブジェクトを生成するのではなく、独自のオブジェクト操作であり、そのスペースは、コンテンツの増加と拡張に伴い、変更操作の多くではなく、多数の匿名オブジェクトを生成し、システムのパフォーマンスに影響を与えません。
- NET Framework、.NET Standard、.. . NET Core、. NET 5/6/7の違い
- NET Frameworkと. NET Coreはどちらも、さまざまな種類のアプリケーションを構築するために使用できます。NET FrameworkフレームワークはWindows 上でのみ動作します。
NET Coreは、Windows、Linux、macOSオペレーティングシステム用の無料でオープンソースのホスト型フレームワークです。
NET 5/6/7は. NET Coreの安定版です。
NET Standardは、. NET Frameworkの特定のアセンブリを. NETに対応させるリレーショナルテーブルに相当する仕様のセットです。NET Coreとは
- NET Coreミドルウェアとパイプラインの理解について話します。
参照先learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/? view=aspnetcore-6.0
A:アプリケーションの完全なリクエスト処理はパイプラインと呼ばれ、ミドルウェアはリクエストとレスポンスを処理するためにアプリケーションパイプラインに組み立てられたコンポーネントで、ロギング、例外キャプチャ、リクエストインターセプト、キャッシュ処理によく使用されます。
- IOC、DI、AOPとは何か、なぜ、どのように使うのか。
参照先learn.microsoft.com/zh-cn/dotnet/core/extensions/dependency-injection
IOCは制御の反転であり、クラスによって直接インスタンス化されるのではなく、クラスの具体的な実装を外部コンテナに渡すという考え方であり、この反転によって制御が外部コンテナに渡され、クラスとクラス間の結合が減少する。
DIは依存注入であり、クラス間の依存関係を結合するIOCの実装であり、3つのライフサイクルを持つ。
- Transientサービスは常に異なり、サービスが取得されるたびに新しいインスタンスが作成されます。
- Scopedサービスは、新しいスコープでのみ変更されますが、あるスコープ内では同じインスタンスです。
- シングルトンサービスは常に同じであり、新しいインスタンスは一度だけ作成されます。
ネイティブDIはコンストラクタインジェクションまたはService Provider.CreateScop.GetServiceインスタンスをサポートし、拡張インジェクションが必要な場合はautofacを使用します。 AOPはアスペクト指向プログラミングであり、プリコンパイル方式と実行時の動的プロキシによりプログラム機能の統一的な保守を実現する技術である。実行時にdllを動的にマップしてクラスインスタンスを取得すると理解しています
- EFコアとORM
参照先blog.csdn.net/u011854789/article/details/72783902
ORMは、オブジェクト指向オブジェクトモデルとリレーショナルデータベースのデータ構造間の相互変換を指し、EFの3つのプログラミングモード(データベースファースト、モデルファースト、コードファースト)を指します。
マルチスレッドhttps//www.yuque.com/zhanglin-l1ak6/ll06t7/tkq97k
isblog.csdn.net/adminpd/article/details/122934938
インデックスとは何か、インデックスの種類(SQL Server)
参照先learn.microsoft.com/zh-cn/sql/relational-databases/indexes/indexes? view= sql-server-ver16
Aインデックスはクエリのパフォーマンスを高速化するために使用されます。テーブルからデータをすばやく取得できます。
- ストアドプロシージャとは?弱点とは?
A:ストアドプロシージャは、特定の機能を達成するためにデータベースに格納されたSQLステートメントのセットです。
ストアドプロシージャの利点:
-
- 効率的な高
一度コンパイルされると、ストアドプロシージャはデータベースに保存され、呼び出されるたびに直接実行されます。他の場所(メモ帳など)に保存したい通常のSQLステートメントは、実行する前に解析され、コンパイルされます。ストレージプロセスをより効率的にしたいのです
-
- ネットワークトラフィックの削減
ストアドプロシージャはコンパイルされてデータベースに配置され、リモート呼び出し時に多くの文字列型SQLステートメントを転送することはありません。
-
- 再利用性が高い
ストアドプロシージャはしばしば特定の機能のために書かれており、その特定の機能を完了する必要があるときに再度呼び出すことができます。
-
- 高メンテナンス性
機能要件に小さな変更がある場合、以前のストアドプロシージャを変更する方が簡単で労力がかかりません。
-
- 高いセキュリティ性
特定の機能を完了するストアドプロシージャは、一般的に特定のユーザーのみが使用でき、ID制限があり、より安全です。
ストアドプロシージャの短所:
- ストアドプロシージャの構文はデータベースごとにほとんど異なり、メンテナンスが非常に困難です(汎用性が低い)。
- ビジネスロジックはデータベース上に置かれ、反復が困難
手書き:
create proc StuProc
@sname varchar(100)
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go
exec StuProc '赵雷' //执行语句
- デッドロックとは何か、それを避ける方法。
A:デッドロックとは、実行中に2つ以上のプロセスがリソースをめぐる競争によって互いに待機する現象を指し、外部の力がなければ前進できません。同じ順序でオブジェクトにアクセスし、トランザクション中のユーザー操作を回避し、トランザクションを短く保ち、1つのバッチで完全なテーブルスキャンを避けるためにインデックスを適切に設計する
SqlServer関数の作成https//www.cnblogs.com/Brambling/p/6686947.html
ビジネスとは何か、特徴は何か。
トランザクションはメカニズムであり、一連のデータベース操作コマンドを含む一連の操作です。トランザクションは、すべてのコマンド全体をシステムに送信またはキャンセルするため、データベースコマンドのセットが実行されるか実行されないかのどちらかであるため、トランザクションは作業論理の不可分単位である。原子性(Atomicity)、一貫性(Consistency)、隔離性(Isolation)、永続性(Durability)の4つの特性を持ち、これらの4つの特性はしばしばACIDと略される。
フロントエンドセクション:Vueの基本、コンポーネント通信と再利用、jQueryとの違い、JS構文、JSの基礎、一般的に使用されるUIフレームワークなど。
また、キャッシュミドルウェア、メッセージミドルウェア、ログミドルウェア(ログエスカレーションと統計)、分割テーブルライブラリ、キャッシュの永続性と一貫性、マスター/スレーブ同期、データの読み書き分離、データベースのB+ツリー、赤黒木、Bツリーなどについても質問されます。