Προγραμματιστική απορία σε Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 13, 2008 2:18 pm

Ταξινομησε τον και προσπελασε τον πινακα μεχρι το Ν(αν ειναι σε αυξουσα σειρα)
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

Re: Προγραμματιστική απορία σε Java

Post by The Punisher » Sat Dec 13, 2008 2:29 pm

Σίγουρα πρέπει να κάνεις k*N βήματα (όπου Ν το πλήθος όλων των στοιχείων και k το πλήθος των αριθμών που θέλεις να βρεις) δε γίνεται πιο γρήγορα νομίζω.. οπότε μια χαρά είναι η λύση σου
User avatar
necrofear_13
Wow! Terabyte level
Wow! Terabyte level
Posts: 2141
Joined: Sun Nov 18, 2007 5:32 am
Academic status: Alumnus/a
Gender:
Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ

Re: Προγραμματιστική απορία σε Java

Post by necrofear_13 » Sat Dec 13, 2008 6:13 pm

Μια ερωτηση παιδια εστω οτι εχω μαι αναφορα πχ 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
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 27, 2008 2:07 pm

Ναι,γιατι δημιουργειται ενα αντιγραφο του a.
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: Προγραμματιστική απορία σε Java

Post by Luke » Sat Dec 27, 2008 2:54 pm

Νομίζω θα πετάξει NullPointerException. :smt017
Είμαι ένας μοναχικός cowboy...
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 27, 2008 2:58 pm

Μπα,δεν ειδα κατι στην τεκμηριωση

Code: Select all

protected Object clone()
                throws CloneNotSupportedException
User avatar
utumno
bit level
bit level
Posts: 16
Joined: Wed Nov 24, 2004 8:22 pm
Gender:
Contact:

Re: Προγραμματιστική απορία σε Java

Post by utumno » Sat Dec 27, 2008 4:45 pm

Θα πετάξει NullPointerException για τον απλό λόγο οτι το στηγμιότυπο a του οποίου πας να καλέσεις τη μέθοδο clone() έχει αρχικοποιηθεί ως null...
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 27, 2008 4:48 pm

Μου φαινεται λιγο παραλογο.Μια αντιγραφη κανει ουσιαστικα τι προβλημα εχει η μεθοδος αν ειναι null ή οχι?
User avatar
utumno
bit level
bit level
Posts: 16
Joined: Wed Nov 24, 2004 8:22 pm
Gender:
Contact:

Re: Προγραμματιστική απορία σε Java

Post by utumno » Sat Dec 27, 2008 5:20 pm

Μπορείς να το δοκιμάσεις να δεις.
Θα έχεις ενα NullPointerException κατα την εκτέλεση (κατα τη μεταγλώτισση δε θα εχεις κανένα error, ουτε warning).
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 27, 2008 5:22 pm

Οχι,δεν αμφιβαλλω αν ειναι ετσι.Αμφιβαλλω στο γιατι ειναι ετσι. :-)
User avatar
utumno
bit level
bit level
Posts: 16
Joined: Wed Nov 24, 2004 8:22 pm
Gender:
Contact:

Re: Προγραμματιστική απορία σε Java

Post by utumno » Sat Dec 27, 2008 5:34 pm

Είναι έτσι γιατι προσπαθείς να καλέσεις ένα μέλος (στη συγκεκριμένη περίπτωση τη μέθοδο clone() της τάξης Item) του στιγμιότυπου a, αλλά αυτό το στιγμιοτυπο είναι null (ουσιαστικα δλδ "δεν υπάρχει"). Καλείς μια μέθοδο του "τιποτα". Πρεπει να αρχικοποιήσεις το a (πχ Item a = new Item(); ) και έπειτα να καλέσεις τα μέλη του.
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Sat Dec 27, 2008 5:44 pm

Χμμ,ναι δεν το σκεφτηκα ετσι.Ισως θα επρεπε να ηταν static της object η clone για να εχει νοημα η λογικη μου.Τεσπα...
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Προγραμματιστική απορία σε Java

