Προγραμματιστική απορία σε Java
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Ταξινομησε τον και προσπελασε τον πινακα μεχρι το Ν(αν ειναι σε αυξουσα σειρα)
-
- Venus Former Team Member
- Posts: 7561
- Joined: Thu Oct 27, 2005 1:43 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Boston, MA
Re: Προγραμματιστική απορία σε Java
Σίγουρα πρέπει να κάνεις k*N βήματα (όπου Ν το πλήθος όλων των στοιχείων και k το πλήθος των αριθμών που θέλεις να βρεις) δε γίνεται πιο γρήγορα νομίζω.. οπότε μια χαρά είναι η λύση σου
- necrofear_13
- Wow! Terabyte level
- Posts: 2141
- Joined: Sun Nov 18, 2007 5:32 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ
Re: Προγραμματιστική απορία σε Java
Μια ερωτηση παιδια εστω οτι εχω μαι αναφορα πχ item a=null και εστω οτι η κλαση item ειναι clonable τοτε αμα πω item b=a.clone() τοτε το b θα ειναι παλι null?Ευχαριστω πολυ εκ των προτερων
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Ναι,γιατι δημιουργειται ενα αντιγραφο του a.
Re: Προγραμματιστική απορία σε Java
Νομίζω θα πετάξει NullPointerException. 

Είμαι ένας μοναχικός cowboy...
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Μπα,δεν ειδα κατι στην τεκμηριωση
Code: Select all
protected Object clone()
throws CloneNotSupportedException
Re: Προγραμματιστική απορία σε Java
Θα πετάξει NullPointerException για τον απλό λόγο οτι το στηγμιότυπο a του οποίου πας να καλέσεις τη μέθοδο clone() έχει αρχικοποιηθεί ως null...
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Μου φαινεται λιγο παραλογο.Μια αντιγραφη κανει ουσιαστικα τι προβλημα εχει η μεθοδος αν ειναι null ή οχι?
Re: Προγραμματιστική απορία σε Java
Μπορείς να το δοκιμάσεις να δεις.
Θα έχεις ενα NullPointerException κατα την εκτέλεση (κατα τη μεταγλώτισση δε θα εχεις κανένα error, ουτε warning).
Θα έχεις ενα NullPointerException κατα την εκτέλεση (κατα τη μεταγλώτισση δε θα εχεις κανένα error, ουτε warning).
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Οχι,δεν αμφιβαλλω αν ειναι ετσι.Αμφιβαλλω στο γιατι ειναι ετσι. 

Re: Προγραμματιστική απορία σε Java
Είναι έτσι γιατι προσπαθείς να καλέσεις ένα μέλος (στη συγκεκριμένη περίπτωση τη μέθοδο clone() της τάξης Item) του στιγμιότυπου a, αλλά αυτό το στιγμιοτυπο είναι null (ουσιαστικα δλδ "δεν υπάρχει"). Καλείς μια μέθοδο του "τιποτα". Πρεπει να αρχικοποιήσεις το a (πχ Item a = new Item(); ) και έπειτα να καλέσεις τα μέλη του.
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Χμμ,ναι δεν το σκεφτηκα ετσι.Ισως θα επρεπε να ηταν static της object η clone για να εχει νοημα η λογικη μου.Τεσπα...
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: Προγραμματιστική απορία σε Java
Aπο χθες άρχισα να χρησιμοποιώ το netbeans (credits to JCreator, που απλά αρνείται να δημιουργήσει νέα files και μετά μου βγάζει error ότι δεν βρίσκει τις κλάσεις!!). Δημιουργησα λοιπόν ένα νέο project και έβαλα μέσα όλες τις κλάσεις από την 4η εργασία (Α εξάμηνο) με copy paste απο το JC. Πρόσθεσα κάποια πράγματα που έλειπαν γιατί έβγαζε break points το netbeans. Compile χωρίς πρόβλημα και όλα καλα.
Πάω όμως να κάνω run το project και σε κάποια φάση που ζητείται ένα input, το βάζω και εκεί freeze-άρει για λίγο το netbeans και μετά απο κανα λεπτό μου βγάζει OutOfMemory exception
Παρόλα αυτά, έκανα το .jar του project και τρέχει κανονικά από το command line (όχι όμως με διπλό κλικ-γιατί?).
Κάποιος να εξηγήσει...
Πάω όμως να κάνω run το project και σε κάποια φάση που ζητείται ένα input, το βάζω και εκεί freeze-άρει για λίγο το netbeans και μετά απο κανα λεπτό μου βγάζει OutOfMemory exception

