�������ץ�����ޡ����ܻ��ε���Ū�ʼ������(���ץ�å���)��񤤤��Ȥ������ּ�ʬ�ʤ餳��������פȤ�������ȥ��񤤤Ƥ��줿�ͤ����ͤ����ơ����̤˥����Ȥ��褦���Ȥ�פä��Τ����������Υ���ȥ�������ȼ�����ꤲ�äѤʤ��ˤʤäƤ��ޤ��Ȥ����⤢��Τǡ������Ԥ�񤯤��Ȥˤ�����

�ʤ��������ܤμ�����ܤ��ɽ������äƤ����Ρ��פȤ�����Ŧ�⤢�ä������֥����˽񤤤��ΤϤ����ޤǤ������ܤΰ����������ˡ��Ƥ��������򸫤�����ʤɤ�����˳�ȯ���Ƥ���Τ��Ϥ��������狼��Τǡ��ä�����ʤ���

�� �ץ�����ߥ󥰴�����
  • for (int i = 0; i < list.getLength(); i++) {}������Ū�ѥե����ޥ󥹥ܥȥ�ͥå�
    list.getLength()��list.getLength()��ɾ������Ƥ��ޤ���������Ȥ��Ƥϡ�JRE��ɸ�����°����DOM�Υ饤�֥���NodeList�μ�����list.getLength()������˽Ť������򤷤Ƥ��뤿�ᡢ���줬�����Ƿ�Ū�˥ѥե����ޥ󥹤��������뤳�Ȥ����롣
    (�ޤ���getLength()�פǽŤ���������ʤ衢�Ȥ����ä⤢��ޤ���)

    �����������򤹤뤿��Υ��ǥ�����Ȥ��Ƥϡ�
    for (int i = 0, length = list.getLength(); i < length; i++) {}
    �Ȥ��ä���Τ����ꡢIBM developerWorks�ʤɥץ�����ޡ������Υ�ǥ����Ǥϡ����ν��������줷�Ƥ����Τ⤢�롣

  • �����Ϥ�/���Ϥ��ط��μ��䡢switch fall through�ʤ�
    ����Ϥ��ΤޤޤʤΤǥѥ���
���֥������Ȼظ���
    �����������ܤ��ΤޤޤʤΤǥѥ���
