Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 nächste »
erste ungelesene Seite | letzter Beitrag 
Rootsquash

Arctic
Moin. Ich versuche mich mal wieder an Java, aber vermisse ganz furchtbar call by reference.

Es gibt bestimmt eine tolle Lösung, aber dafür reichen meine SKillz nicht.

Bisher kann der Code schon:
 
Code:
for i in (...) { //diese Schleife nimmt sich einen Datensatz, extrahiert die Parameter, verwurstet den Datensatz mit den Parametern, egal wie toll die sind
 foo;
 bar;
}

Das soll auch weiter funktionieren, aber optional soll auch das hier gehen:
 
Code:
for i in (...) { //diese Schleife durchsucht die Eingangsdaten nach den tollsten Parametern
 foo;
}

for i in (...) { //diese Schleife verarbeitet alle Eingangsdaten mit den tollsten Parametern
 bar;
}


Da würde es sich ja anbieten foo und bar in Funktionen auszulagern, richtig?

Aus foo() sollen ein Double und ein Integer rausploppen. In C würde ich dem Ding einfach 2 Pointer in die Hand drücken, fertig.
In Java? Muss ich da jetzt wirklich eine neue Klasse schreiben?
Muss das wiklich so scheiße lang sein wie in diesem Beispiel:
 
Code:
final class MyResult {
    private final int first;
    private final int second;

    public MyResult(int first, int second) {
        this.first = first;
        this.second = second;
    }

    public int getFirst() {
        return first;
    }

    public int getSecond() {
        return second;
    }
}

?

Spoiler - markieren, um zu lesen:
hoffentlich habe ich sowas hier nicht chonmal gefragt und iweder vergessen.. ich komme nicht so oft zum Programmieren wie mir lieb wäre
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 04.04.2019 15:35]
04.04.2019 15:34:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
b4ckspin

tf2_medic.png
 
Zitat von csde_rats

Was ist denn der gegebene Anlass?


Unfähige Software Devs..

Würde nur ungern alle am Markt verfügbaren Obfuscatoren/Anti-Debugger evaluieren :/
04.04.2019 15:53:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
derSenner

AUP derSenner 08.04.2020
 
Zitat von Rootsquash

Moin. Ich versuche mich mal wieder an Java, aber vermisse ganz furchtbar call by reference.

Es gibt bestimmt eine tolle Lösung, aber dafür reichen meine SKillz nicht.

Bisher kann der Code schon:
 
Code:
for i in (...) { //diese Schleife nimmt sich einen Datensatz, extrahiert die Parameter, verwurstet den Datensatz mit den Parametern, egal wie toll die sind
 foo;
 bar;
}

Das soll auch weiter funktionieren, aber optional soll auch das hier gehen:
 
Code:
for i in (...) { //diese Schleife durchsucht die Eingangsdaten nach den tollsten Parametern
 foo;
}

for i in (...) { //diese Schleife verarbeitet alle Eingangsdaten mit den tollsten Parametern
 bar;
}


Da würde es sich ja anbieten foo und bar in Funktionen auszulagern, richtig?

Aus foo() sollen ein Double und ein Integer rausploppen. In C würde ich dem Ding einfach 2 Pointer in die Hand drücken, fertig.
In Java? Muss ich da jetzt wirklich eine neue Klasse schreiben?
Muss das wiklich so scheiße lang sein wie in diesem Beispiel:
 
Code:
final class MyResult {
    private final int first;
    private final int second;

    public MyResult(int first, int second) {
        this.first = first;
        this.second = second;
    }

    public int getFirst() {
        return first;
    }

    public int getSecond() {
        return second;
    }
}

?

Spoiler - markieren, um zu lesen:
hoffentlich habe ich sowas hier nicht chonmal gefragt und iweder vergessen.. ich komme nicht so oft zum Programmieren wie mir lieb wäre



Ich glaube tatsächlich, dass das in Java nicht geht - aber ich hab auch schon länger nix mehr damit gemacht.

Methodenargumente werden immer per Value überreicht, nie per Reference. Du kannst in einer Methode aber z.B. ein Object übergeben, und auf dem Object setFoo(...) callen - das wird dann schon per Referenz gesetzt.

Entweder also eine Klasse returnen oder z.B. ne ArrayList, oder so.

ODER GLOBALE KLASSENVARIABLEN!
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von derSenner am 04.04.2019 16:15]
04.04.2019 16:14:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Java übergibt alles By-Value. Primitive Typen (z.B. int, bool) gehen also nur By-Value. Objekte existieren ohnehin nur als Referenzen auf fremdverwaltete Objekte, ergo werden grundsätzlich nur Referenzen auf Objekte (entsprechend By-Value, de-facto By-Reference, vulgo Call-By-Object) rumgereicht.

