Sind unten stehende Anweisungen kompilierbar?

S

SophiaK

Mitglied
Hallo zusammen,

ich versuche mir gerade berufsbedingt Java anzueignen und muss innerhalb kurzer Zeit einiges nachholen.
Ich habe folgende Aufgabe gegeben, kann aber mit dem Ausdruck "kompilierbar" wenig anfangen. Könnte mir jemand von Euch bitte in ein paar Worten erklären was in diesem Zusammenhang damit gemeint ist?

Mit float und char sind wahrscheinlich die Variablentypen gemeint und in welcher Zahlenform diese auftauchen sollen, oder?

float var1 = 3; //1
float var2 = 3.14; //2
char var3 = '3'; //3
char var4 = 3; //4
char var5 = '3.14'; //5
 
kneitzel

kneitzel

Top Contributor
Du kannst doch bestimmt ein einfaches Java Programm schreiben. Also einfach eine Klasse mit main Methode.

Wenn Du da in die main Methode diese Zeilen kopierst und dann den Code versuchst zu übersetzen ("compilieren"), dann wirst Du sehen, ob es geht oder nicht.

"Kompilierbar" bedeutet, dass der Code übersetzt werden kann.
float und char sind (Daten)Typen. Um ganz genau zu sein: primitive Datentypen. Wenn es da Unklarheiten gibt, dann findet sich per Google einiges dazu. Und dann sind das Variablen Deklarationen zusammen mit Initialisierungen. Dazu hast Du dann sogenannte Literale (Konstanten) im Code. ==> Dazu ggf. auch einmal in Google schauen - da findet sich auch einiges.

Daher sind die Kernfragen bei jeder Zeile:
a) Ist das ein Gültiges Literal? Wenn ja: Was für ein Typ hat das Literal?
b) Wenn es ein gültiges Literal war: Kann dies der Variable so zugewiesen werden?
Hier ist dann das Thema: implizite und explizite Konvertierungen um das nachzulesen.
 
J

Joreyk

Bekanntes Mitglied
Interpretieren = Computer startet ein programm liest ne Zeile übersetzt es in maschinen Lesbare Sprache und führt Zeile aus (Skript Sprachen wie SHELL)
Kompilieren = Computer nimmt erstmal ganzen Code und übersetzt es in Maschinen Sprache und dann kann man es ausführen (Sprachen wie C)

diese beispiele sind "GROB" formuliert aber umreissen das grundprinzip


Es gibt aber auch Skript Sprachen die einen Compiler vorgestellt haben zb PHP kannst du als "php my.php" ausführen dann wird es interpretiert
wenn du "php -f my.php" eintippst in die Konsole wird es zuerst kompiliert und dann ausgeführt
Python ist auch eine Skript Sprache wo man einen Compiler "vorschalten kann"

Java hat noch die Spezielle eigenschaft dass es beim Start in einer JVM gibt ( Java Virtual Machine ) da findest sicher was

und prinzipielle datenstrukturen kannst du in Tutorials finden in youtube
 
S

SophiaK

Mitglied
public class aufgabe2 {





public static void main(String[] args) {





float var2 = 3.14;





System.out.println(var2);





}





}


Danke. Nur warum kann er die var2 = 3.14 nicht ausgeben, float beinhaltet doch Kommazahlen?
 
S

SophiaK

Mitglied
Und hier steht in der Lösung "Es wird das dritte Zeichen aus der Ascii Tabelle gespeichert" - was heisst denn das?

char var4 = 3; //4

Danke :)
 
J

Joreyk

Bekanntes Mitglied
Java:
float x = 3.456f;
        System.out.println(x);
hast da was vergessen ;)

ein char beinhaltet ein Zeichen aus der ASCII Tabelle das sind die Zeichen die du so benutzen kannst
die haben ne Positive Zahl und die Zahl repräsentiert ein Zeichen

Java:
char c = 198;
        System.out.println(c);
probier das mal aus

in der Ascii tabelle sind nur ganzzahlige zahlen und nur positiv
 
kneitzel

kneitzel

Top Contributor
Also da sind erst einmal mehrere Dinge in der Zwischenzeit aufgelaufen:

1. float var2 = 3.14;

Du hast da nichts vergessen, denn das ist der vorgegebene Code. Da hast Du aber einen Fehler bekommen. Das bedeutet also, dass dies nicht übersetzbar ist. Das wäre dann erst einmal die Antwort für den Code.
Bei sowas ist dann aber immer die Fehlermeldung wichtig. Du wirst da etwas bekommen haben wie:
java: incompatible types: possible lossy conversion from double to float
Also eine mögliche mit Verlust behaftete Konvertierung von double zu float.
Das bedeutet dann einfach: 3.14 ist ein double. Ein double ist deutlich genauer als ein float. Bei einer Konvertierung geht also etwas verloren. Eine solche Konvertierung ist möglich, aber diese wird nicht implizit gemacht. Es muss eine explizite Konvertierung vorgenommen werden oder es muss ein float angegeben werden. 3.14f wäre ein float Literal.

Ein Beispiel für die implizite Konvertierung war übrigens die erste Zeile: 3 ist ein int und der lässt sich in ein float umwandeln.

2. Dann das Thema Zeichen. Ein Computer kennt nur Zahlen. Diese sind in Bytes gruppiert. Was anderes kann ein Computer also gar nicht speichern. Wenn aber nun ein Zeichen wie '3' gespeichert werden soll, dann muss da irgend eine Zahl gespeichert werden. Eines der ersten Darstellungen war eine ASCII-Tabelle: z.B. https://www.torsten-horn.de/techdocs/ascii.htm
Da werden alle Zeichen mit einer Zahl zwischen 0 und 127 dargestellt. Die '3' ist die 51.
Dadurch kann man einem char also nun entweder ein char zuweisen oder eben auch eine Zahl.

Anmerkung: Die ASCII Tabelle ist aber nur eine einfache Tabelle von früher. Die wird so heute eigentlich nicht mehr verwendet. Üblich sind heutzutage UTF-16 Codes. Aber die Werte der ASCII Tabelle für die üblichen sichtbaren Zeichen stimmen überein. Die finden sich so bei fast allen Darstellungen, also z.B. auch ISO_5589 und was es sonst noch so gibt.

Zweite Anmerkung: Hier hätte man prinzipiell auch einen Fehler wie oben erwarten können. Denn wir haben ein int Literal, das mit 4 Byte gespeichert wird. Ein char ist aber nur 2 Byte groß. Aber da es eine Konstante ist, weiss der Compiler sozusagen, dass es passt. Ohne dieses Wissen kommt der Fehler, also z.B. hier:
Fehler, da int 4 bytes und char nur 2 Bytes groß!:
    public char intToChar(int value) {
        return value;
    }

