ある外資系企業の大工場の面接問題

2728 ワード

面接の問題は全部英語です.ここでは英語で復唱する必要はありません.簡単に中国語で復元します.面接問題を書く前に、簡単にまとめると、面接はJava開発で、試験用紙の全体的な難易度から見ると、最後のオープン問題を除いて、他はまあまあですが、私自身の料理は、基礎がしっかりしていないのか、コードが少なすぎて、熟練していません.一方、自分が経験したプロジェクトの経験も少なすぎて、多くの知識点も理解したことがなくて、全体の答案用紙はデータベースの方面があって、C++の方面があって、linuxコマンドを考察することもあって、全体的に言えば、答案用紙の調査の知識点はとても全面的です.もう一言、私は本当に料理が下手で、面接官は私の致命的な点を指摘して、知識の掌握が浅すぎて、それを知らなかったが、それを知っていた.
話が遠くなったので,やはり直接問題に出た.
答案用紙は全部で4つの部分に分けられ、それぞれ選択問題、コード問題、簡答問題、開放問題である.
第一部——選択問題
1.この问题はデッドロックを考察して、具体的な问题ははっきり覚えていないで、みんなはもっとデッドロックを理解すればいいので、ここで私は简単にデッドロックの定义を书きます.
スレッドデッドロックとは、2つ以上のスレッドが互いに必要なリソースを持っているため、これらのスレッドが待機状態にあり、実行できないことを意味します.スレッドがオブジェクトのsynchronizedコードブロックに入ると、コードブロックを終了するかwaitメソッドを呼び出すまでリソースが占有され、その間、他のスレッドはコードブロックに入ることができません.スレッドが互いに必要なリソースを持っている場合、互いにリソースの解放を待つことになります.スレッドが占有しているリソースを自発的に解放しないと、デッドロックが発生します.
より詳細なデッドロックに関する知識点はこちらの記事を参考にしてくださいhttps://www.cnblogs.com/hadoop-dev/p/6899171.html.
2.この問題は泡の順序を考察して、比較的に簡単です.
3.第三題は二叉木の先序遍歴を考察する.
第二部分——コード問題
1.この問題の大意はswapの方法を書くことです.
2.この問題は、学生の名前、学生ID、学生の性別、学生の年齢が対象です.C++でオブジェクト構造を設計し、学生リストの同じ年齢のオブジェクトを削除します.与えられた関数はvoid delete_Student_ByID(Student* list, int age){}
3.この問題はスタックの実装を与えた.そして三つの質問をしました.それぞれ方法ensureCappicityの役割は何ですか?コードに問題がある点や、対応する改善策はありますか?
public class Stack{
    Object[] elements;
    int Size = 0;

    public void ensureCapicity(){
        if(elements.length == Size){
           elements = new Object[2*elements.length + 1];
           Obejct[] tempElements  = new Object[elements.length];
           System.arrayCopy(tempElements, 0, elements, 0, Size);
        }
    }

    public void push(Object obj){
        ensureCapicity();
        Size++;
    }

    public Object pop(){
        if(size == 0){
            throw new Exception();
        }
        return elements[--Size];
    }
}

(たぶんこんなコード)
4.この問題は、ショッピングカートに商品を追加し、もしこの商品が値下げされたら、ユーザーの携帯電話とメールボックスにメール通知を送るということです.実装コードが与えられます.
第三部分——簡単な解答
1.OSIネットワークモデルを簡単に説明します.
全部で7層に分けられ、下から上へは物理層、データリンク層、ネットワーク層、伝送層、セッション層、表示層、応用層である.
2.TCPの3回の握手の過程を簡単に述べる.
3.データベース・プログラミングのどのプロパティが、あるデータが更新されたときに他のフォームに通知するか、通知しないかを決定します(多分、覚えていません).
4.データベース・フォームのドライバと接続の基本操作.
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?user=root&password=1234");

5.linuxにメモリの使用状況を表示するコマンド.
6.Linuxはスレッドをバックグラウンドに入れ、フロントに戻すコマンドです.
jobs-バックグラウンドで実行されるプロセスの番号を表示
fg jobnumber-バックグラウンド実行プロセスをフロント実行に移行
bg jobnumber-バックグラウンドで保留中のプロセスを続行
7.これはxmlns言語をXML言語フォーマットにコンパイルする問題で、内容はよく覚えていません.
第五部分——開放問題
1.不均一なロープを頭から尾まで焼くのに60分かかり、現在はこのようなロープが何本かあり、75分のタイミングで設置する方法がある.
2.1つの配列で、1回遍歴して、2番目に大きい数字を見つけます.