Παρόλα αυτά, έκανα το .jar του project και τρέχει κανονικά από το command line (όχι όμως με διπλό κλικ-γιατί?).
Κάποιος να εξηγήσει...

Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- netharis
- Venus Former Team Member
- Posts: 1845
- Joined: Sun Jul 15, 2007 2:37 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Seattle, Washington
- Contact:
Re: Προγραμματιστική απορία σε Java
Τι μέθοδο χρησιμοποιείς για το Input;
Yπάρχουν πολλοί λόγοι που κρασάρει η JVM με τέτοιο error.
Για το .jar που έφτιαξες, δεν γίνεται να το τρέξεις με διπλό κλικ για το λόγο του οτι είναι console πρόγραμμα.
Δεν έχει κάποιο GUI, για να ανοίξει ένα Interface by default.
Μπορείς να το κάνεις wrap σε κάποιο .exe, η απλά φτιάξε ένα batch με την εντολή:
Yπάρχουν πολλοί λόγοι που κρασάρει η JVM με τέτοιο error.
Για το .jar που έφτιαξες, δεν γίνεται να το τρέξεις με διπλό κλικ για το λόγο του οτι είναι console πρόγραμμα.
Δεν έχει κάποιο GUI, για να ανοίξει ένα Interface by default.
Μπορείς να το κάνεις wrap σε κάποιο .exe, η απλά φτιάξε ένα batch με την εντολή:
Code: Select all
@echo off
java -jar jarfile

Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: Προγραμματιστική απορία σε Java
Νταξει η my θα φταίειnetharis wrote:Τι μέθοδο χρησιμοποιείς για το Input;
Yπάρχουν πολλοί λόγοι που κρασάρει η JVM με τέτοιο error.
Για το .jar που έφτιαξες, δεν γίνεται να το τρέξεις με διπλό κλικ για το λόγο του οτι είναι console πρόγραμμα.
Δεν έχει κάποιο GUI, για να ανοίξει ένα Interface by default.
Μπορείς να το κάνεις wrap σε κάποιο .exe, η απλά φτιάξε ένα batch με την εντολή:Code: Select all
@echo off java -jar jarfile