Hier ist aus meiner Sicht wichtig, dass man sich einfach merkt, wie welche Literale dargestellt werden können. Da gibt es nicht so viele und die muss man einfach lernen. Ebenso die Datentypen. Es sollte bekannt sein, was es so gibt und wie groß diese sind.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
UnknownInnocent Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
B Sind meine If-Statements richtig angesetzt ? Java Basics - Anfänger-Themen 27
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
R Wozu sind Annotations da? Java Basics - Anfänger-Themen 3
H Was sind Package bei eclipse? Java Basics - Anfänger-Themen 1
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
C Tabs in JTabbedPane wechseln, wenn Tabs in eigenen Klassen sind Java Basics - Anfänger-Themen 2
Azazel Wie wichtig sind Castings in Java ? Java Basics - Anfänger-Themen 1
S Was sind Java Beans? Java Basics - Anfänger-Themen 7
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
J Prüfen ob Arrays nur mit einem Wert belegt sind Java Basics - Anfänger-Themen 3
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
P OOP Testen ob 2 Strings gleich sind Java Basics - Anfänger-Themen 8
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
? Wie sind ESCAPE-Sequenzen (z.B \f für einen Seitenvorschub) richtig anuwenden? Java Basics - Anfänger-Themen 3
M Warum sind Strings Immutable? Java Basics - Anfänger-Themen 7
S Werte aus SingeltonKlasse sind manchmal =0 &manchmal !=0 Java Basics - Anfänger-Themen 1
M Sind solche boolean Anweisen empfehlenswert? Java Basics - Anfänger-Themen 3
F Scanner + Stringbuilder geben leeren String aus wenn Umlaute enthalten sind Java Basics - Anfänger-Themen 29
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 8
Kenan89 Wo sind die Java Standard Library Source Codes zu finden? Java Basics - Anfänger-Themen 5
L JDK installieren Sind in src.zip tatsächlich die verwendeten Klassen? Java Basics - Anfänger-Themen 7
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
B Funktionen programmieren, die im Hintergrund aktiv sind Java Basics - Anfänger-Themen 2
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
C hashCode() bei Klassen, die nicht immutable sind Java Basics - Anfänger-Themen 27
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
D Warum sind Generics mit Vorsicht zu genießen? Java Basics - Anfänger-Themen 6
E Was sind Javascript und Java EE? Java Basics - Anfänger-Themen 7
S Wie performance lastig sind rekursionen Java Basics - Anfänger-Themen 13
C Nach Java-Installation sind Befehle erfolglos Java Basics - Anfänger-Themen 4
B Variablen Warum sind die blau Java Basics - Anfänger-Themen 2
L Liste aller Klassen die in einem Paket sind Java Basics - Anfänger-Themen 7
S Warten bis alle Threads fertig sind Java Basics - Anfänger-Themen 12
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
J Drei Errors sind drei zuviel! Java Basics - Anfänger-Themen 25
RySa Input/Output Datei kann nicht gelöscht werden, obwohl Streams geschlossen sind. Java Basics - Anfänger-Themen 2
H Wieviele Objekte gleichzeitig sind sinnvoll? Java Basics - Anfänger-Themen 4
S Dezimale Konstanten sind immer positiv oder null - was heisst das den genau? Java Basics - Anfänger-Themen 2
D Strings sind ungleich obwohl sie in der Ausgabe gleich sind Java Basics - Anfänger-Themen 10
D Sind Enums typsichere Konstanten? Java Basics - Anfänger-Themen 15
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
W Array nach Elemenden die durch 2 teilbar sind durchsehen Java Basics - Anfänger-Themen 9
N TextZeile in einzelne Strings teilen, die mit Komma getrennt sind Java Basics - Anfänger-Themen 4
L Elemente die in Array1 sind aus Array2 löschen Java Basics - Anfänger-Themen 6
C Compiler-Fehler Variablen sind angeblich nicht initialisiert Java Basics - Anfänger-Themen 7
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
I Was sind denn überhaupt Doctypes bei Java? Java Basics - Anfänger-Themen 7
Developer_X Sounds abspielen, die im internet sind (.wav) Java Basics - Anfänger-Themen 2
A Erzeugte Objekte sind nicht bekannt Java Basics - Anfänger-Themen 16
H Warum sind in Java Strings und Arrays eigentlich unveränderlich? Java Basics - Anfänger-Themen 2
G Objekte von Klassen die erst zur Laufzeit bekannt sind erstellen Java Basics - Anfänger-Themen 6
nrg Datentypen Sind Arrays Objekte? Java Basics - Anfänger-Themen 9
B Für was sind die Annotationen gut? Java Basics - Anfänger-Themen 6
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
T Probleme mit ArrayList, in der Objekte gespeichert sind, die ArrayLists enthalten Java Basics - Anfänger-Themen 2
Semox Sind Objekte in einer ArrayList überschreibbar? Java Basics - Anfänger-Themen 2
D 100.0% gleichmäßig aufteilen, so dass Summe 100.0% sind, nicht 99,9% oder 100,1% Java Basics - Anfänger-Themen 3
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
M Was sind das für Probleme? Java Basics - Anfänger-Themen 6
B was sind Dataflavor Java Basics - Anfänger-Themen 2
M Wo sind meine double-Zahlen? Java Basics - Anfänger-Themen 2
T Sind Kontrollflussanweisungen auch Methoden? Java Basics - Anfänger-Themen 5
N Wie schlimm sind Cyclen in einem Programm Java Basics - Anfänger-Themen 3
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
T Was sind Attribute? Java Basics - Anfänger-Themen 9
P Was sind Vectoren und Maps in Java? Java Basics - Anfänger-Themen 3
G Sind das Generics Java Basics - Anfänger-Themen 2
P Prüfen ob alle zellen der tabelle leer sind Java Basics - Anfänger-Themen 9
C Alle Zeichen, die in der Console sind in Textdatei Java Basics - Anfänger-Themen 12
M Feststellen, das Textboxen leer sind! Java Basics - Anfänger-Themen 3
6 Swing: Dynamisch erzeugte Objekte sind verschoben Java Basics - Anfänger-Themen 2
G Was Units für Pascal sind, sind ? für Java Java Basics - Anfänger-Themen 9
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
C Welche Elemente sind in der ComboBox? Java Basics - Anfänger-Themen 3
G alle Zahlen die durch 3 teilbar sind Java Basics - Anfänger-Themen 4
G Herausfinden, wann mehrere Threads abgeschlossen sind Java Basics - Anfänger-Themen 3
F Warum sind Interface-Methoden public? Java Basics - Anfänger-Themen 19
N Java wird nicht ausgeführt obwohl nötige Pfade gesetzt sind Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben