en daarbij is het ook nog eens cross-platform. (te gebruiken onder windows, linux, unix, mac OS, etc...)
qua krachtigheid komt Java volgens mij aardig in de buurt van C/C++
alleen is Java veeeel langzamer, en dat ligt voor een groot deel aan de garbage collection als je t mij vraagt.
Voor wie niet weten wat garbage collection is:
Als je een object aanmaakt, is de variable van je object eigenlijk een pointer.
dus als ik bijvoorbeeld doe:
code:
1
| image = BufferedImage(20,20,BufferedImage.TYPE_4BYTE_ARGB); |
krijg ik een object van een BufferedImage van 20x20, 4byte kleur en een alpha-kanaal (transparancy) en een
pointer image die hier naar 'wijst'. de pointer bevat niet meer dan een geheugenadres van mijn zojuist gemaakte BufferedImage.
Als ik vervolgens een andere BufferedImage maak met dezelfde pointernaam:
code:
1
| image = BufferedImage(20,60,BufferedImage.TYPE_4BYTE_ARGB); |
zal de oude BufferedImage en prencipe nog in het geheugen staan, ik heb er alleen geen pointer meer naar.
Hier komt de garbage-collector kijken, die gooit dat object zonder pointers namelijk weg. Leuke feature, maar die garbaga collector moet constant kijken of er geen objecten zijn zonder pointers, en dat vreet resources.
terwijl in C++ heb je een 'delete' functie om objecten uit het geheugen te verwijderen, en er dus niet steeds gechecked hoeft te worden of er nog objecten zijn waar geen pointers naar wijzen. Nadeel is wel dat je geheugen vol kan lopen als je steeds 'delete' vergeet, een probleem wat je met een garbage collector niet hebt. Het is maar wat je handiger vind...
[
Voor 0% gewijzigd door
Verwijderd op 20-09-2002 23:35
. Reden: aanvulling ]