рдореИрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рд╖рдп рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдПрдХ рднрд╛рдЧ рдмрд╣реБрдд рд╣реА рднрдпрд╛рд╡рд╣ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпреЗ рд╕рднреА рд╡рдЪрди рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрдИ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рддреЛ, рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ:
рдирдпрд╛ рдмрдирд╛рдо рдорд╛рди
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");
Integer i = Integer.valueOf(100);
Long l = 100L;
String s = "A";
valueOf , , . , , , Byte Long . -128 127. , , . 3.5 + . , . , , Integer ┬лjava.lang.Integer.IntegerCache.high┬╗, -XX:AutoBoxCacheMax=<size>.
+ vs append
String[] fields = new String[] {"a","b","c","d","e","f","g"};
String s = "";
for (int i = 0; i < fields.length; i++) {
s = s + fields[i];
}
return s;
String[] fields = new String[] {"a","b","c","d","e","f","g"};
StringBuilder s = new StringBuilder();
for (int i = 0; i < fields.length; i++) {
s.append(fields[i]);
}
return s.toString();
( +) , , . , ┬лs = s + fileds[i]┬╗ 3 : StringBuilder s, append, toString ( : s = new StringBuilder(s).append(fields[i]).toString();). 3 ! s + fileds[i] , .
StringBuilder vs StringBuffer
StringBuilder, , StringBuffer, StringBuilder StringBuffer , .
instanceOf
instanceOf. java . тАФ , . .
P. S. ┬л java ┬╗. . , , , , , instanceOf , , '*'.
Generics
List a = new ArrayList();
List<String> a = new ArrayList<String>();
, . 2- : . . - . тАФ <?>, <? extends someType> / instanceOf.
Interface for Consts
interface A {
public static final String A = "a";
}
final class A {
public static final String A = "a";
}
. . , . , , java .
Override , . ( , ).
null vs empty
null , null- . Collections :
Collections.emptyList();
Collections.emptyMap();
Collections.emptySet();
. :
Set<Document> docs = getDocuments(plan);
for (Document doc : docs) {
sendMessage(doc.getOwner());
}
public static Set<Document> getDocuments(Plan plan) {
if (isDoSomethingOk() && hasAccessToDocuments(user)) {
return plan.getDocuments();
}
return Collections.emptySet();
}
, . , , null . тАФ ┬л ┬╗ , .
int a = 12;
String s = a + "";
int a = 12;
String s = String.valueOf(a);
.
, , , , , .