Dies ist eine Interviewfrage: Es gibt ein benutzerdefiniertes PERSON-Objekt mit Eigenschaften wie Name, Alter, Geschlecht usw. Schreiben Sie eine generische Funktion, die die Größe zurückgeben kann dieses Objekt. Es sollte keine direkte API von Java verwenden, um die Größe von Object zu erhalten. Dieses Objekt kann int, float, char oder einen beliebigen benutzerdefinierten Typ wie Adresse haben.Hilfefunktion zum Zurückgeben der Größe eines benutzerdefinierten Objekts in Java
-3
A
Antwort
1
In Java kann man sagen, dass die Größe eines Objekts der Summe der Größe seiner Elemente (mit Ausnahme von statischen) sehr nahe kommt.
Beachten Sie, dass die primitiven Wrapper, wenn Sie java8 verwenden, ein Feld Bytes
public static haben, das die Größe des Grundelements in Byte darstellt.
Quelle: http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html
Wenn Sie nicht Java8 verwenden, können Sie einige davon verwenden.
- anObject.getClass() isPrimitive();
- anObject.getClass(). GetFields();
- Rekursion.
Sie sollten auch vorsichtig von bytes alignement
sein, auch bekannt als ein 7-Byte-langen Elemente auf 8-Bit-Segmenten platzieren, aber das wird Ihre JVM abhängig und ist eher eine Hardware-Frage.
Verwandte Themen
- 1. Zurückgeben eines Objekts in Java
- 2. Java Iterieren eines Objekts der benutzerdefinierten Klasse
- 3. Zurückgeben eines anonymen instanziierten Objekts in Java
- 4. Zurückgeben eines generischen Objekts mit einem gebundenen Parameter in Java
- 5. Einstellen der Größe eines matplotlib ColorbarBase Objekts
- 6. Zurückgeben eines Objekts als Eigenschaft in ATL
- 7. Was macht der Prototyp eines benutzerdefinierten Objekts?
- 8. Hinzufügen eines Objekts zum Auflisten in scala
- 9. Java: Entfernen eines benutzerdefinierten Objekts aus einem Vektor
- 10. Speichern eines benutzerdefinierten Python-Objekts in Redis
- 11. Größe eines Objekts zur Laufzeit
- 12. Fehler beim Zurückgeben eines Java-Objekts an Javascript
- 13. Zurückgeben der Indexnummer eines Arraylists in Java
- 14. Erstellen eines benutzerdefinierten Stat-Objekts in ggplot2
- 15. Richtiger Weg zum Deklarieren/Definieren eines benutzerdefinierten Cout-ähnlichen Objekts
- 16. Zurückgeben eines Objekts erstellt von USING
- 17. Zurückgeben eines Objekts aus dem PowerShell-Cmdlet
- 18. Zurückgeben eines Objekts am Ende nach Verkettung
- 19. Java: riesiger Unterschied in der Größe des serialisierten Java-Objekts und der Speicherbelegung bei der Deserialisierung
- 20. Thread-sicherer Cache eines Objekts in Java
- 21. Erstellen eines neuen Objekts in der abstrakten Klasse in Java
- 22. Zurückgeben eines Objekts aus einer Funktion in CoffeeScript
- 23. Inline-Vergleich zum benutzerdefinierten Vergleicher in Java
- 24. Entwurfsmuster zum Erstellen eines Objekts
- 25. Die Größe eines Qt-Objekts erhalten
- 26. Hinzufügen mehrerer Instanzen eines Objekts zum Array eines anderen Objekts;
- 27. Animation zum Vergrößern eines Rechtecks in der benutzerdefinierten Ansicht
- 28. StackOverflowError beim Serialisieren eines Objekts in Java
- 29. Erstellen eines Singleton-Objekts in Java
- 30. Übergabe eines Objekts als Parameter in Java
Wie wäre es, die Summe aller Größen der Klasse zurückgeben? – Nathan
[Diese Antwort könnte Ihnen helfen] (http://stackoverflow.com/a/52682/3143670) –
Das ist keine gute Frage (bitte [ask]), aber dann bin ich eigentlich an Antworten interessiert. Was ich nicht wirklich bekomme ist, was * "keine direkte API von Java verwenden soll" * bedeutet genau. – domsson