tl;dr ja dafür brauchst du ne Klasse.
04.04.2019 16:19:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rootsquash

Arctic
Geil, danke.
Eine eigene Klasse, nur weil man statt einem Integer einen Integer und ein Double zurückgeben will. Was haben die geraucht?
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 04.04.2019 16:37]
04.04.2019 16:37:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
Zur Verteidigung: Mir fällt keine Sprache ein in der das anders wäre.
Zur Verdammung: Java Syntax ist halt kacke und jede andere Sprache (sogar cpp!) kam auf die Idee Syntaxzucker dafür einzuführen.
04.04.2019 16:41:43  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Das braucht auch in C++ eine eigene Klasse, wenn man keine output parameter übergeben will (und keiner will das). Allerdings wird die Klasse in der stl mitgeliefert (std:air).

edit: Und vollste Zustimmung@borg. Ist in anderen Sprachen, die versuchen, Nutzern das Leben durch Vermischung von Objekten und Referenzen einfacher zu machen, ähnlich: Python hat auch eine ähnliche Unterscheidung in primitive Types (int, float) und Objekte.

edit2: Und deswegen nutzt man in der JVM auch Kotlin, da sieht deine neue Klasse dann so aus:
 
Code:
data class LolPot(val integer: Int, val double: Double)


[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von PutzFrau am 04.04.2019 16:47]
04.04.2019 16:43:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021


Nö. Python hat nur Objekte.

e: Ehrlich gesagt sehe ich es auch eher umgekehrt. Objekte sind das primäre Konzept der Sprache und dann meinte jemand, dass es vong Performance her ja voll toll wäre primitive Typen einzuführen (<- ich glaube, dass es in Java's Entwicklungsgeschichte sogar so gelaufen ist). Tatsächlich ist mit nem JIT (oder schon Optimierungen auf Bytecode-Ebene) sowas aber kein sonderlich relevanter Unterschied... quasi YAGNI im Typsystem.

 
Zitat von Rootsquash

Geil, danke.
Eine eigene Klasse, nur weil man statt einem Integer einen Integer und ein Double zurückgeben will. Was haben die geraucht?



Integer und Double wären ja By-Object. Nur sind die beiden halt immutable verschmitzt lachen

int != Integer
ersteres ist ein primitiver Typ
letzteres ist eine Klasse. Im Java-Jargon ist "Integer das Boxing von int".
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von csde_rats am 04.04.2019 16:49]
04.04.2019 16:46:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Java final ist auch so eine behinderte Sache: Kann bitte jemand mal C++-style const in Java hinzufügen?

04.04.2019 16:48:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von csde_rats

https://pstore.enkore.de/NEINNEINNEINNEINNEIN.gif

Nö. Python hat nur Objekte.



Ja, ungenau formuliert, aber das ist besides the point, weil das Resultat für den Coder in diesem Zusammenhang dasselbe ist:
 
Code:
def add(i):
    i + 1
a = 1
add(a)
print(a)


[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von PutzFrau am 04.04.2019 16:52]
04.04.2019 16:52:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Achja? Was ist denn bei
char**const s;
const? Breites Grinsen



e: Genau mein Punkt. Das ist konzeptionell sauberer, weil Parameter sich immer gleich verhalten, aber die Objekte unterschiedlich sein können. Java hat unterschiedliche Arten von Parametern und unterschiedliche Arten von Objekten, was unnötig ist. Immutable Integer by-object ist aus Programmierersicht das gleiche wie int by-value, nur dass es orthogonale Konzepte vermischt, weil ich z.B. auch einen MutableInteger by-object haben kann, der sich entsprechend anders verhält als int by-value, wobei int[] natürlich wieder ein Objekt ist und sich also nicht wie ein int-Parameter verhält. Hooray.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von csde_rats am 04.04.2019 16:57]
04.04.2019 16:52:18  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von csde_rats

Achja? Was ist denn bei
char**const s;
const? Breites Grinsen



Der Pointer natürlich. Aber es fehlt einfach eine Möglichkeit, Objekte const zu machen in Java. Es ist wundervoll in cpp:
 
Code:
const image& lol

Da weiß man direkt, dass der state von lol nicht verändert wird.
Was hat Java.
final
? Lol!

04.04.2019 16:56:03  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von csde_rats

e: Genau mein Punkt. Das ist konzeptionell sauberer, weil Parameter sich immer gleich verhalten, aber die Objekte unterschiedlich sein können. Java hat unterschiedliche Arten von Parametern und unterschiedliche Arten von Objekten, was unnötig ist. Immutable Integer by-object ist aus Programmierersicht das gleiche wie int by-value, nur dass es orthogonale Konzepte vermischt, weil ich z.B. auch einen MutableInteger by-object haben kann, der sich entsprechend anders verhält als int by-value, wobei int[] natürlich wieder ein Objekt ist.



Meine Intention war niemals, das Java Design zu verteidigen. Breites Grinsen

04.04.2019 16:57:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[KDO2412]Mr.Jones

[KDO2412]Mr.Jones
Und einfach in ein Array stecken und das zurück geben geht nicht?
04.04.2019 16:57:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Geht schon, aber das muss dann halt ein
Object[]
oder ein
Number[]
sein, mit anschließendem cast (oder Number.toDouble). Eher nervig.

[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von PutzFrau am 04.04.2019 17:02]
04.04.2019 17:00:58  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
krischan111

Arctic
 
Zitat von b4ckspin

Ich suche aus gegebenen Anlass einen guten DotNet Obfuscator / Anti-Debugger.

Folgende Tools hab ich mir mal angesehen:
- ILProtector
- Dotfuscator
- Confuser

Hat jemand schon Erfahrung mit diesen oder ähnlichen Tools und evtl. ne Empfehlung?


Unsere .Net Leute nutzen babelfor.NET.
04.04.2019 19:08:10  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rootsquash

Arctic
 
Code:
       class BestMod {
            private double highestMod;
            private int highestModInd;

            public BestMod() {
                this.highestMod = 0;
                this.highestModInd = 0;
            }

            public double getHighestMod() {
                return highestMod;
            }
        }
BestMod Mod = new BestMod();
Mod.highestMod = modulation;
Mod.highestModInd = timePos;


Ich bin mit Objektorientierungnoch nicht warm geworden. In C wäre das so viel schöner.
04.04.2019 19:47:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Dumenikl

Dumenikl
verschmitzt lachen
Du wolltest sagen in LISP wäre das viel schöner



[e] Wie ist denn die Lernkurve von Java zu Kotlin? Ich hätte da ziemlich Bock drauf, dachte aber ich will erst durch Java vernünftig durchsteigen
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Dumenikl am 04.04.2019 19:51]
04.04.2019 19:49:23  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Kotlin ist ziemlich nice kann aber ohne IDE schwer zu lesen sein. Java ist sehr einfach, ist aber ohne IDE unerträglich.

Java lesen können sollte man so oder so, aber ich mein... das ist jetzt nicht so schwer.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 04.04.2019 20:00]
04.04.2019 19:59:51  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Java kann leider auch ein unglaubliches Arschloch sein. Aber insgesamt stimmt das natürlich. Man kann in Java sehr schnell sehr effizient sein.

¤: Wobei sich viele Javaprobleme eher auf die JVM reduzieren lassen, respektive inzwischen auch den Mismatch zwischen Sprach- und VMFeatures.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 04.04.2019 20:02]
04.04.2019 20:01:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[smith]

AUP [smith] 29.07.2010
 
Zitat von Rootsquash

 
Code:
       class BestMod {
            private double highestMod;
            private int highestModInd;

            public BestMod() {
                this.highestMod = 0;
                this.highestModInd = 0;
            }

            public double getHighestMod() {
                return highestMod;
            }
        }
BestMod Mod = new BestMod();
Mod.highestMod = modulation;
Mod.highestModInd = timePos;


Ich bin mit Objektorientierungnoch nicht warm geworden. In C wäre das so viel schöner.


Naja, was immer dein Code auch tun soll, die letzten Zeilen sind wenigstens komisch, wenn nicht sogar falsch. Der Rest halt eher holprig würde ich sagen.

Objektorientierung ist mit Sicherheit kein Allheilmittel, man kann aber in jeder Sprache und in jedem Paradigma absolut beschissenen Code schreiben.

Ich bin im Moment sehr von (möglichst) funktionaler Programmierung in Scala überzeugt. Damit kann man (für mich) ziemlich geilen Code schreiben und auf die Java-Infrastruktur zurückgreifen. Kotlin hat sich bisher in der Firma einfach nicht durchgesetzt. Gerade Frameworks/Libraries wie Akka rocken in Scala meiner Meinung nach einfach nur, aber es gibt natürlich auch Nachteile.

Und IntelliJ ist toll, auch wenn die letzten Updates schon ein wenig unausgegoren waren an einigen Stellen leider. Trotzdem geil. VSCode nehme ich aber mittlerweile für React/Typescript/JavaScript-Entwicklung, da ist es einfach etwas leichtgewichtiger als IntelliJ.

Nur so ein richtig richtig gutes Multi-Datenbanktool suche ich noch. Habe viele durchprobiert, irgendwo haben sie mich alle mal abgefuckt, selbst das IntelliJ-Tool traurig
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von [smith] am 04.04.2019 21:57]
04.04.2019 21:56:00  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von Dumenikl

Du wolltest sagen in LISP wäre das viel schöner



[e] Wie ist denn die Lernkurve von Java zu Kotlin? Ich hätte da ziemlich Bock drauf, dachte aber ich will erst durch Java vernünftig durchsteigen



Kotlin ist ziemlich easy, wenn man Java kann. Ich hatte allerdings auch schon 4 Jahre professionelle Java Erfahrung, bevor ich Kotlin angeschaut habe.

04.04.2019 21:58:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von [smith]

Nur so ein richtig richtig gutes Multi-Datenbanktool suche ich noch. Habe viele durchprobiert, irgendwo haben sie mich alle mal abgefuckt, selbst das IntelliJ-Tool traurig



Ich bin inzwischen bei DBeaver geladnet. Es kann akzeptabel DB2, und die anderen auch.
04.04.2019 22:07:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
 
Zitat von PutzFrau

 
Zitat von Dumenikl

Du wolltest sagen in LISP wäre das viel schöner



[e] Wie ist denn die Lernkurve von Java zu Kotlin? Ich hätte da ziemlich Bock drauf, dachte aber ich will erst durch Java vernünftig durchsteigen



Kotlin ist ziemlich easy, wenn man Java kann. Ich hatte allerdings auch schon 4 Jahre professionelle Java Erfahrung, bevor ich Kotlin angeschaut habe.




Ich hatte nur so viel Erfahrung mit Java wie man braucht Informatik zu studieren (und dann beruflich vor allem Python, C++ und TS gemacht) und bin ziemlich sofort in Kotlin rein gekommen.
05.04.2019 6:39:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Dumenikl

Dumenikl
Das klingt ja ganz zuversichtlich. Ich habe ziemlich Spaß dran Sprachen und Konzepte zu lernen. Hätte auch ziemlich Lust auf Clojure weil ich das Gefühl habe dabe noch viel neues lernen zu können.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Dumenikl am 05.04.2019 10:08]
05.04.2019 10:07:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Da werfe ich doch gleich mal Brave Clojure in den Raum. Ich mochte.
05.04.2019 10:27:36  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Dumenikl

Dumenikl
Ja da freue ich mich schon drauf.

Im Moment frustriert mich Thinking in Java IV schon hart.
Bis jetzt habe ich mich ohne die zum Buch gehörenden Klassen durchgeschlagen, die meisten Übungen lassen sich auch so machen.
Ab der Hälfte des Buches wird es aber dann schon schwieriger ohne auszukommen, ich sehe aber keine Chance den Kram irgendwie ans laufen zu bekommen. Das ganze basiert ja noch auf Java 5/6. Jemand hat ein Maven-Projekt daraus gemacht (was auch immer das genau ist), welches aber auch Fehler en masse wirft.
Für jemanden, der in diesem ganzen Ökosystem noch nicht wirklich durchsteigt und froh ist, wenn der eigene Classpath irgendwie hinhaut eine doch relativ unmögliche Aufgabe.
Einen kompletten freien Vormittag verballert und nichts dazu gelernt
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Dumenikl am 05.04.2019 12:31]
05.04.2019 12:31:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Ich empfehle ja immer Effective Java,aber das ist eher für Leute, die sich mit Java bereits wohl fühlen.

Aber ich denke On Java 8 vom gleichen Author wie Thinking in Java würde wohl mehr Sinn machen. Java 8 ist an vielen Stellen nicht mehr mit den Vorgängerversionen zu vergleichen, insbesondere was idiomatischen Code angeht.
05.04.2019 12:38:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Ein Prüfungsprotokoll geschrieben von Terrence Tao über eine seiner eigenen Prüfungen: https://web.math.princeton.edu/generals/tao_terence

Es wirkt erstaunlich wie Protokolle aus meinen Diplomsprüfungen, und erfreulich menschlich, obwohl ich kaum ein Thema kenne.Breites Grinsen

Wenn ist das Nunstruck git und Slotermeyer? Ja!... Beiherhund das Oder die Flipperwaldt gersput.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 05.04.2019 12:50]
05.04.2019 12:49:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Dumenikl

Dumenikl
Ah, ich dachte tatsächlich immer, dass OnJava8 nur eine Erweiterung von TIJ ist, die auf die Änderungen eingeht. Tatsächlich scheint es große Teile von TIJ in aktualisierter Form zu übernehmen. Das macht es interessant. Danke für den Hinweis!
05.04.2019 12:50:14  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 nächste »

mods.de - Forum » Public Offtopic » 

Hop to:  

Mod-Aktionen:
03.04.2020 11:26:13 Maestro hat diesen Thread geschlossen.
19.06.2018 19:32:04 Sharku hat diesem Thread das ModTag 'pimp' angehängt.

| tech | impressum