Post by stoupeace » Tue Jan 20, 2009 6:56 pm

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 (όχι όμως με διπλό κλικ-γιατί?).

Κάποιος να εξηγήσει... :-(
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
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

Post by netharis » Tue Jan 20, 2009 8:21 pm

Τι μέθοδο χρησιμοποιείς για το Input;
Yπάρχουν πολλοί λόγοι που κρασάρει η JVM με τέτοιο error.
Για το .jar που έφτιαξες, δεν γίνεται να το τρέξεις με διπλό κλικ για το λόγο του οτι είναι console πρόγραμμα.
Δεν έχει κάποιο GUI, για να ανοίξει ένα Interface by default.
Μπορείς να το κάνεις wrap σε κάποιο .exe, η απλά φτιάξε ένα batch με την εντολή:

Code: Select all

@echo off
java -jar jarfile
Image
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."
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Προγραμματιστική απορία σε Java

Post by stoupeace » Tue Jan 20, 2009 8:44 pm

netharis wrote:Τι μέθοδο χρησιμοποιείς για το Input;
Yπάρχουν πολλοί λόγοι που κρασάρει η JVM με τέτοιο error.
Για το .jar που έφτιαξες, δεν γίνεται να το τρέξεις με διπλό κλικ για το λόγο του οτι είναι console πρόγραμμα.
Δεν έχει κάποιο GUI, για να ανοίξει ένα Interface by default.
Μπορείς να το κάνεις wrap σε κάποιο .exe, η απλά φτιάξε ένα batch με την εντολή:

Code: Select all

@echo off
java -jar jarfile
Νταξει η my θα φταίει :smt021 (διαβαζω με την readInt)
Αλλά γιατί? Αυτό ρωτάω...

Thanx για τον κωδικα με το .exe :-D
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
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

Post by netharis » Tue Jan 20, 2009 8:59 pm

Υποθέτω οτι θα έχεις μία επανάληψη του στύλ

Code: Select all

while (anInt != 5 ) //Δεν θα πάψει να ισχύει ποτέ, αν πέρνεις σκουπίδια απο το Input
{
    anInt = my.readInt();
    my.skip(2);
    BigObject takesACrapLoadOfMemory = new BigObject(); // :P Για παράδειγμα...
}
O gc δεν θα προλαβένει να μαζέψει τα... ασυμμάζευτα και αφού η default μνήμη της JVM είναι 64 mb, κάποτε τελειώνει
Λόγω μερικών ασυμβατοτήτων στη Java ανάμεσα στα inputs των ΙDE(embedded κονσόλες), μπορεί να λαμβάνει άλλους τακτικούς χαρακτήρες ως Line Feed και να μην βγαίνει ποτέ απο το Loop.
Image
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."
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Προγραμματιστική απορία σε Java

Post by stoupeace » Wed Jan 21, 2009 1:39 am

Λοιπόν όλο προβλήματα έχω με το netbeans. Ο παρακάτω κώδικας βγάζει άλλο αποτέλεσμα στον JC και άλλο στο NB
Spoiler: εμφάνιση/απόκρυψη
[code]package streams; import java.io.*; public class ReadFile { public static void main (String args[]) { try { FileReader fr = new FileReader("Temp.txt"); BufferedReader buff = new BufferedReader(fr); boolean eof=false; while(!eof) { String line = buff.readLine(); if (line==null) eof=true; else System.out.println(line); } buff.close(); } catch (IOException e) { System.out.println("Error:" + e.getMessage()); } } }[/code]
Στο nb μου βγάζει μόνο το "error" με το message της e, ενώ ανοίγοντας το με τον JC μου τυπώνει κανονικά το αρχείο Temp.txt

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███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
necrofear_13
Wow! Terabyte level
Wow! Terabyte level
Posts: 2141
Joined: Sun Nov 18, 2007 5:32 am
Academic status: Alumnus/a
Gender:
Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ

Re: Προγραμματιστική απορία σε Java

Post by necrofear_13 » Wed Jan 21, 2009 2:04 am

Μια χαρα το υποστηριζει και το 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
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Προγραμματιστική απορία σε Java

Post by stoupeace » Wed Jan 21, 2009 9:54 am

Το γράφω ότι το'χω κανει.
Βασικά το'χω αντιγράψει ξέμπαρκο μέσα στο φάκελο της εργασίας, στο φάκελο της κλάσης, στο src και κάπου αλλού νομίζω :-p
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Προγραμματιστική απορία σε Java

Post by cyberpython » Wed Jan 21, 2009 10:19 am

Stoupeace wrote:Το γράφω ότι το'χω κανει.
Βασικά το'χω αντιγράψει ξέμπαρκο μέσα στο φάκελο της εργασίας, στο φάκελο της κλάσης, στο src και κάπου αλλού νομίζω :-p
Κάθε project του netBeans έχει 2 φακέλους με τα αρχεία σου : έναν src όπου υπάρχουν τα αρχεία πηγσίου κώδικα (και το αρχείο που λες οτι θέλεις να διαβάσεις μάλλον εκεί το έχεις τοποθετήσει) και ένα φάκελο build όπου αποθηκεύονται τα αρχεία .class κάθε φορά που κάνεις κάτι compile ή build το project (γίνεται μέσω του ant -> κάτι σαν το make αλλά πολύ πιο ευέλικτο) - εδώ είναι η λεπτομέρεια που σου προκαλεί το πρόβλημα - για να αντιγραφούν τα υπόλοιπα αρχεία που έχεις προσθέσει ανάμεσα σε διαδοχικές μεταγλωττίσεις πολλές φορές (αν όχι όλες) πρέπει να κάνεις clean+build (οπότε διαγράφεται ο φάκελος build και ξαναδημιουργείται από τη αρχή).
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Προγραμματιστική απορία σε Java

Post by stoupeace » Wed Jan 21, 2009 10:36 am

cyberpython wrote:
Κάθε project του netBeans έχει 2 φακέλους με τα αρχεία σου : έναν src όπου υπάρχουν τα αρχεία πηγσίου κώδικα (και το αρχείο που λες οτι θέλεις να διαβάσεις μάλλον εκεί το έχεις τοποθετήσει) και ένα φάκελο build όπου αποθηκεύονται τα αρχεία .class κάθε φορά που κάνεις κάτι compile ή build το project (γίνεται μέσω του ant -> κάτι σαν το make αλλά πολύ πιο ευέλικτο) - εδώ είναι η λεπτομέρεια που σου προκαλεί το πρόβλημα - για να αντιγραφούν τα υπόλοιπα αρχεία που έχεις προσθέσει ανάμεσα σε διαδοχικές μεταγλωττίσεις πολλές φορές (αν όχι όλες) πρέπει να κάνεις clean+build (οπότε διαγράφεται ο φάκελος build και ξαναδημιουργείται από τη αρχή).
To έκανα και αυτό, και όντως αυτό που λες makes sense. Βασικά έσβησα το project και το ξαναέκανα απο την αρχή και βγήκε. :smt016 Btw το αρχείο που διαβάζεται ανακάλυψα( :-D )ότι δεν πρέπει να είναι στο src της εργασίας, αλλά πεταμένο στον γενικότερο φάκελο του project. Αλλιώς θέλει path.
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
ultimate_aektzis
Wow! Terabyte level
Wow! Terabyte level
Posts: 6373
Joined: Tue Nov 13, 2007 10:11 pm
Gender:

Re: Προγραμματιστική απορία σε Java

Post by ultimate_aektzis » Wed Jan 21, 2009 10:41 am

Btw το αρχείο που διαβάζεται ανακάλυψα( :-D )ότι δεν πρέπει να είναι στο src της εργασίας, αλλά πεταμένο στον γενικότερο φάκελο του project. Αλλιώς θέλει path.
Βιτσιο του καθε ide ειναι αυτο.Ειχα συναντησει μαι μουφια που το ηθελε στον ιδιο φακελο με το εκτελεσιμο.
Post Reply

Return to “Προγραμματισμός”