Java ¤Î´ðËÜ¡Ê£±£²¡Ë¡¡¡¦¡¦¡¦¡¡»²¾È


¡¡º£²ó¤È¼¡¡¹²ó¤Ç¤Ï¡¢¤É¤ó¤Ê¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ë¤â¶¦Ä̤ʴðËÜŪ¤Ê»öÊÁ¤Î¤¦¤Á¡¢¤³¤ì¤Þ¤Ç¤ä¤ê»Ä¤·¤¿¤â¤Î¤Ç½ÅÍפʤâ¤Î¤ò¤¤¤¯¤Ä¤«¼è¤ê¾å¤²¤ë¡£¤½¤ì¤Ï¼ç¤È¤·¤Æ»²¾È¡Êº£²ó¡Ë¤È¥á¥½¥Ã¥É¡Ê¼ê³¤­·¿¸À¸ì¤ÎÍѸì¤Ç¸À¤¦¤È¡¢´Ø¿ô¤È¤«¼ê³¤­¡§¼¡¡¹²ó¡Ë¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£

¡¡º£²ó¤Î¡Ö»²¾È¡×¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï¤³¤³¤Î¡ø8.2¡¢¤ª¤è¤Ó¤³¤³¤Î¡ø9.2¡£


¡¡»²¾È¤È¤Ï

¡¡°ÊÁ°¡¢¥Ç¡¼¥¿·¿¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤¿¤È¤­

¡¡¡¡´ðËÜ·¿
¡¡¡¡¡¡¡¡ÏÀÍý·¿¡¡¡¡¡¡¡¡¡¡¡¡boolean
¡¡¡¡¡¡¡¡¿ôÃÍ·¿
¡¡¡¡¡¡¡¡¡¡¡¡À°¿ô·¿¡¡¡¡¡¡¡¡byte, short, int, long
¡¡¡¡¡¡¡¡¡¡¡¡Ê¸»ú·¿¡¡¡¡¡¡¡¡char
¡¡¡¡¡¡¡¡¡¡¡¡ÉâÆ°¾®¿ôÅÀ·¿¡¡float, double
¡¡¡¡»²¾È·¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡º£¤ÏÃΤé¤Ê¤¯¤Æ¤è¤¤
¡¡¡¡null·¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡º£¤ÏÃΤé¤Ê¤¯¤Æ¤è¤¤
¤È½ñ¤¤¤¿¤¬¡¢¤¤¤è¤¤¤èº£²ó¤Ï¡Ö»²¾È¡×¤È¡Önull¡×¤Ë¤Ä¤¤¤ÆÍý²ò¤¹¤Ù¤­¤È¤­¤¬Í褿¡£¾å¤Îɽ¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤­Ä¾¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡§