�ǥ�����ѥ�������
  • Singleton�ѥ�����ȥ��֥����������������ȡ�Singleton�ѥ�����Υޥ������å��б�
    Singleton�ν����Ȥ��Ƥϡ��ޤ������Τ褦�ʤ�Τ��ͤ����롣

    �ѥ�����1. �ե�����ɤν�������˥��󥹥�������

    public class Singleton {
      private static final Singleton self = new Singleton();
      private Singleton() {}
      public static Singleton getInstance() {
        return self;
      }
    }
    �ѥ�����2. �ٱ��������Ѥ���ɬ�פˤʤä��Ȥ��˥��󥹥�������
    public class Singleton {
      private static Singleton self;
      private Singleton() {}
      public static synchronized Singleton getInstance() {
        if (self == null) {
          self = new Singleton();
        }
        return self;
      }
    }
    �̾�ϥѥ�����1.���ɤ��Ȥ��ơ����󥹥������������Ȥ��礭�����֥������Ȥ򰷤����ˤϥѥ�����2.�Τ褦���ٱ������κ��Ѥ��ͤ����뤬���ѥ�����2.�η��ˤ��Ƥ��ޤ��ȥޥ������å��б���ɬ�פʾ��˥������å�����Ʊ��������ɬ�פ�����(������Ǹ�����synchronized�βս�)���������å��������ˤ˸ƤӽФ����褦�ʥ������ǤϤ���Ʊ�����Υ����Ȥ򲿤Ȥ��������Ǥ��͡����Ƥɤ����ޤ��礦���Ȥ����á�

    ���ʤߤˡ�Java���ò������äȤ��Ƥϡ������Τ褦�˥���ǥޥ�ɽ�����ۥ�������饹���ǥ�����(Effective Java ������ p.273)��Ȥ��ȡ��ٱ������β��ä�����Ĥġ��ʤ�����Ʊ�����Υ����Ȥ򤫤����˺Ѥ।�ǥ�����⤢�롣

    �ѥ�����3. ����ǥޥ�ɽ�����ۥ�������饹���ǥ�����

    public class Singleton {
      private static class Holder {
        static final Singleton self = new Singleton();
      }
      private Singleton() {}
      public static Singleton getInstance() {
        return Holder.self;
      }
    }

  • Observer�ѥ�����ǥ��٥��ȯ�н�������פ���ͳ
    �����٥��ȯ�н�������Τ��İ�������Observer�ѥ������ȤäƤ��ޤ��ȡ���Ĥ�Subject��ʣ����Observer���Ĥ��Ƥ��ꡢ���İ�����Observer���⤦������Observer���ͤ򻲾Ȥ��Ƥ���褦�ʾ��˥ǡ����������礬����������������뤫�� etc.

  • Mediator�ѥ�����ǥ᥽�åɤ�¿���ʤꤹ���Ƥ����Ȥ��ι���
    ����ǽ�ΤޤȤޤꤴ�Ȥ˥��󥿡��ե��������Ѱդ���Mediator�Ϥ����Υ��󥿡��ե��������������Mediator���ѼԤˤϥ��󥿡��ե������Ϥ�����
    ��Role Object�ѥ��������ڤ��ؤ���
    ��etc.

  • Visitor�ѥ������Ȥ��٤����ȡ��Ƶ�Ū�롼�פ��н褹����ȤλȤ�ʬ��
    ñ��Composite���Υ��֥������Ȥ�Ƶ�Ū�˽��������������ʤ���ߤ�Visitor�ѥ������Ȥ���ñ�˥���ץ뤵������������ˤʤäƤ��ޤ����Ȥ�����Τ������դǤ���͡����Ȥ������ξ��Ǥ��͡��ʤȤ����������Ѥ����褦�ʥ��饹�ˤĤ��Ƥϰ��Visitor�θ����Ѱդ��Ƥ���ȿ��ڤ��߷פˤʤ���⤢��ޤ���͡����Ȥ��������դ���á�

  • Composite�ѥ����󤬻��Ȥ��ơ֥��֥������Ȼظ�Ū�˵����������פʤ���ͳ
    ���Ƥ��ƴ��Ʊ��뤹�뤿��ˡ���������ˤ����ޤޤ�ʤ����󥿡��ե�������⤦�����˻������륱���������뤫�顣�㤨��������ƴ�ˤ����ޤޤ�ʤ������Ǽ����ϤΥ᥽�åɤ����Ƥ�¦�ˤ�������Ȥ��ƴޤޤ�륱�����Ȥ���
�� Java��
  • static/final��List/Set/Map�ΰ㤤
    ���ΤޤޤʤΤǥѥ���

  • new Boolean(true)��new Integer(5)�ʤɤ��侩����ʤ���ͳ
    �Ȥ��󤷤�����Immutable�ʥ��֥������Ȥ�ʣ����������̵�̤˥ҡ��פ�����Τ�˾�ޤ����ʤ����顣�����Boolean.valueOf(true)��Integer.valueOf(5)�ʤɤ�Ȥ���

  • �ɸ�Ū���ԡ�����
    �ɸ�Ū���ԡ� = �ե�����ɤȤ��ƻ��äƤ��륪�֥������Ȥ������Ϥ��Ȥ���ʣ����Ĥ��ä��Ϥ��������ɸ�Ū���ԡ���ɬ�פʥ�������񤤤Ƥߤơ�����Ū����Ȥ����ɸ�Ū���ԡ����Ԥ��Ƥ��ʤ��Ǥ��͡����Ȥ���

  • Java�ǤΥǥ����ץ��ԡ��μ�����ˡ�Ȥ��ƤɤΤ褦�ʤ�Τ��ͤ����ޤ���
    �����̤�clone()�����
    ��ľ�󲽤�����
    ��etc.

  • �С������ΰۤʤ�Ʊ��FQN�Υ��饹�����Ѥ��뤿����б���ˡ
    ��VM��櫓�Ʋ��餫�η����̿�(RMI etc.)
    �����饹���������򼫺�
    ��etc.
    ���ʤߤ˥��饹���������κ�����ˤĤ��Ƥϰ���Java Programming Tips�˽񤤤������򻲾ȤΤ��ȡ�


Effective Java Âè2ÈÇ (The Java Series)
Joshua Bloch
�ԥ����󥨥ǥ奱�������
���夲��󥭥�: 3085
���������٤�ʿ��: 5.0
5 ���ʾ�ʤ�ɬ�ܤΥޥʡ�
5 Java���ɽ