菜鳥進級必殺技(I)——java基礎知識解析編


この文章はjavaが面接した小さなことシリーズの最初の文章です.このシリーズの文章はすべての読者を初心者として想像し、javaに関するいくつかの問題を浅く深く導入した.これらの問題はsandeziVIPが友达と一緒に整理したり、グループやフォーラムで収集したり、ネットを調べたりする頻度が高く、重要で、もちろん把握しなければならない内容です.i初心者を超えていると思っているのに、各文章の冒頭に導入されたいくつかの問題がよく分からない場合は、初心者の仲間入りをしてください.
JAva基礎知識編では、オブジェクト向け基本、オペレータ、制御実行プロセス、初期化に関する内容について説明します.
質問:
  • オブジェクト向けの特徴にはどのような面がありますか?
  • Integerとintの違いは?
  • short num = 1;num = num+1;何が悪いの?short num =1 ; num +=1;間違いはありませんか.
  • &と&&の違いは?及び最も効率的な方法で2に8を乗じる数
  • を算出する.
  • 静的変数とインスタンス変数の違い
  • equals()と==はいったいどんな違いがありますか.
  • OverloadedとOverrideの違い.Overloadedのメソッドは、戻り値のタイプを変更できますか?
  • fianl,finally,finalizeの違いは?

  • 分析と解答:
    オブジェクト向けのフィーチャーにはどのような面がありますか?
    Javaを学ぶ最初の接触の概念はオブジェクト向けであるべきで、それでは何がオブジェクト向けで、オブジェクト向けにどんな特徴があって、オブジェクト向けのプログラミングにはどんなメリットがありますか?オブジェクト向けといえば、このような問題も必ず顔を出しますが、個人的にはオブジェクト向けはあくまでも一つの思想であり、長期的な接触応用や体得がなければ、短い文字でオブジェクト向けに関する問題を教えるのは難しいと思います.しかし、オブジェクト向けの特徴を熟知することは、将来的にオブジェクト向けの理解を深めるのに役立つことは間違いありません.この部分では教科書で公式の答えを出しました
  • 抽象:抽象は、現在のターゲットに関係のないトピックの側面を無視し、現在のターゲットに関連する側面をより十分に注意することである.抽象はすべての問題を理解するつもりはなく、その一部を選択し、しばらく詳細を使わない.抽象には2つの側面があり、1つはプロセス抽象、2つはデータ抽象である.
  • 継承:継承はクラスを結合する階層モデルであり、クラスの再利用を許可し、奨励し、共通性を明確に記述する方法を提供する.オブジェクトの新しいクラスは、既存のクラスから派生することができます.このプロセスをクラス継承と呼びます.新しいクラスは元のクラスの特性を継承し、新しいクラスは元のクラスの派生クラス(サブクラス)と呼ばれ、元のクラスは新しいクラスのベースクラス(親クラス)と呼ばれます.派生クラスはそのベースクラスからメソッドとインスタンス変数を継承することができ、クラスは新しいメソッドを修正または追加して特別なニーズに適合させることができます.
  • パッケージ:パッケージはプロセスとデータを包囲し、データへのアクセスは定義されたインタフェースしか通過できません.オブジェクト向け計算は、現実世界が保護されたインタフェースを介して他のオブジェクトにアクセスする一連の完全に自治され、カプセル化されたオブジェクトとして描くことができるという基本概念から始まる.
  • マルチステート:マルチステートとは、異なるクラスのオブジェクトが同じメッセージに応答することを許可することを意味する.多態性には、パラメトリック多態性と多態性を含むものが含まれる.マルチステート言語は柔軟で抽象的で、動作共有、コード共有の利点があり、アプリケーション関数の同名の問題をよく解決しています.

  • 基本的にこの方面の概念を整理した後、皆さんにこの文章を見てもらうことをお勧めします:プログラマーに必要な7大対象原則
    Integerとintの違いは?
    Javaでは、リファレンスタイプと元のタイプの2つの異なるタイプがあります.(または組み込みタイプ).Intはjavaの元のデータ型であり、Integerはjavaがintに提供するカプセル化クラスである.Javaは元のタイプごとにカプセル化クラスを提供している.参照タイプと元のタイプの動作は全く異なり、意味が異なる.参照タイプと元のタイプは異なる特徴と用法を有し、これらにはサイズと速度の問題があり、このタイプはどのようなものであるかクラスのインスタンスデータとして参照タイプと元のタイプが使用されたときに指定されたデフォルト値を格納するタイプのデータ構造.オブジェクト参照インスタンス変数のデフォルト値はnullであり、元のタイプのインスタンス変数のデフォルト値はそれらのタイプに関連しています.jsp開発ではIntegerのデフォルト値はnullなので、el式でテキストボックスに表示するとnullとなります.一方、intのデフォルトは0であるため、el式がテキストボックスに表示された場合、結果は0となるため、intはweb層のフォームデータのタイプに適していない(具体的には下表参照).
    基本タイプ
    大小
    最小値
    最大値
    パッケージタイプ
    boolean



    Boolean
    char
    16 bits(2バイト)
    Unicode 0
    Unicode 2^16-1
    Character
    byte
    8 bits(1バイト)
    -128
    127
    Byte
    short
    16 bits(2バイト)
    -2^15
    +2^15-1
    Short
    int
    32 bits(4バイト)
    -2^31
    +2^31-1
    Integer
    long
    64 bits(8バイト)
    -2^63
    +2^63-1
    Long
    float
    32 bits(4バイト)
    IEEE 754規格
    IEEE754
    Float
    double
    64 bits(8バイト)
    IEEE754
    IEEE754
    Double
  • すべての数値タイプには正負の番号があるので、記号のない数値タイプ
  • を探さないでください.
  • booleanタイプが占有する記憶領域の大きさは明確に指定されておらず、字面値trueまたはfalse
  • としてのみ定義.
    short num = 1;num = num+1;何が悪いの?short num =1 ; num +=1;間違いはありませんか.
    short s1 = 1; s1 = s1 + 1; (s 1+1演算結果はint型で、強制変換型が必要で、これで正確にコンパイルできる)short s 1=1;s 1+=1;(正確にコンパイルできる)
    &と&の違いは?および最も効率的な方法で2に8を乗じて何に等しいかを算出する
    &と&&は論理演算子として、(and)を表すことができ、演算子の両方の式構造がtrueの場合、演算結果はtrueになります.そうしないと、一方がfalseであればfalseになります.
    &&は短絡和とも呼ばれます.すなわち、最初の式がfalseであれば、2番目の式は計算されません.たとえばif(!str=null&&!str.equals("""))式ではstrがnullの場合、後の式は実行されないので、Null PoninterException異常は発生しません.&&を&に変更すると、空のポインタ異常が放出されます.
    &ビット演算子としても使用できます.&オペレータの両方の式がbooleanタイプでない場合、&はビットと操作を表します.
    2<<3は2*8の最も効率的な演算方式であるべきである.なぜなら、1つの数をnビット左にシフトすることは、2を乗じたn次方に相当するので、1つの数に8を乗じて3ビット左にシフトすればよい.ビット演算(<<)はcpuでサポートされており,効率も最も高い.
    静的変数とインスタンス変数の違いは?
    staticキーワード修飾のある変数を静的変数と呼び、特定のオブジェクトではなくクラス全体として作成されるため、クラス変数とも呼ばれます.逆にstaticで修飾されていない変数をインスタンス変数と呼ぶ.
    クラス変数とインスタンス変数の違い:
  • static変数はクラスごとに1つのストレージ空しかありません.static変数(インスタンス変数)ではなく、オブジェクトごとに1つの記憶領域
  • がある.
  • static変数は、オブジェクトによって位置決めすることも、クラス名を空にして直接参照することもできます.一方、static以外の変数については、オブジェクトのみで
  • を参照できます.
    次の例を見てください.
    class TestStatic{
    	static int i = 5;
    }
          TestSatic  
    TestStatic ts1 = new TestStatic();
    TestStatic ts2 = new TestStatic();
       ts1.i   ts2.1         ,          5
         static  i  ,            ,  ts1.i;            , TestStatic.i,             

    equals()と==はいったいどんな違いがありますか.
    ==操作は、2つの変数の値が等しいかどうか、参照型変数は、2つの変数がスタックに格納されているアドレスが同じかどうか、すなわちスタックの内容が同じかどうかを示します.
    equals操作は、2つの変数が同じオブジェクトへの参照であるかどうか、すなわちスタック内の内容が同じであるかどうかを示します.
    ==2つのオブジェクトのアドレスを比較し,equalsは2つのオブジェクトの内容を比較する.
    この問題を深く理解するにはsandeziVIPの以前の博文を参照してください:equalsと==から言えば
    OverloadedとOverrideの違い.Overloadedのメソッドは、戻り値のタイプを変更できますか?
    overloadedは、同じメソッド名を持つが、異なるパラメータタイプのリストを持つクラスに複数のメソッドを作成できることをリロードします.Overrideは、サブクラスでベースクラスと同じ名前とパラメータリストを持つメソッドが定義されている書き換えを表し、ベースクラスのメソッドは非表示になります.
    この問題の詳細についてはsandeziVIPのブログを参照してください:javaメソッドのオーバーロード(Overloading)、オーバーライド(Override)、finalメソッドのいくつかの説明について
    fianl,finally,finalizeの違いは?
    finalは属性、メソッド、クラスを宣言するために使用され、それぞれ属性が可変ではなく、メソッドが上書きできず、クラスが継承できないことを示します.
    finallyは例外処理文構造の一部であり、常に実行されることを示す.
    finalizeはObjectクラスの1つのメソッドで、ゴミ収集器が実行されると回収対象のメソッドが呼び出され、ファイルを閉じるなど、ゴミ収集時の他のリソース回収を提供するメソッドを上書きできます.
    PS:
    このシリーズの文章はすべて永久更新の原則に従って、新しいものがすべてタイムリーに参加することを発見して、だから依然としてみんなが積極的に討論することを望んで、教えを惜しまないでください.
    また、問題に遭遇するのは煩雑で、重要なことは単独で説明します.
    このシリーズの文章はリストの入り口を更新します:java面接のあの小さい事
    この文書はhttp://blog.csdn.net/sandeziVIP収集して整理して、いかなる形式の転載あるいは引用は出典を明記してください!