¡¡+-- ´ðËÜ·¿
¡¡|     +-- ÏÀÍý·¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡boolean
¡¡|     +-- ¿ôÃÍ·¿
¡¡|          +-- À°¿ô·¿¡¡¡¡¡¡¡¡ byte, short, int, long
¡¡|          +-- ʸ»ú·¿¡¡¡¡¡¡¡¡ char
¡¡|          +-- ÉâÆ°¾®¿ôÅÀ·¿¡¡ float, double
¡¡|
¡¡+-- »²¾È·¿
¡¡|     +-- ¥¯¥é¥¹·¿¡¡¡¡¡¡¡¡¡¡¡¡String, Math ¤Ê¤É
¡¡|     +-- ÇÛÎó·¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡char[], String[], int[][] ¤Ê¤É
¡¡|     +-- ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹·¿¡¡º£¤ÏÃΤé¤Ê¤¯¤Æ¤è¤¤
¡¡|
¡¡+-- null·¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡null
¡¡»²¾È¡Êreference¡Ë¤È¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì½ê(¥á¥â¥ê¾å¤Î¥¢¥É¥ì¥¹¡Ë¤ò»Ø¤·¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£¡Ö¥¢¥É¥ì¥¹¡×¤Ï¶ñÂÎŪ¤Ê¤â¤Î¤Ç¤¢¤ë¤¬¡¢Ãê¾ÝŪ¤Ë¡Ö¥Ý¥¤¥ó¥¿¡×¡Êpointer¡Ë¤È¤â¸À¤¦¡Ê¡Ö¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¢¤ë¾ì½ê¤ò»Ø¤¹¤â¤Î¡×¤Î°Õ¡Ë¡£Ä̾¤³¤ì¤ò¼¡¤Î¤è¤¦¤Ë¿Þ¼¨¤¹¤ë¡§

      +------+         +--------------+
      |  ¡¦--+-------->| ¥ª¥Ö¥¸¥§¥¯¥È |
      +------+   ¢¬    +--------------+    
             ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿     


¡¡ÇÛÎó¤Ï»²¾È·¿¤Ç¤¢¤ë

¡¡¤¢¤é¤¿¤á¤ÆÇÛÎó¤Ë¤Ä¤¤¤ÆÉü½¬¤·¤è¤¦¡£¼Â¤Ï¡¢ÇÛÎó¤Î̾Á°¤ÏÇÛÎó¤Î¥ª¥Ö¥¸¥§¥¯¥È¡ÊÇÛÎóÍ×ÁÇÁ´ÂΤ¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¥á¥â¥êÎΰè¡Ë¤Ø¤Î¥Ý¥¤¥ó¥¿¡Ê¤¹¤Ê¤ï¤Á¡¢»²¾È¡Ë¤Ç¤¢¤ë¡£ Î㤨¤Ð¡¢

      int[] a;    
¤ÈÇÛÎó¤ÎÀë¸À¤ò¤¹¤ë¤È¡¢a ¤ÎÃÍ¡Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡Ë¤òÆþ¤ì¤ë¾ì½ê¤À¤±¤¬³ÎÊݤµ¤ì¤ë¡§
        +------+
      a | null |
        +------+¡¡¡¡¡¡¡¡
¡¡null ¤Ï¡¢¡Ö¤É¤³¤â»Ø¤·¤Æ¤¤¤Ê¤¤¡×¤È¤¤¤¦¥Ý¥¤¥ó¥¿¤Î¡ÖÃ͡פòɽ¤¹¡£¤³¤Î¤¢¤È¤Ç¡¢
      a = new int[3];    
¤È a ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤ò¹Ô¤¦¤È¡¢a ¤Ë¤Ï¤½¤Î¾ì½ê¤ò»Ø¤¹Ãͤ¬Æþ¤ë¡§
      +------+               +------+
    a |  ¡¦--+--------> a[0] |  0   |
      +------+               +------+ 
                        a[1] |  0   |   
                             +------+
                        a[2] |  0   |   
                             +------+   
¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤Î¤È¤­½é´üÃͤÎÀßÄê¤ò¹Ô¤ï¤Ê¤¤¤È¡¢int ·¿¤Î¾ì¹ç¤Ë¤Ï¥Ç¥Õ¥©¡¼¥ë¥È¤Ç 0 ¤¬½é´üÃͤȤʤ롣¤³¤³¤Ç¡¢Î㤨¤Ð
      a[2] = 123;    
¤È¤¹¤ì¤Ð
      +------+               +------+
    a |  ¡¦--+--------> a[0] |  0   |
      +------+               +------+ 
                        a[1] |  0   |   
                             +------+
                        a[2] | 123  |   
                             +------+   
¤È¤Ê¤ë¤³¤È¤Ï¸À¤¦¤Þ¤Ç¤â¤Ê¤¤¡£¤â¤·¡¢
      int[] a,b;
      a = new int[3];
      b = new int[3];    
      b[2] = 321;    
¤Î¤è¤¦¤Ë¡¢a ¤È b ¤¬Æ±¤¸Æ±¤¸¥Ç¡¼¥¿·¿¤ÎÇÛÎó¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡ÊŤµ¤Ï°ã¤Ã¤Æ¤¤¤Æ¤â¤è¤¤¤¬¡¢¤½¤Î¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¡ÖÇÛÎó¤òÇÛÎó¤ËÂåÆþ¤¹¤ë¤³¤È¡×¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡Ë
      +------+               +------+
    a |  ¡¦--+--------> a[0] |  0   |
      +------+               +------+ 
                        a[1] |  0   |   
                             +------+
                        a[2] |  0   |   
                             +------+
      +------+               +------+
    b |  ¡¦--+--------> b[0] |  0   |
      +------+               +------+ 
                        b[1] |  0   |   
                             +------+
                        b[2] | 321  |   
                             +------+   
¤Ç¤¢¤ë¤¬¡¢ÂåÆþ
      a = b;    
¤ò¹Ô¤¦¤³¤È¤¬µö¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤Ë¤è¤Ã¤Æ¡¢a ¤Ï b ¤¬»Ø¤¹¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸¤È¤³¤í¤ò»Ø¤¹¤è¤¦¤Ë¤Ê¤ë¡§
      +------+               +------+
    a |  ¡¦--+---+      a[0] |  0   |
      +------+   |           +------+ 
                 |      a[1] |  0   |   
                 |           +------+
                 |      a[2] |  0   |   
                 |           +------+
      +------+   |           +------+
    b |  ¡¦--+---+----> b[0] |  0   |
      +------+               +------+ 
                        b[1] |  0   |   
                             +------+
                        b[2] | 321  |   
                             +------+   
¤³¤Î·ë²Ì¡¢a ¤Ï b ¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹¤³¤È¤È¤Ê¤ë¤Î¤Ç¡¢Î㤨¤Ð¡¢ÂåÆþ
      a[0] = 999;
      b[1] = 888;    
¤ò¹Ô¤¦¤È
      +------+               +------+
    a |  ¡¦--+---+      a[0] |  0   |
      +------+   |           +------+ 
                 |      a[1] |  0   |   
                 |           +------+
                 |      a[2] |  0   |   
                 |           +------+
      +------+   |           +------+
    b |  ¡¦--+---+----> b[0] | 999  |
      +------+               +------+ 
                        b[1] | 888  |   
                             +------+
                        b[2] | 321  |   
                             +------+   
¤È¤Ê¤ë¤«¤é¡¢
      System.out.println(a[1]);
      System.out.println(b[0]);    
¤Ë¤è¤Ã¤Æ¤½¤ì¤¾¤ì 888, 999 ¤¬½ÐÎϤµ¤ì¤ë¡£

¡¡£²¼¡¸µ¤ÎÇÛÎó¤Ï¡¢¡ÖÇÛÎó¤ÎÇÛÎó¡×¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á¡¢¼¡¤Î¤è¤¦¤Ê¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡Ê£³¼¡¸µ°Ê¾å¤Ë¤Ä¤¤¤Æ¤âƱÍÍ¡Ë¡£

¤è¤Ã¤Æ¡¢

      C[1] = C[2];    
¤È¤¤¤Ã¤¿¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¤¬¡¢
      C = C[1];
Åù¤Ï¡¢º¸±¦Î¾ÊդΥǡ¼¥¿·¿¤¬°ã¤¦¤Î¤ÇÉԲĤǤ¢¤ë¤³¤È¤Ï¸À¤¦¤Þ¤Ç¤â¤Ê¤¤¡£

¡¡¤Ê¤ª¡¢¤³¤³¤Ç¤Ï¾Ü¤·¤¯½Ò¤Ù¤Ê¤¤¤¬¡Ê¾Ü¤·¤¤¤³¤È¤Ï¤³¤³¡Ë¡¢String ·¿¤ÎÊÑ¿ô¡ÊÀµ³Î¤Ë¤Ï¡¢String ¥¯¥é¥¹¤Î¥¯¥é¥¹ÊÑ¿ô¡Ë¤Ï String ¥ª¥Ö¥¸¥§¥¯¥È¡Êʸ»úÎó¥Ç¡¼¥¿¡Ë¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢

      String s;    
¤È¤¤¤¦Àë¸À¤Ç¤Ï¡¢s ¤¬ String ·¿¤Ç¤¢¤ë¤³¤È¤¬Àë¸À¤µ¤ì¤ë¤À¤±¤Ç¡¢¶ñÂÎŪ¤Êʸ»úÎó¥Ç¡¼¥¿¡Êʸ»úÎ󥪥֥¸¥§¥¯¥È¡Ë¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡§

        +------+
      s | null |
        +------+¡¡¡¡¡¡¡¡
¤·¤«¤·¡¢
      s = "abcde";    
¤È¤¹¤ë¤È¡¢Ê¸»úÎ󥪥֥¸¥§¥¯¥È "abcde" ¤¬À¸À®¤µ¤ì¡¢s ¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡§

        +------+        
      s |  ¡¦--+-------> "abcde"
        +------+        ¡¡¡¡¡¡¡¡
¤Ê¤ª¡¢String ¤Ï char ·¿¤ÎÇÛÎó¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÃΤäƤ¤¤ë¤È¤¤¤í¤ó¤Ê¤³¤È¤¬Íý²ò¤·¤ä¤¹¤¤¡ÊÎ㤨¤Ð¡¢
      String s1,s2;
      s1 = "abcde";
      s2 = s1;    
¤Ë¤è¤Ã¤Æ²¿¤¬µ¯¤³¤ë¤Î¤«¡¢¤Ê¤É¡Ë¡£


¡¡¥Ñ¥é¥á¡¼¥¿¤Î¼õ¤±ÅϤ·Êý
¡¡¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤È¤­¡¢¸Æ¤Ó½Ð¤¹Â¦¤È¸Æ¤Ð¤ì¤ë¦¤Î´Ö¤Ç¥Ç¡¼¥¿¤ò¸¯¤ê¼è¤ê¤¹¤ë¼êÃʤȤ·¤Æ¡Ê¤¿¤¤¤Æ¤¤¤Î¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤¬»ý¤Ã¤Æ¤¤¤ë¡ËÂåɽŪ¤Ê¤â¤Î¤Ï¼¡¤Î£²¤Ä¤Ç¤¢¤ë¡£
  1. Ã͸ƤӽФ·¡Êcall by value¡Ë
  2. »²¾È¸Æ½Ð¤·¡Êcall by reference, call by address¡Ë
¡¡¤½¤ì°Ê³°¤ÎÊýË¡¤È¤·¤Æ¡¢Âç°èŪÊÑ¿ô¡Ê¥¯¥é¥¹¤Î¥Õ¥£¡¼¥ë¥É¡Ë¤òÍѤ¤¤ë¤ä¤êÊý¤â¤¢¤ë¤¬¡¢¤½¤¦¤¤¤Ã¤¿ÊýË¡¤Ï¤³¤ì¤Þ¤Ç¤Ë¤¤¤¯¤Ä¤â¤Î¥×¥í¥°¥é¥àÎã¤ÎÃæ¤Ç¤âÉÑÈˤËÍѤ¤¤¿¤Î¤ÇÍý²ò¤·¤Æ¤¤¤ë¤â¤Î¤È»×¤¦¡£

¡¡¤µ¤Æ¡¢Ã͸ƤӽФ·¤Ë¤Ä¤¤¤Æ¤Ï¤¹¤Ç¤Ë ¤³¤³ ¤Ç³Ø¤ó¤À¡£¤½¤ì¤Ï¡¢

¡¡°ìÊý¡¢»²¾È¸Æ½Ð¤·¤Ï ¡ÊÎã¡Ë¡¡ÇÛÎó̾¤Ï»²¾È·¿ÊÑ¿ô¤Ç¤¢¤ë

    public static void mult(int[] a, int n) {  // ­¡
        for (int i=0; i<a.length; i++) { 
            a[i] *= n;                         // ­¢
        }
    }

    public static void main(String[] args) {
        int[] b = {0, 10, 20};
        System.out.println(b[0]+b[1]+b[2]);    // ­£¡¡30 ¤¬½ÐÎϤµ¤ì¤ë
        mult(b, b[2]);                         // ­¤
        System.out.println(b[0]+b[1]+b[2]);    // ­¥¡¡60 ¤¬½ÐÎϤµ¤ì¤ë
    }¡¡¡¡

¡¡mult ¤ÎÄêµÁ­¡¤Ë¤ª¤¤¤Æ¡¢£±ÈÖÌܤβ¾°ú¿ô¤ÏÇÛÎó¤ÎÀë¸À¡¡int[] a ¤Ç¤¢¤ê¡¢¤½¤ì¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë­¤¤Ë¤ª¤¤¤Æ¡¢Âбþ¤¹¤ë£±ÈÖÌܤμ°ú¿ô b ¤ÏÇÛÎó̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¡ÊÇÛÎó̾¤Ï»²¾È·¿¤ÎÊÑ¿ô¤Ç¤¢¤ë¡Ë¡£
¡¡°ìÊý¡¢mult ¤Î¸Æ¤Ó½Ð¤·­¤¤Ë¤ª¤¤¤Æ¡¢Âè1°ú¿ô b ¤¬»²¾È¸Æ½Ð¤·¤Ç¤¢¤ë¤Î¤ËÂФ·¡¢Âè2°ú¿ô b[2] ¤ÏÃ͸ƽФ·¤Ç¤¢¤ë¡£¤è¤Ã¤Æ¡¢­¤¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢­¡¤Î a ¤Ë b ¤¬¥³¥Ô¡¼¤µ¤ì¡¢­¢¤¬¼Â¹Ô¤µ¤ì¤ë¤È¼«Æ°Åª¤Ë b ¤ÎÃͤâÊѤï¤ë¤³¤È¤Ë¤Ê¤ë¤«¤é¡¢­£¤Î»þÅÀ¤Ç¤Ï b[0]=0, b[1]=10, b[2]=20 ¤Ç¤¢¤Ã¤¿¤â¤Î¤¬¡¢­¥¤Î»þÅÀ¤Ç¤Ï b[0]=b[1]=b[2]=20 ¤È¤Ê¤ê¡¢¤½¤Î·ë²Ì­¤¤Ç¤Ï60¤¬½ÐÎϤµ¤ì¤ë¡£

¡¡¤·¤«¤·¡¢¤³¤ÎÊýË¡¤Ï¡ÖÃͤòÊÖ¤·¤Æ¤â¤é¤Ã¤Æ¤¤¤ë¡×¤³¤È¤¬ÉÔÌÀÎƤʤΤǡ¢¼¡¤Î¤è¤¦¤ËÇÛÎ󤽤Τâ¤Î¤òÃͤȤ·¤ÆÊÖ¤·¤Æ¤â¤è¤¤¡Ê¤½¤ÎÊý¤¬Îɤ¤¡Ë¡§


    public static int[] mult(int[] a, int n) {
        for (int i=0; i<a.length; i++) { 
            a[i] *= n;                     
        }
        return a;
    }

    public static void main(String[] args) {
        int[] b = {0, 10, 20};
        System.out.println(b[0]+b[1]+b[2]); 
        b = mult(b, b[2]);                    
        System.out.println(b[0]+b[1]+b[2]); 
    }¡¡¡¡
¡¡ÇÛÎó̾¤ò»²¾È¤È¤·¤Æ¥á¥½¥Ã¥É¤ËÅϤ¹¾ì¹ç¡¢ÇÛÎ󥪥֥¸¥§¥¯¥È¤ÎÀèƬ¥¢¥É¥ì¥¹¤¬ÅϤµ¤ì¡¢²¾°ú¿ô¤È¼Â°ú¿ô¤ÏƱ¤¸¥á¥â¥êÎΰè¤ò¶¦Í­¤¹¤ë¡Ê¥á¥½¥Ã¥É¤¬ÇÛÎó̾¤òÃͤȤ·¤ÆÊÖ¤¹¾ì¹ç¤âƱÍͤǡ¢Ê֤äƤ¯¤ë¤Î¤Ï¤½¤ÎÇÛÎ󥪥֥¸¥§¥¯¥È¤Î¥á¥â¥ê¾å¤Ç¤ÎÀïÆ®¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡Ë¡£¤½¤Î¤¿¤á¡¢ÂçÎ̥ǡݥ¿¤Î¼õ¤±ÅϤ·¤Ë¤ÏÇÛÎó¤ò»È¤¦¤³¤È¤¬Ë¾¤Þ¤·¤¤¡ÊÃ͸ƽФ·¤Î¾ì¹ç¤Ë¤Ï¡¢¼Â°ú¿ô¤ÎÃͤò²¾°ú¿ô¤Ë¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë»þ´Ö¤¬¤«¤«¤ë¤·¡¢¥á¥â¥ê¤â²¾¡¦¼Âξ°ú¿ô¤Î¤¿¤á¤Ë£²ÇÜɬÍפǤ¢¤ë¡Ë¡£
¡¡¤Þ¤¿¡¢¥á¥½¥Ã¥É¤ÏÄ̾ï¤ÏÃÍ¡Êreturn ʸ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ëÃ͡ˤò£±¤Ä¤·¤«»ý¤Áµ¢¤ì¤Ê¤¤¤¬¡¢»²¾ÈÅϤ·¡ÊÇÛÎó¡Ë¤ÏÊ£¿ô¤ÎÃͤò»ý¤Áµ¢¤ë¼êÃʤȤ·¤Æ¤â»È¤¨¤ë¡£


¡¡¥¯¥é¥¹·¿ÊÑ¿ô¤â»²¾È·¿¤Ç¤¢¤ë

¡¡¥¯¥é¥¹·¿ÊÑ¿ô¤È¤Ï¡¢¥æ¡¼¥¶¼«¿È¤¬¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¤«¡¢¤Þ¤¿¤Ï¥Ñ¥Ã¥±¡¼¥¸¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹(Î㤨¤Ð String ¤ä Math ¤Ê¤É)¤ò»È¤Ã¤Æ¡¢
    String str;    
¤Î¤è¤¦¤ËÀë¸À¤·¤¿ÊÑ¿ô¡Ê¤³¤ÎÎã¤Ç¤Ï str¡Ë¤Î¤³¤È¤ò¤¤¤¦¡£¥¯¥é¥¹·¿ÊÑ¿ô¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹ÊÑ¿ô¤Ç¤¢¤ê¡Ê¤³¤ÎÎã¤Ç¤Ï String ¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È str¡Ë¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤¿¤ê¡¢½é´ü²½¤·¤¿¤ê¤¹¤ë¤Ë¤Ï¡¢
    str = "This is a string";    
¤Î¤è¤¦¤Ë½ñ¤¯¡£ ¤³¤¦¤¤¤Ã¤¿¡Ö¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹ÊÑ¿ô¡×¤Ç¤¢¤ë¥¯¥é¥¹·¿ÊÑ¿ô¤Ï»²¾È¤òÃͤ˼è¤ëÊÑ¿ô¤Ç¤¢¤ë¡£
¡¡¤â¤¦¾¯¤·Ê£»¨¤ÊÎã¤òµó¤²¤ë¤È¡¢Data1 ¥¯¥é¥¹¤ò
    class Data1 {
        String key;
        int    freq;
    }    
¤ÈÄêµÁ¤·¤Æ¤ª¤­¡¢
    Data1 x1 = new Data1();     
¤È¤·¤Æ¡¢Data1 ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤È
        +------+        +---------+
     x1 |  ¡¦--+------->|  null   | x.key 
        +------+        +---------+
                        |    0    | x.freq
                        +---------+¡¡¡¡¡¡¡¡
¤Î¤è¤¦¤ËÊÑ¿ô x1 ¤Ë¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¡Ê¥¢¥É¥ì¥¹)¤¬ÂåÆþ¤µ¤ì¡¢¤½¤Î¤¢¤È¤Ç¡¢
    x.key = "abcdefg";     
    x1.freq = 1    
¤È¤¹¤ì¤Ð
        +------+        +---------+
     x1 |  ¡¦--+------->|    ¡¦---+-----> "abcdefg"
        +------+        +---------+
                        |    1    | 
                        +---------+¡¡¡¡¡¡¡¡
¤È¤Ê¤ë¡£¤µ¤Æ¡¢
      Data1 x1 = new Data1();
      Data1 y1 = new Data1();
      // Data1 x1 = new Data1(), y1 = new Data1(); ¤Ç¤â¤è¤¤¤¬
      // Data1 x1, y1; ¤À¤±¤Ç¤Ï¥À¥á

      x1.key = "x1's key";
      y1.key = "y1's key";      
¤È¤·¤Æ x1, x2 ¤òÀ¸À®¡¦½é´ü²½¤¹¤ë¤È¡¢
        +------+        +-------+
     x1 |  ¡¦--+------->|  ¡¦---+----> "x1's key" 
        +------+        +-------+
                        |   0   | 
                        +-------+
        +------+        +-------+
     y1 |  ¡¦--+------->|  ¡¦---+----> "y1's key" 
        +------+        +-------+
                        |   0   | 
                        +-------+¡¡¡¡¡¡¡¡
¤È¤Ê¤ë¤Î¤Ç
      System.out.printf("%s, %d\n", x1.key, x1.freq);
      System.out.printf("%s, %d\n", y1.key, y1.freq);
