Кудай Java операторунун "+" жана Г.А.Титоренко пайдалануунун ортосундагы аткаруу кандай айырма бар?


жооп 1:

Кудай Java операторунун "+" жана Г.А.Титоренко пайдалануунун ортосундагы аткаруу кандай айырма бар?

ушул сыяктуу бир сапта:

Сап string1 = "бир" + "эки"; Сап string2 = жаңы Г.А.Титоренко ( "бир"). Толуктоого ( "эки"). ToString ();

аткаруу боюнча эч кандай айырмасы жок болуш керек. Чынында эле, азыркы Java экосистеманын биринчи экинчи компилештирүү учурда ылайыкташтырылган. иш-аракет Бул үчүн, биринчи кадам Сүйүктүү мүчүлүштүктөрдү менен кирүүгө аракет кылган.

Бирок, айрым бош саптарды чапташтырыш болсо, же болбосо, мисалы, укурук үчүн үчүн:

Сап string1 = ""; String SB жаңы сапты куруучу = (); үчүн (бүтүн = 0; <5; мен ++) {string1 = string1 + i.ToString (); sb.append (i.ToString ()); } String string2 = sb.ToString ();

Ошондо StringBuilders колдонуу "натыйжалуу", кээде тандалган ыкмасы кыйла татаал сапты түзүү үчүн. Менин билишимче, азыркы учурда эч кандай Java компилятор Г.А.Титоренко менен + кайталоо жакшыртууну киргизсе болот.


жооп 2:

Кыска жооп: Ал, бирок, көпчүлүк учурда ал тынчсызданып төлөп жок, болушу мүмкүн. Сиз эрте оптималдаштыруу так кодду артык кыл.

Азыркы JVMs "+" менен Саптарды чаптоо оптималдаштыруу жана сап куруучу айлантып алат. Алар натыйжасында сап болот качанга чейин көрө алат, анткени, алар туура көлөмүн баштоо үчүн сап куруучусу дайындоого болот. Сиз өз Array стандарт көлөм менен сап куруучусу түзө турган болсок, Исахар толгон болушу керек кийинчерээк кенен болот. Бул бир катар көчүрмөсүн талап кылат жана жай болушу мүмкүн.

Java 9 чапташтырып саптарды кыйла оптималдуу болгондуктан, стратегия Runtime боюнча аныкталат.

Сиз кайра-кайра көз кырында сап менен толукталсын, анда сен ал белгилүү болсо, балким, бирок, туура өлчөмүн алдын ала баш, бир сап куруучу менен туура эмес. ал көп окула турган болсо, "+" үчүн илмек тышкары сакта +. жана сенден JVM жакшы ылайыкташтырылган деген ишеним.