рдереЛрдбрд╝рд╛ рдЬрд╛рд╡рд╛ рдЯреНрд░рд┐рдХреНрд╕

рдореИрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рд╖рдп рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдПрдХ рднрд╛рдЧ рдмрд╣реБрдд рд╣реА рднрдпрд╛рд╡рд╣ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпреЗ рд╕рднреА рд╡рдЪрди рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрдИ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рддреЛ, рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ:

рдирдпрд╛ рдмрдирд╛рдо рдорд╛рди

//
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");

//
Integer i = Integer.valueOf(100);
Long l = 100L;//    Long.valueOf(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

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) {
	//some logic
	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);

.


, , , , , .


Source: https://habr.com/ru/post/In132241/


All Articles