¤Î½ÐÎϤϡ¢
      x1's key, 0
      y1's key, 0
¤È¤Ê¤ë¤¬¡¢¤½¤Î¤¢¤È¤Ç
      x1 = y1;    // ÂåÆþ¤Ïº¸±¦Î¾Êդλ²¾È·¿¤¬Æ±¤¸¤Ç¤¢¤ë¤³¤È
      y1.key = "new key";
      x1.freq = 12;      
¤ò¹Ô¤¦¤È
        +------+        +-------+
     x1 |  ¡¦--+---+    |  ¡¦---+----> "x1's key" 
        +------+   |    +-------+
                   |    |   0   | 
                   |    +-------+
        +------+   |    +-------+
     y1 |  ¡¦--+---+--->|  ¡¦---+----> "new key" 
        +------+        +-------+
                        |  12   | 
                        +-------+¡¡¡¡¡¡¡¡
¤È¤Ê¤ë¤Î¤Ç¡¢
      System.out.printf("%s, %d\n", x1.key, x1.freq);
      System.out.printf("%s, %d\n", y1.key, y1.freq);
¤Î½ÐÎϤÏ
      new key, 12
      new key, 12
¤È¤Ê¤ë¡£

¤â¤¦¾¯¤·Ê£»¨¤ÊÎã¤È¤·¤Æ¡¢

    class Data2 {
        String name = "data class 2";
        int[] value;             // ¤³¤³¤ÇÀë¸À¤ò¤·¤Æ¤ª¤¯¤³¤È¤¬É¬Í×
        Data2(int n) {           // ¥³¥ó¥¹¥È¥é¥¯¥¿
            value = new int[n];  // Ťµ n ¤ÎÇÛÎó value ¤òÀ¸À®¤¹¤ë
        }
    }    
