基礎知識のスタック

3809 ワード

年初面接では、知識点の理解不足が山積みされ、ブログを書いて自分の認識を深める.
コンテンツの抜粋
https://blog.csdn.net/u010270273/article/details/78093756
https://www.cnblogs.com/ibelieve618/p/6380328.html
 
  • スタックは基本タイプの変数を格納し、オブジェクトの参照とメソッド呼び出しは,CPUに直接存在するレジスタに次ぐアクセス速度がスタックよりも速く,先入後出のルールに従う.しかし、欠点は、スタック内のデータサイズと生存期間が決定されなければならず、柔軟性に欠けていることである.また、スタックデータは共有可能である.後続の補足データ共有.(PS:int a=3;long b=255 Lなどの形式で定義され、自動変数と呼ばれています.自動変数は、クラスのインスタンスではなく、クラスの参照ではなく、フォント値が格納されていることに注意してください.)                                                      
  • スタック:メモリサイズを動的に割り当て、Javaのゴミ収集器は使用されなくなったデータを自動的に収集します.欠点は、実行時にメモリを動的に割り当てるため、アクセス速度が遅いことです.スタックメモリとデータ構造のスタックはまったく別で、割り当て方はチェーンテーブルに似ています.
  • 
    //            a   ,           1   ,   ,       3        ,   a  3   。
    int a = 1;
    //    b      ,        3     ,  b    1   。
    int b = 1;
    //  true,  a、b       。
    println(a == b);

            , 。 , , 。 , , 。 , a b , a=4; ,b 4, 1。 , a=4; , 4 , , 4 ; , a 。 a b 。

          , Integer, String, Double 。 ,Java new() , , , 。  。 String。String 。 String str = new String("abc"); , String str = "abc"; 。

    
    /*  String str = "abc"     。Java               : 
    
    (1)       str  String        :String str; 
    (2)            "abc"   ,    ,           "abc"   ,        String    o,  o           ,                    o。        "abc"   ,     o,   o   。
    (3) str    o   。 
    
          ,  String             。  String str = "abc";     ,                       !*/
    String str1 = "abc"; 
    String str2 = "abc"; 
    println(str1==str2); //true 
    
    String str1 = "abc"; 
    String str2 = "abc"; 
    str1 = "bcd"; 
    println(str1 + "," + str2); //bcd, abc 
    println(str1==str2); //false 
    
    String str1 = "abc"; 
    String str2 = "abc"; 
    str1 = "bcd"; 
    String str3 = str1; 
    println(str3); //bcd 
    String str4 = "bcd"; 
    println(str1 == str4); //true 
    
    String str1 = new String("abc"); 
    String str2 = "abc"; 
    println(str1==str2); //false 

     

    (stack): , ( ) , . 
    java , . scopes ( {...} ). 

    (heap): ( )
    java , new xxx() , , . , java , , .

    1. (register)。 , —— 。 , 。 , 。
    2. (stack)。 RAM , “ ” 。 , ; , 。 , 。 ,JAVA , , 。 , JAVA —— , JAVA 。
    3. (heap)。 ( RAM ), JAVA 。 : , 。 , 。 , new , , 。 , 。 。
    4. (static storage)。 “ ” “ ”。 。 static , JAVA 。
    5. (constant storage)。 , , 。 , , , , ROM
    6. RAM 。 , , 。 
    , : 
    < < <