2017-11-7 java(3-4年)面接で出会った面接問題
今日、ある会社に行きました.名前は図譜天下です.
くだらないことは言わないでください.
1.カスタム表フィールドの実装方法
この問題を初めて聞いたときは簡単だと思いますが、すべてのテーブルとすべてのカラムをデータベース・テーブル構造に直接格納し、ユーザーが作成したテーブルとフィールドをテーブルで管理すると言いました.
私がこのように答えた後、向こうはあまり満足していませんでした.もしフィールドが多くなったらどうしますか.また、最終的なクエリーを実行するには、クエリーのたびに必要なテーブルにクエリーし、必要なカラムにクエリーします.こうするのはよくない.私は仕方がありません.以前はこの方法がいいと思っていました.どうすればいいの?
ネット上でいくつかの方法があります:1.プロパティフィールドを動的に追加します.2.フィールドを予約しておいて、その時になってから使います.3.XMLフィールドを使用して保存します.4.JSON形式で保存します.5.属性フィールド行格納【推奨方式】
このブログはよく書けています.http://blog.csdn.net/kk185800961/article/details/53208667
2.dobboのようなサービスフレームワークと同様に、マルチノードセッション共有をどのように実現するか
このような問題のスレ主は確かに本当に解決したことがなくて、私は先にfilterを使って実現することに答えて、彼はまた私に他の考えがあるかどうかを聞いて、私はmqメッセージを使って異なるノードに送ることができて、sessionに単独で1つのIDを設定して唯一の標識として使います【明らかにそうではありません】
ネット上の答え:
1.データベースを使用してセッションを同期する
2.クッキーを使用してセッションを同期
sessionはファイルの情勢がサーバー側に保存されているので、cookieはファイルの情勢がクライアントに存在しているので、どのように同期を実現しますか?
方法は簡単で、ユーザーがページにアクセスして生成したセッションをクッキーの中に置くことであり、クッキーを中継局とする.
あなたはwebサーバーAにアクセスして、sessionを生んでそれをクッキーの中に置いて、あなたのアクセスはwebサーバーBに割り当てられます.
このとき,webサーバBはまずサーバにこのセッションがあるか否かを判断する.
もしなかったら、クライアントのクッキーの中にこのセッションがあるかどうか見てみましょう.
もしないならば、sessionが本当に存在しないことを説明して、もしcookieの中にあるならば、cookieの中のsessoinをwebサーバーBに同期して、このようにsessionの同期を実現することができます.
説明:この方法は実現が簡単で、便利で、データベースの負担も大きくありませんが、クライアントがクッキーを禁止すれば、sessionは同期できません.これはウェブサイトに損失をもたらします.
クッキーの安全性は高くありません.秘密にしてありますが、偽造することができます.
3.memcache同期セッションの使用【推奨】
memcacheは,web内のマルチノードのサーバのメモリを結合してメモリプールを形成することができ,これによりどのサーバで発生したセッションでも他のサーバで使用できる.
欠点:memcacheはメモリを異なるメモリブロックに分け、サイズが異なり固定されており、メモリが不足するとメモリ漏洩が発生する
3.マルチノードトランザクション【分散トランザクション】トランザクションの一貫性が実現された場合
この質問には答えられませんでした...
この事務には2つの特徴がある.最終的な一貫性2.プロセス整合性
最終的な一貫性はよく理解されています.最終的なトランザクションが一貫性を保つことです.(mqを使用してトランザクションメッセージをプッシュすればよい)
≪プロシージャの一貫性|Procedure Consistency|emdw≫:一部のトランザクションは、いくつかのカラム・ビジネスを実行して一貫性を維持します(これは、まだ遭遇していないし、良い考えもありません..共有を求めます).
4.js htmlノードの遍歴方法
私が先に言ったのは上から下への順番で、それから彼はIDによってノードを取得する原理は何ですかと言って、私はhtmlのドキュメントの冒頭から探して、見つけたら戻って、下へ探し続けることはできませんと言った.ID=oneで取得したノードの例を書いてくれました
くだらないことは言わないでください.
1.カスタム表フィールドの実装方法
この問題を初めて聞いたときは簡単だと思いますが、すべてのテーブルとすべてのカラムをデータベース・テーブル構造に直接格納し、ユーザーが作成したテーブルとフィールドをテーブルで管理すると言いました.
私がこのように答えた後、向こうはあまり満足していませんでした.もしフィールドが多くなったらどうしますか.また、最終的なクエリーを実行するには、クエリーのたびに必要なテーブルにクエリーし、必要なカラムにクエリーします.こうするのはよくない.私は仕方がありません.以前はこの方法がいいと思っていました.どうすればいいの?
ネット上でいくつかの方法があります:1.プロパティフィールドを動的に追加します.2.フィールドを予約しておいて、その時になってから使います.3.XMLフィールドを使用して保存します.4.JSON形式で保存します.5.属性フィールド行格納【推奨方式】
このブログはよく書けています.http://blog.csdn.net/kk185800961/article/details/53208667
2.dobboのようなサービスフレームワークと同様に、マルチノードセッション共有をどのように実現するか
このような問題のスレ主は確かに本当に解決したことがなくて、私は先にfilterを使って実現することに答えて、彼はまた私に他の考えがあるかどうかを聞いて、私はmqメッセージを使って異なるノードに送ることができて、sessionに単独で1つのIDを設定して唯一の標識として使います【明らかにそうではありません】
ネット上の答え:
1.データベースを使用してセッションを同期する
2.クッキーを使用してセッションを同期
sessionはファイルの情勢がサーバー側に保存されているので、cookieはファイルの情勢がクライアントに存在しているので、どのように同期を実現しますか?
方法は簡単で、ユーザーがページにアクセスして生成したセッションをクッキーの中に置くことであり、クッキーを中継局とする.
あなたはwebサーバーAにアクセスして、sessionを生んでそれをクッキーの中に置いて、あなたのアクセスはwebサーバーBに割り当てられます.
このとき,webサーバBはまずサーバにこのセッションがあるか否かを判断する.
もしなかったら、クライアントのクッキーの中にこのセッションがあるかどうか見てみましょう.
もしないならば、sessionが本当に存在しないことを説明して、もしcookieの中にあるならば、cookieの中のsessoinをwebサーバーBに同期して、このようにsessionの同期を実現することができます.
説明:この方法は実現が簡単で、便利で、データベースの負担も大きくありませんが、クライアントがクッキーを禁止すれば、sessionは同期できません.これはウェブサイトに損失をもたらします.
クッキーの安全性は高くありません.秘密にしてありますが、偽造することができます.
3.memcache同期セッションの使用【推奨】
memcacheは,web内のマルチノードのサーバのメモリを結合してメモリプールを形成することができ,これによりどのサーバで発生したセッションでも他のサーバで使用できる.
欠点:memcacheはメモリを異なるメモリブロックに分け、サイズが異なり固定されており、メモリが不足するとメモリ漏洩が発生する
3.マルチノードトランザクション【分散トランザクション】トランザクションの一貫性が実現された場合
この質問には答えられませんでした...
この事務には2つの特徴がある.最終的な一貫性2.プロセス整合性
最終的な一貫性はよく理解されています.最終的なトランザクションが一貫性を保つことです.(mqを使用してトランザクションメッセージをプッシュすればよい)
≪プロシージャの一貫性|Procedure Consistency|emdw≫:一部のトランザクションは、いくつかのカラム・ビジネスを実行して一貫性を維持します(これは、まだ遭遇していないし、良い考えもありません..共有を求めます).
4.js htmlノードの遍歴方法
私が先に言ったのは上から下への順番で、それから彼はIDによってノードを取得する原理は何ですかと言って、私はhtmlのドキュメントの冒頭から探して、見つけたら戻って、下へ探し続けることはできませんと言った.ID=oneで取得したノードの例を書いてくれました
5.sql :
:
1. *
2.
3. sql
4.sql , sql ( , Cobar)
, 。。。
:
age, >age >=age ( ), >= > 【god】
:
http://www.jb51.net/article/39221.htm mysql
: one 。 div, html 【 , 】
, , 。 ,