¤ò¹Í¤¨¤è¤¦¡£¤³¤Î¤È¤­¡¢
    Data2 x2 = new Data2(3);     
¤È¤·¤Æ¡¢Data2 ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È x2 ¤òÀ¸À®¤¹¤ë¤È

      +------+              +------+
   x2 |  ¡¦--+---> x2.name  |  ¡¦--+----> "data class 2"
      +------+              +------+                  +-----+
                   x2.value |  ¡¦--+----> x2.value[0] |  0  |
                            +------+                  +-----+
                                          x2.value[1] |  0  |
                                                      +-----+
                                          x2.value[2] |  0  |
                                                      +-----+¡¡
¤Î¤è¤¦¤Ë x2 ¤Ï¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢
      for (int i=0; i<3; i++) x2.value[i] = 100*i;
      System.out.printf("%s; ", x2.name);
      for (int i=0; i<3; i++) System.out.printf("%d ", x2.value[i]);
¤Ë¤è¤Ã¤Æ
      data2; 0 100 200
¤È½ÐÎϤµ¤ì¤ë¡£

¡¡°Ê¾å¤Î¤³¤È¤òÍý²ò¤·¤Æ¤¤¤ë¤È¡¢¥¯¥é¥¹·¿ÊÑ¿ô¡Ê¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹ÊÑ¿ô¡Ë¤¬¥á¥½¥Ã¥É¤Î°ú¿ô¤È¤Ê¤Ã¤ÆÅϤµ¤ì¤ë¾ì¹ç¤ä¥á¥½¥Ã¥É¤ÎÌá¤êÃͤȤʤäÆÊÖ¤µ¤ì¤ë¾ì¹ç¤Ë¤É¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ë¤«¤¬Íý²ò¤Ç¤­¤è¤¦¡£
¡¡¼¡¤ÎÎã¤ò¹Í¤¨¤è¤¦¡§