Αλλά γιατί? Αυτό ρωτάω...
Thanx για τον κωδικα με το .exe

Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- netharis
- Venus Former Team Member
- Posts: 1845
- Joined: Sun Jul 15, 2007 2:37 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Seattle, Washington
- Contact:
Re: Προγραμματιστική απορία σε Java
Υποθέτω οτι θα έχεις μία επανάληψη του στύλ
O gc δεν θα προλαβένει να μαζέψει τα... ασυμμάζευτα και αφού η default μνήμη της JVM είναι 64 mb, κάποτε τελειώνει
Λόγω μερικών ασυμβατοτήτων στη Java ανάμεσα στα inputs των ΙDE(embedded κονσόλες), μπορεί να λαμβάνει άλλους τακτικούς χαρακτήρες ως Line Feed και να μην βγαίνει ποτέ απο το Loop.
Code: Select all
while (anInt != 5 ) //Δεν θα πάψει να ισχύει ποτέ, αν πέρνεις σκουπίδια απο το Input
{
anInt = my.readInt();
my.skip(2);
BigObject takesACrapLoadOfMemory = new BigObject(); // :P Για παράδειγμα...
}
Λόγω μερικών ασυμβατοτήτων στη Java ανάμεσα στα inputs των ΙDE(embedded κονσόλες), μπορεί να λαμβάνει άλλους τακτικούς χαρακτήρες ως Line Feed και να μην βγαίνει ποτέ απο το Loop.

Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: Προγραμματιστική απορία σε Java
Λοιπόν όλο προβλήματα έχω με το netbeans. Ο παρακάτω κώδικας βγάζει άλλο αποτέλεσμα στον JC και άλλο στο NB
To Τemp.txt είναι στον ίδιο φάκελο με το source file της κλάσης.
-------------------------------------------------------------------------------------------------------------------------------
Edit: I figured it out! Στο βιβλίο λέει ότι αν το αρχείο που θέλεις να συσχετίσεις με ένα stream είναι στον ίδιο φάκελο με το src της κλασης, τότε μπορείς να μην γραψεις το path, αλλά μόνο το ονομα και το extention του αρχείου. Ο JC φαίνεται να το υποστηρίζει αυτό, τα Netbeans όχι. Βάζοντας ολόκληρο το path βγαίνει σωστά και στα 2.
- Spoiler: εμφάνιση/απόκρυψη
To Τemp.txt είναι στον ίδιο φάκελο με το source file της κλάσης.
-------------------------------------------------------------------------------------------------------------------------------
Edit: I figured it out! Στο βιβλίο λέει ότι αν το αρχείο που θέλεις να συσχετίσεις με ένα stream είναι στον ίδιο φάκελο με το src της κλασης, τότε μπορείς να μην γραψεις το path, αλλά μόνο το ονομα και το extention του αρχείου. Ο JC φαίνεται να το υποστηρίζει αυτό, τα Netbeans όχι. Βάζοντας ολόκληρο το path βγαίνει σωστά και στα 2.
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- necrofear_13
- Wow! Terabyte level
- Posts: 2141
- Joined: Sun Nov 18, 2007 5:32 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ
Re: Προγραμματιστική απορία σε Java
Μια χαρα το υποστηριζει και το netbeans απλα πρεπει να βαλεις το αρχειο στο φακελο του project
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: Προγραμματιστική απορία σε Java
Το γράφω ότι το'χω κανει.
Βασικά το'χω αντιγράψει ξέμπαρκο μέσα στο φάκελο της εργασίας, στο φάκελο της κλάσης, στο src και κάπου αλλού νομίζω
Βασικά το'χω αντιγράψει ξέμπαρκο μέσα στο φάκελο της εργασίας, στο φάκελο της κλάσης, στο src και κάπου αλλού νομίζω

Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: Προγραμματιστική απορία σε Java
Κάθε project του netBeans έχει 2 φακέλους με τα αρχεία σου : έναν src όπου υπάρχουν τα αρχεία πηγσίου κώδικα (και το αρχείο που λες οτι θέλεις να διαβάσεις μάλλον εκεί το έχεις τοποθετήσει) και ένα φάκελο build όπου αποθηκεύονται τα αρχεία .class κάθε φορά που κάνεις κάτι compile ή build το project (γίνεται μέσω του ant -> κάτι σαν το make αλλά πολύ πιο ευέλικτο) - εδώ είναι η λεπτομέρεια που σου προκαλεί το πρόβλημα - για να αντιγραφούν τα υπόλοιπα αρχεία που έχεις προσθέσει ανάμεσα σε διαδοχικές μεταγλωττίσεις πολλές φορές (αν όχι όλες) πρέπει να κάνεις clean+build (οπότε διαγράφεται ο φάκελος build και ξαναδημιουργείται από τη αρχή).Stoupeace wrote:Το γράφω ότι το'χω κανει.
Βασικά το'χω αντιγράψει ξέμπαρκο μέσα στο φάκελο της εργασίας, στο φάκελο της κλάσης, στο src και κάπου αλλού νομίζω
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: Προγραμματιστική απορία σε Java
To έκανα και αυτό, και όντως αυτό που λες makes sense. Βασικά έσβησα το project και το ξαναέκανα απο την αρχή και βγήκε.cyberpython wrote:
Κάθε project του netBeans έχει 2 φακέλους με τα αρχεία σου : έναν src όπου υπάρχουν τα αρχεία πηγσίου κώδικα (και το αρχείο που λες οτι θέλεις να διαβάσεις μάλλον εκεί το έχεις τοποθετήσει) και ένα φάκελο build όπου αποθηκεύονται τα αρχεία .class κάθε φορά που κάνεις κάτι compile ή build το project (γίνεται μέσω του ant -> κάτι σαν το make αλλά πολύ πιο ευέλικτο) - εδώ είναι η λεπτομέρεια που σου προκαλεί το πρόβλημα - για να αντιγραφούν τα υπόλοιπα αρχεία που έχεις προσθέσει ανάμεσα σε διαδοχικές μεταγλωττίσεις πολλές φορές (αν όχι όλες) πρέπει να κάνεις clean+build (οπότε διαγράφεται ο φάκελος build και ξαναδημιουργείται από τη αρχή).


Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- ultimate_aektzis
- Wow! Terabyte level
- Posts: 6373
- Joined: Tue Nov 13, 2007 10:11 pm
- Gender: ♂
Re: Προγραμματιστική απορία σε Java
Βιτσιο του καθε ide ειναι αυτο.Ειχα συναντησει μαι μουφια που το ηθελε στον ιδιο φακελο με το εκτελεσιμο.Btw το αρχείο που διαβάζεται ανακάλυψα()ότι δεν πρέπει να είναι στο src της εργασίας, αλλά πεταμένο στον γενικότερο φάκελο του project. Αλλιώς θέλει path.