Ποια είναι η διαφορά μεταξύ ενός int και έναν ακέραιο σε Java και C #;

ψήφοι
222

Διάβαζα Περισσότερα Joel on Software , όταν ήρθα σε Joel Spolsky λέει κάτι για ένα συγκεκριμένο τύπο του προγραμματιστή να γνωρίζει τη διαφορά μεταξύ μιας intκαι Integerσε Java / C # (Αντικειμενοστραφής Γλώσσες Προγραμματισμού).

Έτσι, ποια είναι η διαφορά;

Δημοσιεύθηκε 02/08/2008 στις 22:47
πηγή χρήστη
Σε άλλες γλώσσες...                            


24 απαντήσεις

ψήφοι
216

Στην Java, ο τύπος «int» είναι μια πρωτόγονη, ενώ ο τύπος του «Ακέραιος» είναι ένα αντικείμενο.

Στην C #, ο τύπος «int» είναι το ίδιο όπως System.Int32και είναι ένας τύπος τιμή (δηλαδή περισσότερο σαν το java «int»). Ένας ακέραιος (ακριβώς όπως και κάθε άλλη τύποι αξία) μπορούν να εγκιβωτίζονται ( «τυλιγμένο») σε ένα αντικείμενο.


Οι διαφορές μεταξύ των αντικειμένων και πρωτόγονων είναι κάπως πέρα ​​από το πεδίο αυτής της ερώτησης, αλλά για να συνοψίσουμε:

Αντικείμενα παρέχουν διευκολύνσεις για τον πολυμορφισμό, περνούν με αναφορά (ή να έχουν μεγαλύτερη ακρίβεια τις αναφορές που ψηφίστηκε από την αξία), και κατανέμονται από το σωρό . Αντίθετα, πρωτόγονων είναι αμετάβλητοι οι τύποι που έχουν περάσει από την αξία και συχνά διατίθενται από τη στοίβα .

Απαντήθηκε 02/08/2008 στις 22:55
πηγή χρήστη

ψήφοι
135

Λοιπόν, σε Java ένα int είναι μια πρωτόγονη, ενώ ένας ακέραιος είναι ένα αντικείμενο. Δηλαδή, αν έχετε κάνει μια νέα Ακέραιος:

Integer i = new Integer(6);

Θα μπορούσατε να καλέσετε κάποια μέθοδο για i:

String s = i.toString();//sets s the string representation of i

Ότι, με έναν int:

int i = 6;

Δεν μπορείτε να καλέσετε κάποιον μεθόδους σε αυτό, γιατί είναι απλά μια πρωτόγονη. Ετσι:

String s = i.toString();//will not work!!!

θα παράγει ένα σφάλμα, επειδή int δεν είναι ένα αντικείμενο.

int είναι μία από τις λίγες πρωτόγονων σε Java (μαζί με άνθρακα και κάποιους άλλους). Δεν είμαι 100% σίγουρος, αλλά σκέφτομαι ότι το αντικείμενο Ακέραιος περισσότερο ή λιγότερο έχει μόνο μια ιδιότητα int και ένα σωρό μεθόδους για να αλληλεπιδράσει με αυτό το ακίνητο (όπως η μέθοδος toString (), για παράδειγμα). Έτσι Ακέραιος είναι ένα φανταχτερό τρόπο να συνεργαστεί με έναν int (Ακριβώς όπως ίσως String είναι ένα φανταχτερό τρόπο να συνεργαστεί με μια ομάδα χαρακτήρων).

Ξέρω ότι η Java δεν είναι C, αλλά επειδή ποτέ δεν έχω προγραμματιστεί σε C είναι το πιο κοντινό θα μπορούσε να έρθει στην απάντηση. Η ελπίδα αυτό βοηθά!

Ακέραιος javadoc αντικείμενο

Ακέραιος Ojbect εναντίον int πρωτόγονη σύγκριση

Απαντήθηκε 02/08/2008 στις 23:05
πηγή χρήστη

ψήφοι
32

Θα προσθέσω τις εξαιρετικές απαντήσεις που δόθηκαν παραπάνω, και να μιλήσουμε για την πυγμαχία και το unboxing, και πώς αυτό ισχύει για Java (αν και C # έχει πάρα πολύ). Θα χρησιμοποιήσετε μόνο την ορολογία Java, γιατί είμαι πιο au fait με αυτό.

Όπως αναφέρθηκε οι απαντήσεις, intείναι απλά ένας αριθμός (που ονομάζεται unboxed τύπου), ενώ Integerείναι ένα αντικείμενο (το οποίο περιέχει τον αριθμό, ως εκ τούτου, ένα κουτί τύπου). Σε ό, τι Java, ότι τα μέσα (εκτός του ότι δεν είναι σε θέση να καλούν μεθόδους για int), δεν μπορείτε να αποθηκεύσετε intή άλλα είδη μη-αντικείμενο σε συλλογές ( List, Map, κ.λπ.). Για να τα αποθηκεύσει, θα πρέπει πρώτα να κουτί πάνω στο αντίστοιχο κουτί είδος του.

Java 5 έχουν και μετά κάτι που ονομάζεται auto-boxing και αυτόματη unboxing που επιτρέπουν την πυγμαχία / unboxing να γίνει πίσω από τα παρασκήνια. Συγκρίνετε και αντίθεση: Java 5 έκδοση:

Deque<Integer> queue;

void add(int n) {
    queue.add(n);
}

int remove() {
    return queue.remove();
}

Java 1.4 ή νωρίτερα (δεν γενοσήμων είτε):

Deque queue;

void add(int n) {
    queue.add(Integer.valueOf(n));
}

int remove() {
    return ((Integer) queue.remove()).intValue();
}

Θα πρέπει να σημειωθεί ότι, παρά τη συντομία στην έκδοση Java 5, και οι δύο εκδοχές παράγουν όμοια bytecode. Έτσι, αν και auto-boxing και auto-unboxing είναι πολύ βολικό γιατί γράφουν λιγότερο κώδικα, οι πράξεις αυτές δεν συμβαίνουν πίσω από τις σκηνές, με το ίδιο κόστος εκτέλεσης, ώστε να έχετε ακόμα να γνωρίζει την ύπαρξή τους.

Η ελπίδα αυτό βοηθά!

Απαντήθηκε 03/08/2008 στις 03:32
πηγή χρήστη

ψήφοι
26

Εγώ απλώς θα δημοσιεύσετε εδώ από κάποια από τις άλλες θέσεις είναι ελαφρώς ανακριβής σε σχέση με την C #.

Σωστό: int είναι ένα ψευδώνυμο για System.Int32.
Λάθος: float δεν είναι ένα ψευδώνυμο για System.Float, αλλά και γιαSystem.Single

Βασικά, int είναι μια δεσμευμένη λέξη στη γλώσσα προγραμματισμού C #, και είναι ένα ψευδώνυμο για τον System.Int32τύπο τιμής.

επιπλέουν και Float δεν είναι το ίδιο, ωστόσο, όπως ο σωστός τύπος συστήματος για «» float«» είναι System.Single. Υπάρχουν κάποιοι τύποι σαν κι αυτό που έχει κρατήσει τις λέξεις-κλειδιά που δεν φαίνεται να ταιριάζει ακριβώς τα ονόματα τύπου.

Στην C # δεν υπάρχει καμία διαφορά μεταξύ «» int«» και «» System.Int32«», ή οποιοδήποτε από τα άλλα ζεύγη ή λέξεις-κλειδιά / τύπων σύστημα, εκτός από τον ορισμό enums. Με enums μπορείτε να καθορίσετε το μέγεθος αποθήκευσης για χρήση και σε αυτή την περίπτωση, μπορείτε να χρησιμοποιήσετε μόνο την επιφύλαξη λέξη-κλειδί, και όχι το όνομα του τύπου runtime σύστημα.

Είτε η τιμή στο int θα αποθηκεύονται στη στοίβα, στη μνήμη, είτε ως αναφερόμενο αντικείμενο σωρό εξαρτάται από το πλαίσιο και πώς μπορείτε να το χρησιμοποιήσετε.

Η δήλωση αυτή σε μια μέθοδο:

int i;

ορίζει μια μεταβλητή iτου τύπου System.Int32, που ζουν σε ένα μητρώο ή στη στοίβα, ανάλογα με βελτιστοποιήσεις. Η ίδια δήλωση σε έναν τύπο (struct ή τάξη) ορίζει ένα πεδίο μέλος. Η ίδια δήλωση σε μια λίστα μέθοδο επιχείρημα ορίζει μία παράμετρο, με τις ίδιες επιλογές αποθήκευσης όπως για μια τοπική μεταβλητή. (σημειώστε ότι η παράγραφος αυτή δεν ισχύει αν ξεκινήσετε το τράβηγμα μεθόδους iterator στο μίγμα, αυτά είναι διαφορετικά θηρία συνολικά)

Για να πάρετε ένα αντικείμενο σωρό, μπορείτε να χρησιμοποιήσετε την πυγμαχία:

object o = i;

Αυτό θα δημιουργήσει ένα κουτί αντίγραφο των περιεχομένων του iστο σωρό. Σε IL μπορείτε να έχετε πρόσβαση μεθόδων στο αντικείμενο σωρό άμεσα, αλλά σε C # θα πρέπει να το ρίξει πίσω σε μια int, η οποία θα δημιουργήσει ένα άλλο αντίγραφο. Έτσι, το αντικείμενο στο σωρό δεν μπορεί εύκολα να αλλάξει σε C #, χωρίς τη δημιουργία ενός νέου εγκλωβιστούμε αντίγραφο νέα τιμή int. (Ugh, η παράγραφος αυτή δεν διαβάσει όλα αυτά εύκολα.)

Απαντήθηκε 04/08/2008 στις 15:11
πηγή χρήστη

ψήφοι
18

Σχετικά με Java 1.5 και autoboxing υπάρχει ένα σημαντικό «ιδιορρυθμία» που έρχεται να παίξει κατά τη σύγκριση Ακέραιος αντικείμενα.

Στην Java, Ακέραιος αντικείμενα με τις τιμές -128 έως 127 είναι αμετάβλητος (δηλαδή, για ένα συγκεκριμένο ακέραια τιμή, ας πούμε 23, όλα τα αντικείμενα Ακέραιος αρχικοποιείται με το πρόγραμμά σας με την αξία 23 πόντους στο ακριβώς ίδιο αντικείμενο).

Παράδειγμα, αυτό επιστρέφει true:

Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2); //  true

Αν και αυτό επιστρέφει false:

Integer i1 = new Integer(128);
Integer i2 = new Integer(128);
System.out.println(i1 == i2); //  false

Ο == συγκρίνει με αναφορά (κάνει οι μεταβλητές δείχνουν στο ίδιο αντικείμενο).

Αυτό το αποτέλεσμα μπορεί να είναι ή να μην μπορεί να διαφέρουν ανάλογα με το τι JVM που χρησιμοποιείτε. Η προδιαγραφή autoboxing για Java 1.5 απαιτεί ότι ακέραιοι (-128 έως 127) κουτί πάντοτε στο ίδιο αντικείμενο περιτύλιγμα.

Μια λύση? =) Θα πρέπει πάντα να χρησιμοποιείτε τις Integer.equals () μέθοδο κατά τη σύγκριση Ακέραιος αντικείμενα.

System.out.println(i1.equals(i2)); //  true

Περισσότερες πληροφορίες στο java.net Παράδειγμα στο bexhuff.com

Απαντήθηκε 05/08/2008 στις 21:49
πηγή χρήστη

ψήφοι
17

Στη Java υπάρχουν δύο βασικοί τύποι στο JVM . 1) πρωτόγονων τύπων και 2) Τύποι αναφοράς. int είναι ένα πρωτόγονο είδος και Ακέραιος είναι ένας τύπος τάξη (η οποία είναι το είδος του τύπου αναφοράς).

Πρωτόγονη τιμές δεν μοιράζονται κράτος με άλλα πρωτόγονα τιμές. Μια μεταβλητή του οποίου τύπος είναι ένα πρωτόγονο είδος κατέχει πάντα μια πρωτόγονη αξία αυτού του είδους.

int aNumber = 4;
int anotherNum = aNumber;
aNumber += 6;
System.out.println(anotherNum); // Prints 4

Ένα αντικείμενο είναι μια δυναμικά δημιουργήθηκε παράδειγμα τάξη ή μια συστοιχία. Οι τιμές αναφοράς (συχνά μόνο αναφορές) είναι δείκτες σε αυτά τα αντικείμενα και ένα ειδικό μηδενική αναφορά, η οποία αναφέρεται σε κανένα αντικείμενο. Μπορεί να υπάρχουν πολλές αναφορές για το ίδιο αντικείμενο.

Integer aNumber = Integer.valueOf(4);
Integer anotherNumber = aNumber; // anotherNumber references the 
                                 // same object as aNumber

Επίσης σε Java ό, τι περνάει από την αξία. Με αντικείμενα η αξία που έχει περάσει είναι η αναφορά στο αντικείμενο. Έτσι, μια άλλη διαφορά μεταξύ int και Ακέραιος σε java είναι πώς πέρασε στη μέθοδο κλήσεις. Για παράδειγμα σε

public int add(int a, int b) {
    return a + b;
}
final int two = 2;
int sum = add(1, two);

Η μεταβλητή δύο μεταβιβάζεται ως την πρωτόγονη ακέραιος τύπου 2. ότι, στο

public int add(Integer a, Integer b) {
    return a.intValue() + b.intValue();
}
final Integer two = Integer.valueOf(2);
int sum = add(Integer.valueOf(1), two);

Η μεταβλητή δύο μεταβιβάζεται ως αναφορά σε ένα αντικείμενο που κρατά την ακέραια τιμή 2.


@WolfmanDragon: Πέρασμα με αναφορά θα μπορούσε να λειτουργήσει όπως αυτό:

public void increment(int x) {
  x = x + 1;
}
int a = 1;
increment(a);
// a is now 2

Όταν προσαύξηση καλείται να περνάει από κάποια αναφορά (pointer) για να μεταβλητή α . Και η αύξηση λειτουργία αλλάζει άμεσα μεταβλητή α .

Και για τους τύπους αντικειμένων θα λειτουργήσει ως εξής:

public void increment(Integer x) {
  x = Integer.valueOf(x.intValue() + 1);
}
Integer a = Integer.valueOf(1);
increment(a);
// a is now 2

Βλέπετε τη διαφορά τώρα;

Απαντήθηκε 06/08/2008 στις 12:08
πηγή χρήστη

ψήφοι
11

Στην C #, int είναι απλώς ένα ψευδώνυμο για System.Int32, κορδόνι για το System.Stringδιπλό για την System.Doubleκ.λπ ...

Προσωπικά προτιμώ int, string, δίκλινα, κλπ επειδή δεν απαιτούν μια using System;δήλωση :) Ένα ανόητο λόγο, το ξέρω ...

Απαντήθηκε 03/08/2008 στις 00:37
πηγή χρήστη

ψήφοι
8

Υπάρχουν πολλοί λόγοι για να χρησιμοποιήσετε τις κατηγορίες περιτύλιγμα:

  1. Θα πάρετε επιπλέον συμπεριφοράς (για παράδειγμα, μπορούμε να χρησιμοποιήσουμε μεθόδους)
  2. Μπορούμε να αποθηκεύσετε μηδενικές τιμές, ενώ στην πρωτόγονων δεν μπορούμε
  3. Συλλογές υποστηρίζουν την αποθήκευση αντικειμένων και όχι αρχέτυπα.
Απαντήθηκε 31/07/2014 στις 11:07
πηγή χρήστη

ψήφοι
8

Σε πλατφόρμες όπως Java, ints είναι πρωτόγονων ενώ Integerείναι ένα αντικείμενο το οποίο κατέχει ακέραιο πεδίο. Η σημαντική διαφορά είναι ότι οι πρωτόγονοι είναι πάντα περάσει γύρω από την αξία και εξ ορισμού είναι αμετάβλητοι.

Κάθε πράξη που περιλαμβάνει μια πρωτόγονη μεταβλητή επιστρέφει πάντα μια νέα τιμή. Από την άλλη πλευρά, τα αντικείμενα που περνούν γύρω από την αναφορά. Θα μπορούσε κανείς να υποστηρίξει ότι το σημείο στο αντικείμενο (AKA η αναφορά) είναι επίσης να περάσει γύρω από την αξία, αλλά το περιεχόμενο δεν είναι.

Απαντήθηκε 31/01/2009 στις 03:49
πηγή χρήστη

ψήφοι
7

Ιάβα:

int, double, long, byte, float, double, short, boolean, char- πρωτόγονων. Χρησιμοποιείται για την αναμονή των βασικών τύπων δεδομένων που υποστηρίζονται από τη γλώσσα. τα πρωτόγονα είδη δεν αποτελούν μέρος της ιεραρχίας αντικειμένου, και δεν κληρονομούν αντικειμένου. Thet can'be περνούν με αναφορά σε μία μέθοδο.

Double, Float, Long, Integer, Short, Byte, Character, Και Boolean, είναι Συσκευαστές είδος, συσκευασμένο σε java.lang. Όλα τα περιτυλιγμάτων αριθμητικού τύπου ορίζουν κατασκευαστών που επιτρέπουν ένα αντικείμενο που πρέπει να κατασκευασθεί από μία δεδομένη τιμή, ή μια αναπαράσταση συμβολοσειράς της αξίας αυτής. Χρησιμοποιώντας αντικείμενα μπορούν να προσθέσουν ένα γενικά ακόμη και το απλούστερο των υπολογισμών.

Ξεκινώντας με το JDK 5, Java έχει συμπεριλάβει δύο πολύ χρήσιμα χαρακτηριστικά: autoboxing και autounboxing. Autoboxing / unboxing απλοποιεί σε μεγάλο βαθμό και εκσυγχρονίζει τον κωδικό που πρέπει να μετατρέψετε πρωτόγονων τύπων σε αντικείμενα, και το αντίστροφο.

Παράδειγμα των κατασκευαστών:

Integer(int num)
Integer(String str) throws NumberFormatException
Double(double num)
Double(String str) throws NumberFormatException

Παράδειγμα της πυγμαχίας / unboxing:

class ManualBoxing {
        public static void main(String args[]) {
        Integer objInt = new Integer(20);  // Manually box the value 20.
        int i = objInt.intValue();  // Manually unbox the value 20
        System.out.println(i + " " + iOb); // displays 20 20
    }
}

Παράδειγμα των autoboxing / autounboxing:

class AutoBoxing {
    public static void main(String args[]) {
        Integer objInt = 40; // autobox an int
        int i = objInt ; // auto-unbox
        System.out.println(i + " " + iOb); // displays 40 40
    }
}

βιβλίο PS Χέρμπερτ Σιλντ ελήφθη ως σημείο αναφοράς.

Απαντήθηκε 13/06/2016 στις 19:31
πηγή χρήστη

ψήφοι
7

int χρησιμοποιείται για να δηλώσει πρωτόγονες μεταβλητή

e.g. int i=10;

Ακέραιος χρησιμοποιείται για τη δημιουργία μεταβλητή αναφοράς της κατηγορίας Ακέραιος

Integer a = new Integer();
Απαντήθηκε 11/12/2011 στις 08:19
πηγή χρήστη

ψήφοι
7

Αυτό έχει ήδη απαντηθεί για Java, εδώ είναι η C # απάντηση:

«Ακέραιος» δεν είναι ένα έγκυρο όνομα τύπου σε C # και το «int» είναι απλά ένα ψευδώνυμο για System.Int32. Επίσης, σε αντίθεση με Java (ή C ++) δεν υπάρχουν ειδικές πρωτόγονα είδη σε C #, κάθε στιγμιότυπο ενός τύπου σε C # (συμπεριλαμβανομένου int) είναι ένα αντικείμενο. Εδώ είναι μερικές εκδηλωτικός Κωδικός:

void DoStuff()
{
    System.Console.WriteLine( SomeMethod((int)5) );
    System.Console.WriteLine( GetTypeName<int>() );
}

string SomeMethod(object someParameter)
{
    return string.Format("Some text {0}", someParameter.ToString());
}

string GetTypeName<T>()
{
    return (typeof (T)).FullName;
}
Απαντήθηκε 04/08/2008 στις 22:02
πηγή χρήστη

ψήφοι
6

έχετε προγραμματιστεί ποτέ πριν στη συνέχεια (int) είναι ένα από τα πρωτόγονα είδη που μπορείτε να ρυθμίσετε για τις μεταβλητές σας (ακριβώς όπως char, float, ...).

αλλά Ακέραιος είναι μια κατηγορία περιτύλιγμα που μπορείτε να χρησιμοποιήσετε για να κάνουμε κάποιες λειτουργίες σε μια int μεταβλητή (π.χ. να το μετατρέψει σε σπάγκο ή το αντίστροφο, ...), αλλά κρατήστε σημείωση ότι οι μέθοδοι στις τάξεις περιτύλιγμα είναι στατικές, ώστε να μπορείτε να τα χρησιμοποιήσετε ανά πάσα στιγμή χωρίς να δημιουργεί μια εμφάνιση της Ακέραιος κατηγορίας. ως ανακεφαλαίωση:

int x;
Integer y; 

x και y είναι και οι δύο μεταβλητές τύπου int, αλλά y είναι τυλιγμένο με μια τάξη Ακέραιος και έχει αρκετές μέθοδοι που μπορείτε να χρησιμοποιήσετε, αλλά εγώ περίπτωση που χρειαστεί να καλέσετε ορισμένες λειτουργίες της Ακέραιος τάξης περιτύλιγμα μπορείτε να το κάνετε απλά.

Integer.toString(x);

αλλά να γνωρίζει ότι τόσο x και y είναι σωστή εισαγωγή, αλλά αν θέλετε να τα χρησιμοποιούν μόνο ως ένα πρωτόγονο είδος, χρησιμοποιήστε την απλή φόρμα (που χρησιμοποιείται για τον καθορισμό χ).

Απαντήθηκε 17/05/2014 στις 12:56
πηγή χρήστη

ψήφοι
6

Ένα ακόμα πράγμα που δεν βλέπω σε προηγούμενες απαντήσεις: Στην Java οι πρωτόγονες περιτυλίγματα κατηγορίες όπως Ακέραιος, διπλό, Float, Boolean ... και String είναι suposed να είναι αμετάβλητες, έτσι ώστε όταν περάσει ένα στιγμιότυπο από τις κλάσεις αυτές η επίκληση μέθοδος δεν θα μπορούσε να αλλάξει τα δεδομένα σας με οποιονδήποτε τρόπο, σε opositión με τις περισσότερες από τις άλλες τάξεις, οι οποίες εσωτερικά δεδομένα θα μπορούσε να τροποποιηθεί από τις δημόσιες μεθόδους του. Έτσι ώστε αυτό τάξεις έχει μόνο μεθόδους «συλλέκτη», δεν «ρυθμιστές», εκτός από τον κατασκευαστή.

Σε ένα πρόγραμμα Java είναι κατεξοχήν συμβολοσειρά αποθηκεύονται σε ένα ξεχωριστό τμήμα της μνήμης σωρού, μόνο ένα παράδειγμα για κυριολεκτική, για εξοικονόμηση μνήμης επαναχρησιμοποίηση αυτών των παρουσιών

Απαντήθηκε 06/08/2008 στις 15:33
πηγή χρήστη

ψήφοι
4

Σε Java, η intτύπος είναι ένα πρωτόγονο τύπο δεδομένων, όπου, όπως ο Integerτύπος είναι ένα αντικείμενο.

Στην C #, η intτύπος είναι επίσης ένα τύπο δεδομένων ίδια όπως System.Int32. Ένα integer(ακριβώς όπως και κάθε άλλη τύποι αξία) μπορούν να εγκιβωτίζονται ( «τυλιγμένο») σε ένα αντικείμενο.

Απαντήθηκε 27/04/2017 στις 07:25
πηγή χρήστη

ψήφοι
4

Μια int και Ακέραιος σε Java και C # είναι δύο διαφορετικοί όροι που χρησιμοποιούνται για να αντιπροσωπεύουν διαφορετικά πράγματα. Είναι ένας από τους τα πρωτόγονα είδη δεδομένων που μπορεί να εκχωρηθεί σε μια μεταβλητή που μπορεί να αποθηκεύσει ακριβώς. Μια αξία που δηλώνονται τύπου της σε μια στιγμή.

Για παράδειγμα:

int number = 7;

Πού intείναι ο τύπος δεδομένων ανατίθεται στη μεταβλητή αριθμό που κρατά την αξία επτά. Έτσι, ένα intείναι απλά μια πρωτόγονη όχι ένα αντικείμενο.

Ενώ ένα Integerείναι μια κατηγορία περιτύλιγμα για ένα πρωτόγονο είδος των δεδομένων που έχει στατικές μεθόδους. Αυτό μπορεί να χρησιμοποιηθεί ως ένα όρισμα σε μια μέθοδο η οποία απαιτεί ένα αντικείμενο, όπου, όπως int μπορεί να χρησιμοποιηθεί ως ένα όρισμα σε μια μέθοδο η οποία απαιτεί μια ακέραια τιμή, που μπορεί να χρησιμοποιηθεί για έκφραση αριθμητική.

Για παράδειγμα:

Integer number = new Integer(5);
Απαντήθηκε 07/08/2014 στις 11:50
πηγή χρήστη

ψήφοι
4

Και στις δύο γλώσσες (Java και C #) intείναι 4-byte υπέγραψε ακέραιο.

Σε αντίθεση με Java, C # παρέχει δύο υπογραφεί και unsigned ακέραιες τιμές. Όπως Java και C # είναι αντικείμενο αντικείμενο προσανατολισμό, κάποιες εργασίες σε αυτές τις γλώσσες δεν αντιστοιχούν άμεσα σε οδηγίες που παρέχονται από τον χρόνο εκτέλεσης και έτσι θα πρέπει να οριστεί ως μέρος ενός αντικειμένου κάποιου τύπου.

C # παρέχει System.Int32το οποίο είναι ένας τύπος τιμή χρησιμοποιώντας ένα μέρος της μνήμης που ανήκει στον τύπο αναφοράς στο σωρό.

Java παρέχει java.lang.Integerτο οποίο είναι ένας τύπος αναφοράς που λειτουργούν σε int. Οι μέθοδοι σε Integerδεν μπορούν να καταρτίζονται άμεσα να τρέξει χρόνο instructions.So έχουμε box μια τιμή int για να μετατραπεί σε μια εμφάνιση του Ακέραιος και να χρησιμοποιούν τις μεθόδους που αναμένει παράδειγμα κάποιου τύπου (όπως toString(), parseInt(), valueOf()κλπ).

Σε C # μεταβλητή int αναφέρεται σε System.Int32.Anyτιμή 4-byte στην μνήμη μπορεί να ερμηνευθεί ως ένα πρωτόγονο int, που μπορεί να χειραγωγηθεί από παράδειγμα της System.Int32.So int είναι ένα ψευδώνυμο για System.Int32.Whenτη χρήση μεθόδων ακέραιος που σχετίζονται με παρόμοια int.Parse(), int.ToString()κλπ ακέραιος είναι συγκεντρώνονται σε η FCL System.Int32struct καλώντας τις αντίστοιχες μεθόδους όπως Int32.Parse(), Int32.ToString().

Απαντήθηκε 17/07/2014 στις 07:02
πηγή χρήστη

ψήφοι
3

Στην Java int είναι ένα πρωτόγονο είδος των δεδομένων, ενώ Ακέραιος είναι μια κατηγορία Helper, είναι χρησιμοποιήσετε για να μετατρέψετε για έναν τύπο δεδομένων για άλλους.

Για παράδειγμα:

double doubleValue = 156.5d;
Double doubleObject  = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();

Πρωτόγονες τύπους δεδομένων αποθηκεύουν την ταχύτερη διαθέσιμη μνήμη, όπου η τάξη Helper είναι πολύπλοκη και αποθηκεύει στη μνήμη Heep.

αναφορά από το «David Gassner» Java ουσιαστική εκπαίδευση.

Απαντήθηκε 28/02/2016 στις 18:42
πηγή χρήστη

ψήφοι
3

Μια μεταβλητή int κρατά ένα 32 bit υπογεγραμμένη ακέραια τιμή. Έναν ακέραιο (με κεφάλαιο Ι) κατέχει μια αναφορά σε ένα αντικείμενο του (κατηγορία) τύπου Ακέραιος, ή σε null.

Java ρίχνει αυτόματα μεταξύ των δύο? από Ακέραιος να int όποτε το αντικείμενο Ακέραιος εμφανίζεται ως επιχείρημα σε έναν χειριστή int ή έχει εκχωρηθεί σε μια μεταβλητή int, ή μια τιμή int έχει εκχωρηθεί σε μια μεταβλητή Ακέραιος. Αυτή η χύτευση ονομάζεται πυγμαχία / unboxing.

Εάν μια ακέραια μεταβλητή μηδενική αναφορά είναι χωρίς συσκευασία, ρητά ή σιωπηρά, μια NullPointerException ρίχνεται.

Απαντήθηκε 26/11/2015 στις 10:54
πηγή χρήστη

ψήφοι
1

«Int» είναι πρωτόγονη δεδομένων τύπου και «Ακέραιος» στο περιτύλιγμα κλάση σε Java. «Ακέραιος» μπορεί να χρησιμοποιηθεί ως ένα όρισμα σε μια μέθοδο η οποία απαιτεί ένα αντικείμενο, όπου ως «int» μπορεί να χρησιμοποιηθεί ως ένα όρισμα σε μια μέθοδο η οποία απαιτεί μια ακέραια τιμή, που μπορεί να χρησιμοποιηθεί για έκφραση αριθμητική.

Απαντήθηκε 04/08/2017 στις 09:57
πηγή χρήστη

ψήφοι
1

int είναι προκαθορισμένες στη βιβλιοθήκη λειτουργία C #, αλλά σε Java μπορούμε να δημιουργήσουμε oject της Ακέραιος

Απαντήθηκε 06/03/2017 στις 05:08
πηγή χρήστη

ψήφοι
0

01. Ακέραιος μπορεί να είναι null. Αλλά int δεν μπορεί να είναι null.

Integer value1 = null; //OK

int value2 = null      //Error

02. Μόνο μπορεί να περάσει περιτύλιγμα τιμές Μαθήματα τύπου σε οποιαδήποτε κατηγορία συλλογή.

(Μαθήματα Wrapper - Boolean, χαρακτήρων, Byte, Short, Ακέραιος, Long, Float, Double)

List<Integer> element = new ArrayList<>();
int valueInt = 10;
Integer  valueInteger = new Integer(value);
element.add(valueInteger);

Αλλά συνήθως προσθέτουμε πρωτόγονες τιμές σε τάξη τη συλλογή; Είναι το σημείο 02 σωστά;

List<Integer> element = new ArrayList<>();
element.add(5);

Ναι 02 είναι σωστή, beacouse autoboxing.

Autoboxing είναι η αυτόματη μετατροπή που ο μεταγλωττιστής Java κάνει μεταξύ της πρωτόγονης τύπο και αντίστοιχης κατηγορίας περιτύλιγμα τους.

Στη συνέχεια, 5 μετατρέπουν ως τιμή Ακέραιος από autoboxing.

Απαντήθηκε 05/06/2018 στις 11:35
πηγή χρήστη

ψήφοι
0

(Java Version) Με απλά λόγια int είναι πρωτόγονη και Ακέραιος είναι αντικείμενο περιτύλιγμα για int.

Ένα παράδειγμα όπου να χρησιμοποιήσετε Ακέραιος vs int, όταν θέλετε να συγκρίνετε και να int μεταβλητή και πάλι null θα ρίξει σφάλμα.

int a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is wrong - cannot compare primitive to null
{
do something...}

Instead you will use,
Integer a;
//assuming a value you are getting from data base which is null
if(a ==null) // this is correct/legal
{ do something...}
Απαντήθηκε 15/02/2018 στις 21:04
πηγή χρήστη

ψήφοι
0

Σε java, σύμφωνα με τις γνώσεις μου, αν μαθητή στη συνέχεια, όταν γράφετε int ένα? Στη συνέχεια το java γενικές θα καταρτίσει κώδικα όπως ακέραιο a = νέα ακέραιο. Έτσι, σύμφωνα με τα γενόσημα φάρμακα ακέραιος δεν χρησιμοποιείται, αλλά χρησιμοποιείται int. έτσι δεν υπάρχει και έτσι η διαφορά εκεί.

Απαντήθηκε 22/09/2016 στις 09:53
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more