¡ÊÎã¡Ë¡¡Ã±¤Ë2¤Ä¤Î¥Õ¥£¡¼¥ë¥É¤À¤±¤«¤é¤Ê¤ë¥¯¥é¥¹¤ò»È¤Ã¤Æ2¤Ä¤Î¥Ç¡¼¥¿¤ò¸¯¤ê¼è¤ê¤¹¤ë


    // Record ¥¯¥é¥¹¤ÎÄêµÁ
    class Record {¡¡ 
        int n = 10;
        double x;
    }
    
    class recordUsage {
        public static void main(String[] args) {
            // Record¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È rcd ¤ÎÀ¸À®
            Record rcd = new Record();  
            System.out.println(rcd.n);  // 10 ¤ò½ÐÎÏ
            System.out.println(rcd.x);  // 0.0 ¤ò½ÐÎÏ

            methodA(rcd);
            System.out.println(rcd.n);  // 1230 ¤ò½ÐÎÏ
            System.out.println(rcd.x);  // 987.65 ¤ò½ÐÎÏ

            rcd = methodB(rcd);
            System.out.println(rcd.n);  // 12345 ¤ò½ÐÎÏ
            System.out.println(rcd.x);  // 98765.0 ¤ò½ÐÎÏ
        } 

        // ¥¯¥é¥¹ÊÑ¿ô RCD ¤ò°ú¿ô¤È¤¹¤ë¥á¥½¥Ã¥É
        static void methodA(Record RCD) {
            RCD.n *= 123;
            RCD.x = 987.65;
        }

        // ¥¯¥é¥¹ÊÑ¿ô RCD ¤òÌá¤êÃͤȤ¹¤ë¥á¥½¥Ã¥É
        static Record methodB(Record RCD) {
            RCD.n = 12345;
            RCD.x *= 100;
            return RCD;
        }
       
¡¡¸Æ¤Ó½Ð¤· methodA(rcd); ¤Ë¤è¤Ã¤Æ static void methodA(Record RCD) ¤Î²¾°ú¿ô RCD ¤Ë ¼Â°ú¿ô rcd ¤ÎÃÍ¡Ê»²¾È¡Ë¤¬¥³¥Ô¡¼¤µ¤ì¡¢·ë²ÌŪ¤Ë RCD ¤È rcd ¤ÏƱ¤¸¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤¹¤³¤È¤Ë¤Ê¤ë¡£¤½¤Î·ë²Ì¡¢

            RCD.n *= 123;
            RCD.x = 987.65;    
¤Ë¤è¤Ã¤Æ rcd.n ¤ÎÃͤâ rcd.x ¤ÎÃͤâƱÍͤËÊѤï¤ë¡ÊRCD ¤¬»Ø¤¹¤â¤Î¤È rcd ¤¬»Ø¤¹¤â¤Î¤¬Æ±¤¸¤À¤«¤éÅöÁ³¤Î¤³¤È¤Ç¤¢¤ë¡Ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢mathodA ¤«¤éÌá¤Ã¤¿¤¢¤È

            System.out.println(rcd.n);  // 1230 ¤ò½ÐÎÏ
            System.out.println(rcd.x);  // 987.65 ¤ò½ÐÎÏ
   
¤È¤Ê¤ë¤Î¤ÏÅöÁ³¤Ç¤¢¤ë¡£
¡¡°ìÊý¡¢¡¡¸Æ¤Ó½Ð¤· rcd = methodB(rcd); ¤Î¼Â¹Ô¤Ë¤è¤Ã¤Æ methodB(rcd) ¤ÎÃæ¤Ç½ñ¤­´¹¤¨¤é¤ì¤¿ RCD ¤¬ rcd ¤ËÂåÆþ¤µ¤ì¤ë¤Î¤Ç¡¢¤½¤Î¸å¤Ç¼Â¹Ô¤¹¤ë¤È

            System.out.println(rcd.n);  // 12345 ¤ò½ÐÎÏ
            System.out.println(rcd.x);  // 98765.0 ¤ò½ÐÎÏ
   
¤È¤Ê¤ë¡£