![]() |
|
|||||||
| Newsgroup de.comp.lang.java Die Programmiersprache Java |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hi,
in C(++) gibt es char[], fopen() und ein paar nützliche Routinen. In Java gibt es einen Wust verschiedener Darstellungsmöglichkeiten und ein (für mich) unverständliches Durcheinander, was man mit welcher Art machen kann, und wie man etwas in was anderes wandeln kann. Steckt dahinter irgendeine Systematik, oder muss man einige hundert Routinen stur auswendig lernen? hj |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
hajurek <hajurek*arcor.de> wrote:
> In Java gibt es einen Wust verschiedener Darstellungsmöglichkeiten > und ein (für mich) unverständliches Durcheinander, was man mit > welcher Art machen kann, und wie man etwas in was anderes wandeln > kann. Leider ist es nicht verstaendlich worauf du hinauswillst. Was ist deine Frage? > Steckt dahinter irgendeine Systematik, oder muss man einige hundert > Routinen stur auswendig lernen? Du musst nur wenige Konzepte in Java kennen, die detailierten Methoden kann man dann nachschlagen. Das gilt für alle Klassenbibliotheken (egal in welcher Sprache). Gruss Bernd |
|
#3
|
|||
|
|||
|
hajurek <hajurek*arcor.de> writes:
>Steckt dahinter irgendeine Systematik, oder muss man einige hundert »Ein Buch kann viel für den Einstieg bringen, aber richtig schlau wird man erst, wenn man die API-Doku auswendig kennt« Jochen Theodorou Es sind aber weniger als 3793 Klassen: http://download.java.net/jdk7/docs/a...ses-frame.htme Na gut, das war jetzt wohl ohne J2EE. Man sollte auch schon noch einige grundlegende Dinge außerhalb von J2SE und EE kennen, also wenigstens ASM, AspectJ, BCEL, BEA, BeanShell, Doclets, Hibernate, Jakarta Commons natürlich, JavaBeans, Java ME, JGoodies, JSF, Servlets, JSP, log4j!, Junit!, Maven und Ant natürlich unbedingt und Eclipse mit den wichtigsten Plugins, sowie Netbeans, Rhino, Applets. Ja, und auch, wenn er jetzt weniger schreibt, sollte man zumindestens wissen, wer SMA ist, das kann ja auch einmal in einer Prüfung vorkommen. Bei C++ hat man das natürlich alles nicht: eine kleine und übersichtliche Sprache. Nur: Weil C++ in den meisten Büros heute auch schon von Schreibkräften und deren Schulkindern beherrscht wird, gibt es dort so viel Konkurrenz, daß die Bezahlung auch entsprechend niedriger ausfällt. |
|
#4
|
|||
|
|||
|
Stefan Ram wrote:
> Ja, und auch, wenn er jetzt weniger schreibt, sollte man > zumindestens wissen, wer SMA ist, das kann ja auch einmal > in einer Prüfung vorkommen. Und würde man dafür Punktabzug bekommen, weil man die Zeit mit Newsgroup lesen verschwendet hat, statt zu arbeiten? :-) > Bei C++ hat man das natürlich alles nicht: eine kleine und > übersichtliche Sprache. Hast du hier ein Smily vergessen? > Nur: Weil C++ in den meisten Büros > heute auch schon von Schreibkräften und deren Schulkindern > beherrscht wird, gibt es dort so viel Konkurrenz, daß die > Bezahlung auch entsprechend niedriger ausfällt. Wenn man Glück hat, dann wissen Schreibkräfte und Schulkinder, was eine Datei ist und haben so eine ungefähre Vorstellung davon, was Verzeichnisse sind. Daß es sowas wie Programmiersprachen gibt, wissen dann nur noch wenige und beherrschen ist die ganz große Ausnahme. Wenn, dann meist Basic, oder bei Schulkindern was gerade für das neueste Ballerspiel für die MOD-Programmierung gebraucht wird, wie Lua. -- Frank Buss, fb*frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de |
|
#5
|
|||
|
|||
|
Stefan Ram schrieb:
> http://download.java.net/jdk7/docs/a...ses-frame.htme Danke für deine Hilfe. Du bist der Größte! Du hast sicher schon ein Backup vom Internet gemacht. hj |
|
#6
|
|||
|
|||
|
hajurek wrote:
> Du hast sicher schon ein Backup vom Internet gemacht. Ein Backup vom Internet zu machen wäre recht teuer, denn dieses Netzwerk besteht ja aus einigem an Kabeln, Satellitenverbindungen, Routern usw. Falls du das World Wide Web meinst, da gibt es schon ein Backup: http://www.archive.org Google ist auch nicht schlecht mit der "Im Cache" Funktion. -- Frank Buss, fb*frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de |
|
#7
|
|||
|
|||
|
> in C(++) gibt es char[], fopen() und ein paar nützliche Routinen.
> > In Java gibt es einen Wust verschiedener Darstellungsmöglichkeiten > und ein (für mich) unverständliches Durcheinander, was man mit > welcher Art machen kann, und wie man etwas in was anderes wandeln > kann. > > Steckt dahinter irgendeine Systematik, oder muss man einige hundert > Routinen stur auswendig lernen? zunächst String vs. StringBuffer: String ist immutable - d.h. der Wert eines String-Objektes kann nicht verändert werden. Wie würdest du nun in einer Schleife einen String zusammenbauen? Etwa so? String s = ""; for (int i=0; i<n; i++) s += "abc"; Das ist keine gute Sache, denn aus der hier wird bei jedem "s+=" wie wild kopiert und der Algorithmus hat quadratische Laufzeit O(n^2). Für solche Aufgaben gibt es daher StringBuffer. Folgendes hat lineare Laufzeit: StringBuffer sb = new StringBuffer(); for (int i=0; i<n; i++) sb.append("abc"); String s = sb.toString(); StringBuffer stellt quasi einen veränderbaren (man kann anhängen usw.) String dar - man kann mit StringBuffer effizient Strings zusammenbauen. File vs. FileInputStream usw. File stellt eine API zum arbeiten mit Dateinamen/pfaden zur Verfügung. Ich wüsste nicht, dass C++ eine hätte. Aber in Java kannst du Platformunabhängig mit Dateinamen arbeiten (den Ordner erfragen, in dem eine Datei liegt, einen Dateinamen einer Datei in einem Ordner aus dem File-Objekt des Ordners und nem String zusammenbauen, usw.) File-Objekte öffnen eine Datei nicht. Das passiert erst beim erzeugen eines FileInputStreams und dergleichen. Ich weiss nicht, was deine Fragen zu byte[], Integer.parseInt() usw. sein könnten. Also stelle konkrete Fragen. In Java lässt sich schon eine Systematik erkennen. Manchmal fehlt die aber auch. Ein Beispiel wäre BigInteger. Er ist wie String immutable. Aber es gibt keinen BigIntegerBuffer um BigIntegers ohne viel Kopieraufwand effizient zusammenzubauen. Schande über die Entwickler. Grüße, Sven |
|
#8
|
|||
|
|||
|
Stefan Ram schrieb:
> >> String fn = uri.getPath(); >> StringBuffer fn1 = new StringBuffer(fn.length()); >> for (int i = 0; i < fn.length(); i++) { >> char zeichen = fn.charAt(i); >> fn1.append(zeichen=='/' ? JrbeApp.slash : zeichen ); >> } >> fn=fn1.toString(); > > Vielleicht ist folgendes gemeint? > > final java.lang.String fn = uri.getPath().replaceAll( '/', JrbeApp.slash ); > Vieleicht meinst du folgendes: String fn = uri.getPath().replaceAll( "[/]", JrbeApp.slash ); Der erste Parameter ist ein String und soll eine regular expression sein. Aber auch so stürzt das Programm ab. Wenn du zu viel Zeit hast, kannst du mal die Dokumentation lesen. Ich lasse meinen Code so stehen. Er funktioniert. hj |
|
#9
|
|||
|
|||
|
Sven Köhler schrieb
>> in C(++) gibt es char[], fopen() und ein paar nützliche Routinen. >> >> In Java gibt es einen Wust verschiedener Darstellungsmöglichkeiten >> und ein (für mich) unverständliches Durcheinander, was man mit >> welcher Art machen kann, und wie man etwas in was anderes wandeln >> kann. >> >> Steckt dahinter irgendeine Systematik, oder muss man einige hundert >> Routinen stur auswendig lernen? > > zunächst String vs. StringBuffer: > > String ist immutable - d.h. der Wert eines String-Objektes kann nicht > verändert werden. Wie würdest du nun in einer Schleife einen String > zusammenbauen? Etwa so? > > StringBuffer stellt quasi einen veränderbaren (man kann anhängen usw.) > String dar - man kann mit StringBuffer effizient Strings zusammenbauen. Man müsste noch den StringBuilder erwähnen, entspricht dem StringBuffer, ist aber nicht synchronisiert. Den StringBuffer kann man auch als Output-Parameter (Paramter-Objekt, auf welches eine Methode einen Seiteneffekt ausführt) verwenden. > File vs. FileInputStream usw. > Streams gab es schon in C/C++. > Ich weiss nicht, was deine Fragen zu byte[], Integer.parseInt() usw. sein > könnten. Also stelle konkrete Fragen. In C gibt es String-Bibliotheken, die mit Byte-Arrays arbeiten. In Java ist das weniger übich, aber möglich. Zu beachten ist der Unterschied zwischen char und byte, Unicode vs. ASCII/ANSI, 16 Bit vs. 8 Bit. Meist benötogt man irgendwann doch Strings, weil die meisten APIs das erwarten, schon wenn es um Konsolen- oder Log-Ausgaben geht. Bei der Umwandlung byte zu char (String) muss das Encoding (unter Windows meist ISO-8859-1) beachtet werden. > In Java lässt sich schon eine Systematik erkennen. Manchmal fehlt die aber > auch. Ein Beispiel wäre BigInteger. Er ist wie String immutable. Aber es > gibt keinen BigIntegerBuffer um BigIntegers ohne viel Kopieraufwand > effizient zusammenzubauen. Schande über die Entwickler. Meinst Du einen mutablen BigInteger oder BitSet ? Ein mutabler BigInteger ist über eine Wrapper-Klasse schnell gebastelt. > Grüße, > Sven Übrigens wusste ich gar nicht, dass Stefan Ram so viel Humor hat. -- Heiner Kücker www.heinerkuecker.de www.control-and-command.de |
|
#10
|
|||
|
|||
|
Stefan Ram schrieb:
> Bei C++ hat man das natürlich alles nicht: eine kleine und > übersichtliche Sprache. LOL. Im vergleich zu Java?!? > Nur: Weil C++ in den meisten Büros > heute auch schon von Schreibkräften und deren Schulkindern > beherrscht wird, LOL. Danke, sowas erheitet den Sonntag. |
|
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Byte-/Integer-Umwandlung | Michael Landenberger | Newsgroup de.comp.lang.delphi.misc | 16 | 07-14-2008 05:41 PM |
| Convert string to byte | Christian Havel | Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp | 99 | 05-06-2008 03:01 PM |
| Byte-Array in String | Herbert Bodner | Newsgroups microsoft.public.de.fox | 3 | 03-26-2008 02:05 PM |
| String erweitern in einem File (String kommt mehrmals vor) | cypherpunks | Newsgroup de.comp.os.unix.shell | 7 | 03-05-2008 01:28 PM |
| stream in array of byte (.net) | Jocke Esser | Newsgroup de.comp.lang.delphi.misc | 3 | 12-20-2007 04:24 PM |