рдореБрдЦреНрдп рдЕрдВрддрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╣реИ рдХрд┐ рдЗрдВрдЯреЗрдЧрд░ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдвреЗрд░ рдкрд░ рдЬрдЧрд╣ рд▓реЗрддреА рд╣реИ, рдФрд░ рдХреЛрдб рдореЗрдВ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
рдЬрдм рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдПрдХ рдорд╛рди рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдореЗрдореЛрд░реА рдХреЛ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдвреЗрд░ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗint a = 1000 ; // a -
Integer b = 1000 ; // b -
new Integer(1000)
(рддрдерд╛рдХрдерд┐рдд рдСрдЯреЛрдмреЙрдХреНрд╕рд┐рдВрдЧ ) рд▓рд┐рдЦрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдкреБрд░рд╛рдиреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб (JDK 1.6) рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛:Integer a1 = 50 ;
Integer a2 = 50 ;
Integer b1 = 500 ;
Integer b2 = 500 ;
System. out . println (a1==a2);
System. out . println (b1==b2);
рдпрд╣рд╛рдВ, рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ java.lang.Integer.valueOf (int) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, -128 рд╕реЗ 127 рддрдХ рдХреЗ рдХреИрд╢ рдорд╛рди (рдЕрдзрд┐рдХ рд╣рд╛рд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдХреИрд╢ рдХреА рдКрдкрд░реА рд╕реАрдорд╛ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)редtrue
false
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рднреА рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рдЗрдВрдЯреЗрдЧрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрднреА рднреА рдЕрдкрдирд╛ рдореВрд▓реНрдп рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдирд┐рд░реНрджреЛрд╖ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JProfiler рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ :public class Increment
{
public static void main (String[] args)
{
Integer a= 0 ;
while ( true ) a++;
}
}

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдПрдХ рдирдпрд╛ рдЗрдВрдЯреЗрдЧрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рддрдм рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡реЗ рд▓рдЧрднрдЧ рдПрдХ рд▓рд╛рдЦ рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдбред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдРрд╕рд╛ рд╣реА рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд╛рдирдХреАрдХреГрдд рдкреНрд░рдХрд╛рд░ (рдЬреЗрдирд░рд┐рдХ) рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рд╕рдВрдЧреНрд░рд╣ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╛рджрджрд╛рд╢реНрдд рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рдВрдЬрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдХреБрдЫ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ, рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рдВрдмреЗ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд╣рд▓реЗ рд╕реМ рд╣рдЬрд╛рд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо getRandomKeys рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ, рдЪрд╛рдмрд┐рдпрд╛рдБ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рдереЗ) рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдмрд╕реЗрдЯ рдХреЗ рд╕рдВрдЧрдд рд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЪрд┐рддреНрд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ; рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд╣ рдорд╣рддреНрд╡рд╣реАрди рд╣реИред рдСрдкрд░реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:import java.util.*;
public class MapInteger
{
static Map<Integer, Set<Integer>> subSets = new HashMap<Integer, Set<Integer>>();
public static void put (Integer key, int value)
{
if (!subSets. containsKey (key)) subSets. put (key, new HashSet<Integer>());
subSets. get (key). add (value);
}
public static Collection<Integer> getRandomKeys ()
{
List<Integer> vals = new ArrayList<Integer>();
for ( int i= 0 ; i<( int )(Math. random ()* 500 ); i++)
{
vals. add (( int )(Math. random ()* 1000 ));
}
return vals;
}
public static void main (String[] args)
{
new Scanner(System. in ). nextLine ();
for (Integer i= 0 ; i< 100000 ; i++)
{
for (Integer key: getRandomKeys ())
put (key, i);
}
new Scanner(System. in ). nextLine ();
}
}

рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рдж:

рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдорджрдж рдХрд░рдирд╛:

рдореЗрдореЛрд░реА рдХреЗ 40 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдЦрд╛рддреЗ рд╣реИрдВ - рдпрд╣ рджреБрдЦрдж рд╣реИред рдХрд╛рд░рдг рдкреБрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ:
public static void put(Integer key, int value)
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдпрд╣рд╛рдВ рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд░ i рдХреЗ рдорд╛рди, рдЬрдм рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЯ (рдЕрдирдмреЙрдХреНрд╕рд┐рдВрдЧ) рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдлрд┐рд░ рд╕реЗ рдЗрдВрдЯреЗрдЧрд░ (рдмреЙрдХреНрд╕рд┐рдВрдЧ) рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
Integer value
рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ
int value
рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЪрд┐рддреНрд░ рд╕рдорд╛рди рд╣реИ:

рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИрдВ:

рдФрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмрд╛рдж:

рдЗрд╕рд▓рд┐рдП, рдЗрдВрдЯреЗрдЧрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯ рдХреА рдЬрдЧрд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХрд╛ рд▓рдЧрднрдЧ 40% рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ
for(Integer i=0; i<100000; i++)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реНрдгрд╛рдВрдХ рднреА рдПрдХ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рдЗрдВрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдкрд╣рд▓рд╛ рд╕реБрдзрд╛рд░ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЯреЗрдЧрд░ рдХреЛ рдЬрд╣рд╛рдВ рднреА рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣рд╛рдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рдпрдо рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ред рдХрднреА-рдХрднреА рдкреВрд░реНрдгрд╛рдВрдХ рдХреИрд╢ рдХрд╛ рдПрдХ рджреЗрд╢реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред