tag:blogger.com,1999:blog-24419026.post2119403143313920548..comments2024-03-22T17:03:22.754+01:00Comments on przemelek: Java 32 bit vs. Java 64 bitprzemelekhttp://www.blogger.com/profile/14956032882265621104noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-24419026.post-69985814370024660182010-05-05T00:15:10.990+02:002010-05-05T00:15:10.990+02:00Szacunek - kiedyś wykorzystam tę wiedzę ;)Szacunek - kiedyś wykorzystam tę wiedzę ;)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-24419026.post-30607888378141154852010-01-27T01:38:51.907+01:002010-01-27T01:38:51.907+01:00List to interfejs, a ArrayList to klasa konkretna ...List to interfejs, a ArrayList to klasa konkretna implementująca ten interfejs. I użycie w kodzie jako typu zmiennej typu interfejsu List zamiast konkretnego typu ArrayList powoduje wygenerowanie różnego bytecode'u i wpływa na prędkość wykonywania kodu.<br /><br />Czyli:<br />List list = new ArrayList();<br />list.add(10);<br /><br />wygeneruje inny kod [i wykona się wolniej] niż:<br />ArrayList list = new ArrayList();<br />list.add(10);<br /><br />Co zresztą widać w wynikach, bo z zasady operowanie na zmiennych deklarowanych jak interfejsy jest wolniejsze, po prostu JVM musi dla interfejsu wywołać invokeinterface [i odłożyć na stos 4 wartości], a dla klasy konkretnej woła invokevirtual [i odkłada tylko 2 wartości na stos].<br /><br />Czyli ktoś tu sobie musi Java'ę powtórzyć, ale chyba tym razem nie ja ;-)przemelekhttps://www.blogger.com/profile/14956032882265621104noreply@blogger.comtag:blogger.com,1999:blog-24419026.post-26756339475615519822010-01-27T01:17:21.828+01:002010-01-27T01:17:21.828+01:00Użycie zmiennej List zamiast ArrayList nic nie zmi...Użycie zmiennej List zamiast ArrayList nic nie zmienia, bo implementacją jest w obydwu przypadkach ArrayList. <br />Powtórka z javy by się przydała :)Anonymousnoreply@blogger.com