Ganz vorneweg - konvertieren in String, substring, und Konvertierung zurück? Das ist absolut katastrophal... Ich nehme mal an, es ist ein int- oder long-Array. Dann bekommt man die Zehner durch eine simple Division durch 10. Eventuelle Nachkommastellen werden dabei einfach fallen gelassen (7/10 ergibt ganz banal 0, 10/10 und 12/10 alle beide 1 (sodass 10/10 == 12/10 gilt...).

Es handelt sich bei der Vorsortierung offenbar um eine Variante des Bucketsort. Gibt es denn irgendeine Beschränkung, wie groß die Zahlen in unserArray sein können? Ansonsten müsste das sortedNumbers-Array ja fast 215 Mio Einträge haben (int; keine negativen Zahlen berücksichtigt!) bzw. würde definitiv den Arbeitsspeicher sprengen (long). Was ist mit negativen Zahlen? ArrayIndexOutOfBoundsException lässt grüßen...

Sind Duplikate bei den Werten erlaubt? Dann müsste gelten: sortedArray = new int[(1 << 31) / 10) + 1][unserArray.length] (wiederum ohne negative Werte zu berücksichtigen, ansonsten bräuchten wir (int)(((long)1 << 32) / 10) + 1!). Es könnte ja sein, dass das unserArray z. B. einfach nur jeweils 1000 mal die Zahlen 2010 und 2012 enthält....

Wenn es also keine sinnvollen Beschränkungen der Einzelwerte gibt, liegt die gewählte Datenstruktur irgendwo zwischen äußerst ungünstig bis komplett ungeeignet. Dann ist es sicherlich effizienter, gleich das ganze unserArray mit java.util.Arrays.sort zu sortieren ( https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#sort(int[]) ).

Wenn es aber geeignete Begrenzungen gibt, dann komme ich gleich nochmal auf vorherigen Abschnitt zurück: Lasse die einzelnen Unter-Arrays in sortedNumbers jeweils von java.util.Arrays.sort sortieren...

...zur Antwort

Wie bereits z10r01 geschrieben hat, liegt der Fehler im Bild-Objekt selbst. Nähere Informationen kann da evtl. aber die NullPointerException selbst über die Message und den Stacktrace liefern. Schau dir das entweder direkt in einem Debugger an oder packe

new Bild(...);

in einen try-catch-Block und gib den Inhalt z. B. auf einer Console aus oder schreib ihn in eine Datei.

Evtl. lässt sich daraus erschließen, weshalb es zu der Exception kommt.

...zur Antwort

Java an sich ist eine Programmiersprache (und erst mal kein Programm), durchaus mit breitem Anwendungsfeld:

  • Handy-Programme
  • Eigenständige Applikationen (AUCH im industriellen Bereich)
  • Als Java-Applets im Browser - speziell dann, wenn Techniken benötigt werden, die JavaScript (ist nicht dasselbe und auch nicht verwandt!) nicht unterstützt, beispielsweise Multithreading oder dauerhafte Verbindung (--> Chatting!)
  • Weiterhin im Internet als serverseitige Websprache (--> JSP, JSF; so wie auch PHP oder ASP.Net), heute wohl der wichtigste Anwendungsbereich.
  • ...

Wer allerdings mit Java arbeitet/arbeiten möchte, der kommt um "java.exe" nicht herum - falls das mit "Programm Java" gemeint war:

Das ist der Java-Interpreter (mit Konsole, javaw.exe ist die Entsprechung ohne Konsole).

...zur Antwort

Alle Fließkommazahlen haben eine beschränkte Anzahl an Bits (float: 32, double: 64, und das nach IEEE vorgegebene long double 80, das in Java allerdings nicht implementiert ist).

Damit lassen sich (genau wie bei int und long) MAXIMAL 2^32 bzw. 2^64 voneinander verschiedene Zahlen darstellen. Im Gegensatz zu letzteren sind es bei den Fließkommazahlen real allerdings weniger, da es noch Repräsentationen für positive und negative infinity gibt sowie ein ganzer Bereich als 'not a number', NaN, festgelegt ist.

Somit muss auch der PC / Java / das Programm in der Mehrzahl der Fälle selbst runden (im Dualsystem sind übrigens noch mehr Zahlen periodsch als im Dezimalsystem, also muss noch häufiger gerundet werden).

Solche Rundungsfehler führen dann zu solchen Abweichungen wie der in der Frage angesprochenen. Das lässt sich mit endlichen Anzahlen von Bits zwangsläufig nicht vermeiden.

Das ist auch bei allen Programmen so, bei denen es angeblich "funktionieren" soll. Tut es aber auch bei denen nicht - lediglich sind die Ergebnisse für die jeweilige Anwendung HINREICHEND genau.

...zur Antwort

Es gibt zwei verschiedene Arten, wie man seine Musik-CD brennen kann - als klassische Audio-CD oder als Daten-CD (letzteres ist fast ausschließlich in Form einer MP3-CD üblich).

Viele CD-Spieler können keine Daten-CDs lesen (DVD-Spieler dagegen in der Regel schon), daher beim Brennen darauf achen, dass das Audio-CD-Format gewählt ist.

Manche ältere CD-Spieler (noch aus/vor der Anfangszeit des Brennens) haben allerdings auch generell Probleme mit gebrannten CDs.

...zur Antwort

Ich benutze Firefox und habe es um das NoScript-Addon (https://addons.mozilla.org/de/firefox/addon/722) ergänzt. Damit lässt sich ganz exakt kontrollieren, welche Scripte laufen dürfen und welche nicht, und bin damit auch sehr zufrieden.

Genauere Zahlen, wieviele Internetnutzer JavaScript aktiviert haben, kenne ich zwar nicht, aber da die große Mehrheit nur relativ geringe Kenntnisse davon hat, was JavaScript so alles kann und macht bzw. was es überhaupt ist, dürfte sie meist auch JavaScript aktiviert haben.

...zur Antwort

Java und C# sind definitiv ähnlich, wie greye schon angedeutet hat (ich programmiere in beiden Sprachen). Jede hat ihre eigenen stärken und schwächen.

Java ist Plattform-unabhänig und hat teilweise bessere Bibliotheken (zumindest bei den im täglichen brauch benötigten):

  • insgesamt empfinde ich die integrierten Collections von Java besser gelungen (allerdings möchte ich hier noch die C# LinkedHashMap erwähnen, die in Java keine Entsprechung hat)
  • JDOM ist C#s System.Xml klar überlegen (mit der Einschränkung, das Validierung nicht besonders gut gelungen ist)
  • sehr gute Logging-Bibliotheken (wobei mir log4j nochmals besser gefällt als das interne Java-Logging - sind aber beide ähnlich)

Außerdem läuft auch das aktuellste Java noch auf älteren Windows-Betriebssystemen (habe noch einen alten Rechner mit Windows 2000, für den ich keine neue Lizenz mehr erwerben möchte - .NET ist da nur bis 2.0 erhältlich).

C# ist eine .NET-Sprache und damit von Microsoft ausschließlich für Windows vorgesehen - .NET 3.0/3.5 ist erst ab Windows XP benutzbar.

Zwar gibt es Portierungen (z. B. Mono, derzeit am weitesten fortgeschritten), aber da sie nicht von MS unterstützt sind, hängen sie naturgemäß immer ein wenig der aktuellen Entwicklung hinterher.

Andererseits hat C# aber auch sehr interessante Konzepte, zu denen es in Java keine Entsprechung gibt:

  • Properties
  • Delegates und darauf aufbauende Events

Erstere sind mit Getter-/Setter-Methoden leicht nachzubauen (was letztlich angenehmer oder besser ist, muss jeder für sich selbst entscheiden). Letztere sind so nicht direkt nachbaubar, man benötigt Interfaces, um eine entsprechende Funktionalität zu erreichen (vgl. C# Events und Java Listeners).

C#s using-Direktiven gibt es in zwei Varianten, einmal um ganze Namespaces verfügbar zu machen (Java: import &lt;package&gt;.*;), einmal um einzelne Klassen verfügbar zu machen (Java: import &lt;package&gt;.&lt;class&gt;;), bei letzterem kann/muss man dann einen Alias für die Klasse angeben (der durchaus auch gleichlautend wie der Klassenname sein kann). Mit der zweiten Variante kann man auch mehrere gleichbenannte Klassen aus verschiedenen Namespaces benutzen, ohne die Namespaces voranstellen zu müssen, bei Java muss man in diesem Fall alle Klassen bis auf eine mit vorangestelltem Package ansprechen.

Ich persönlich arbeite lieber mit Java, da ich mich ungern so eng an MS-Betriebssysteme binde, auch wenn ich meistens auf/für Windows-Systeme entwickle.

...zur Antwort

Das ganze ist ein wenig komplexer, wie von meinen Vorrednern bereits angedeutet.

Dein Java-Programm wirst du dann als Applet erstellen müssen (also von der Klasse java.applet.Applet erben, siehe http://java.sun.com/javase/7/docs/api/). Endung des Quellcodes ist ganz normal .java.

Du überschreibst dann je nach Bedarf die Methoden init(), start() und evtl. stop().

Eine public static void main(String[]) benötigst du übrigens nicht mehr (kann man aber trotzdem erstellen, wenn man möchte, dass das Programm auch eigenständig laufen können soll).

Nach dem Kompilieren erhälst du eine oder mehrere .class-Dateien. Falls es mehrere sind (du also mehrere verschiedene Klassen erstellt hast), packt man diese am besten alle in ein Java-Archiv (Endung .jar; schau mal im Wikipedia nach...)

Anschließend musst du zusätzlich eine html-Seite erstellen, in die du das Applet einbindest (applet-Tag), mit Verweis auf die einzelne Klasse oder das Archiv).

Weitere Programme benötigst du dafür nicht, lediglich den Editor und den Java-Compiler - eine ausgewachsene IDE wie Eclipse oder NetBeans allerdings nimmt einem vor allem bei komplexeren Programmen doch eine ganze Menge Arbeit ab, deshalb würde ich dir wärmstens eine empfehlen (z. B. werden Syntaxfehler bereits beim Schreiben und nicht erst beim Kompilieren erkannt).

Wenn allerdings nicht explizit ein Java-Applet gefordert ist, würde ich auch eher zu JavaScript raten - was allerdings etwas ganz anderes ist als Java ('Wal und Walnuss', wie ein Vorredner so schön bemerkt hat...), das kann dann auch direkt in der HTML-Seite selbst geschrieben werden.

Java-Applets sind heutzutage eigentlich nur noch interessant, wenn Funktionalität notwendig ist, die JS architekturbedingt nicht liefern kann, so z. B. Multithreading oder stehende Verbindungen z. B. über TCP oder UDP (letzteres z. B. für Chat-Rooms), können aber auch mal einem reinen Java-Programmierer ermöglichen, schnell eine Seite zu erstellen, ohne sich explizit in JS einarbeiten zu müssen (dann allerdings sollte er sich GWT mal anschauen...)

...zur Antwort

Der Einstiegspunkt für ein ausführbares Java-Programm ist immer die Methode

public static void main(String[] args);

Genau das sucht nämlich die JVM, eine öffentliche, statische Methode namens main, die ein String Array übergeben bekommt - nur beim Namen für diesen Parameter bist du frei (String[] params oder String[] values wäre z. B. genauso gut möglich).

Die JVM erkennt Kommandozeilenparameter einfach nur als Folge von Zeichen und interpretiert diese auch nicht weiter.

Theoretisch wäre zwar denkbar, dass verschiedene main-Methoden erlaubt sind, aber dabei kommt man schnell in Teufels Küche:

Wenn die main-Methode mehrfach überladen ist, dem Programm aber gar keine Parameter übergeben werden - welche der main-Methoden sollte dann ausgewählt werden? Man müsste dann ja vom Programmierer verlangen, dass er, wenn er die main überladet, auch eine parameterlose Variante erstellt...

Wenn doch Parameter übergeben werden, dann muss zum einen vorneweg erst einmal geprüft werden, welche main-Methoden denn überhaupt alle vorhanden sind und anschließend für die Parameter, auf welche der vorhandenen main-Methoden sie auch passen. Das ist ein enormer Aufwand, der für die weit überwiegende Anzahl der geschriebenen Programme überhaupt nicht erforderlich ist (da sie eh Strings als Parameter oder von vorneweg überhaupt keine Parameter benötigen).

...zur Antwort

Die Waage hat keine Batterien - ist es dann eine elektronische mit Stecker oder eine mechanische?

Bei der elektronischen könnte eine Rolle gespielt haben, wann du sie eingeschaltet bzw. die Schüssel darauf gestellt hast:

  • Waage einschalten, Schüssel mit Kartoffeln drauf -> Schüssel wird mitgewogen
  • Leere Schüssel drauf, Waage einschalten (jetzt sehen die meisten elektronischen Waagen die Schüssel als Tara an!), geschnittene Kartoffeln rein -> Schüssel wird nicht mitgewogen

Falls die Waage eine Tara-Taste hat, könntest du sie im einen Fall gedrückt haben, im anderen nicht.

Mechanische Waagen können meist am Gehäuse verstellt werden, um so ebenfalls Tara zu berücksichtigen. Vielleicht hast du sie versehentlich und unbemerkt verstellt?

Falls du das alles ausschließen kannst: Ich vermute mal, dass es eine herkömmliche Küchenwaagen ist - die sind meist 1 oder 5 Gramm genau. Falls nicht, könnte das auch mit der Ungenauigkeit der Waage zusammenhängen (erstes Wiegen: gerade untere Grenze für 800g erreicht, real aber weniger; Flüssigkeitsverlust beim Schneiden; zweites Wiegen: gerade noch im Bereich für 700g, real aber mehr Gewicht).

...zur Antwort

C# und C++ sind im Grunde recht ähnlich - speziell die Syntax ist bei beiden großenteils gleich.

C++ ist allerdings komplexer - hier ist vieles möglich, was in C# nicht direkt bzw. gar nicht vorgesehen ist (z. B. Zeigerarithmetik, Speicherverwaltung, etc). Allerdings muss man sich auch um vieles kümmern, was C# automatisch erledigt wird (z. B. explizites Löschen von nicht mehr benötigten Objekten mittels delete).

Somit wirst du sehr bald feststellen, dass es ein paar Ausnahmen mehr sind als nur "ein "paar"...

Trotzdem ist der Umstieg gut machbar (ich habe damals den Sprung von Java aus gewagt). Man muss halt ein besonderes Augenmerk auf die Fragen legen, die man von C# oder Java her nicht kennt (z. B. wann lösche ich dieses oder jenes Objekt bzw. kann es bereits gelöscht werden oder wird es noch anderswo gebraucht).

...zur Antwort

Ich persönlich tendiere da zum Mercedes - ich stehe mit BMWs iDrive ein wenig auf Kriegsfuß - allerdings wäre für mich der 5-er die Alternative.

Audi TT käme für mich nicht in Frage, da eher unpraktisches Auto. Die Marke Audi an sich dagegen schon (z. B. A4 oder A6).

Wie sich wahrscheinlich schon herauslesen lässt, lege ich auf praktische Autos wert - würde da eh eine der Kombi-Varianten bevorzugen...

Da allerdings würde ich dann einen Audi nehmen - alle drei sind sehr gute Autos, Audi ist aber am preisgünstigsten.

Wenn du einen Wiederverkauf planst: Mercedes hat den geringsten Wertverlust - in diesem Fall ein auch nicht zu vernachlässigender Aspekt.

...zur Antwort

PHP ist noch weit davon weg, veraltet zu sein. Abgesehen von seiner weiten Verbreitung und auch der Tatsache, dass es leicht zu erlernen ist, bieten PHP auch fast alle Webhoster in mindestens einem ihrer Paktete an.

Einen Hoster, der z. B. Java-Applikation-Server anbietet, sucht man da schon länger (findet man aber auch, aber da eher ein Nischenprodukt, nicht ganz so günstig).

Speziell im privaten und kleingewerblichen Bereich, wo die Webapplikationen noch überschaubar bleiben, wird PHP deshalb noch lange Zeit erhalten bleiben.

...zur Antwort

Wenn fünf Minuten lang alles funktioniert, glaube ich nicht, dass es an den Einstellungen liegt - denke eher, dass der Router irgendein Problem hat.

Evtl. hilft ein Firmware-Update.

Habt ihr schon mal einen anderen Router ausprobiert? Vielleicht leiht ein Freund euch einen aus.

...zur Antwort

Ich denke, man ist heutzutage viel zu sehr auf Äußerlichkeiten fixiert - auf Schönheitsideale, denen eh kaum einer der ganz gewöhnlichen Alltagsmenschen genügen kann.

Warum gerade die Schlanken besonders anfällig sind - vielleicht deshalb, weil sie sich eher mit Models oder ähnlichen schlechten Vorbildern zu identifizieren versuchen als die weniger Schlanken...

...zur Antwort

Als erstes würde ich versuchen, mich ohne Handy-Nummer anzumelden. Vielleicht ist das gar kein Pflichtfeld? Falls doch, würd ich's eher bleibenlassen.

Generell wäre ich mit der Handy-Nummer vorsichtig! Wenn die explizit verlangt wird, ist das selten ein gutes Omen.

Lies dir am besten die AGB und alles, was du sonst noch dazu finden kannst, aufmerksam durch. Steht da irgendetwas davon drin, dass du einen Vertrag eingehst? Ein Abo? Das muss klar aus der Seite hervorgehen, ansonsten kannst du die Zahlung verweigern. Aber eine Menge Ärger bedeutet das dann trotzdem.

...zur Antwort

Du hast absolut recht - sie soll das bloß nicht machen!!!

Es ist überaus gefährlich, sich mit völlig unbekannten Leuten zu treffen - es ist viel zu leicht, sich eine falsche Identität zu schaffen.

In der eigenen Wohnung sollte das Treffen daher auf gar keinen Fall stattfinden!!!

chokinghazards Tip (s. o.) ist da auch gut: Wenn sie sich überhaupt nicht von einem Treffen abbringen lassen will - versuch sie wenigstens dazu zu überreden, dass es an einem öffentlichen Ort stattfindet und zu einer Zeit, zu der viel Publikumsverkehr herrscht.

Dieses dann am besten auch nicht allein - geh mit, wenn alles in Ordnung ist, kannst du dich immer noch verabschieden.

Wenn sie das auch nicht akzeptieren will, wenn sie auf das Treffen zuhause beharrt - dann informiere unbedingt ihre Eltern!!!

...zur Antwort

Du solltest dir da vielleicht erst mal überlegen, was du später denn eigentlich machen willst.

Wenn du einen Hang zu Archäologie, Medizin, Philosophie oder Theologie hast - da schaden auch heute noch Lateinkenntnisse nicht. Auch wenn du Romanistik studieren möchtest (schau mal in Wikipedia nach), fährst du u. U. mit Latein besser, weil es die Grundlage aller Sprachen bildet, die von diesem Fach abgedeckt werden.

Ansonsten denke ich, dass du eher mit Französisch besser fährst - das kannst du direkt im Nachbarland, in Quebec und anderen Teilen der Welt einsetzen. Ich habe z. B. Informatik studiert, Latein nützt mir da wenig. Französisch kann ich wenigstens im Urlaub benutzen...

...zur Antwort

C++ hat mit C# im Windowsbereich harte Konkurrenz bekommen - aber am Aussterben ist es deshalb noch lange nicht.

Dazu ist es im Linux-Bereich nach wie vor die dominierende Sprache.

Ansonsten schließe ich mich bel1987 an. Vor allem im Echtzeitbereich tun sich hier stärken auf.

...zur Antwort

Das herunterladen ist im Grunde so nicht vorgesehen. Der Code für das Applet liegt aber möglicherweise im Cache (evtl. mal nach JAR- oder JAVA-Dateien Ausschau halten).

Vorsicht: Das Applet als solches ist höchstwahrscheinlich urheberrechtlich geschützt und darf ohne Weiteres gar nicht so verwendet werden!

Powerpoint wiederum verfügt nicht über mittel, Applets einzubinden (zumindest sind mir keine bekannt).

Falls du aber nur einzelne Ansichten davon benötigst, könntest du evtl. Screenshots anfertigen und diese einfügen.

...zur Antwort