- Vezetékes FEJhallgatók
- Kompakt vízhűtés
- Mini PC
- Épített vízhűtés (nem kompakt) topic
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Fujifilm X
- Milyen billentyűzetet vegyek?
- Redmi Pad Pro - jól sikerült
- Extra D betűvel jöhet GeForce RTX 5090D utódja
- Ezért utálod a Bluetooth-t, ha egyszerre több eszközt használsz
Új hozzászólás Aktív témák
-
Szmeby
tag
Remek... letelt az időkorlát. -.-
Szóval azt még elfelejtettem, hogy ha Set-re váltasz, akkor a Point.equals mellett a Point.hashcode-ot is implementálnod kell. Az IDE elvégzi helyetted, de a lényeg:
A HashSet úgy működik, hogy a beletolt objektumra először hashcode-ot számol, ez csak egy szám. Ehhez a hashcode-hoz létrehoz egy izét, nevezzük vödörnek, és ebbe a vödörbe dobja bele az objektumodat.
Ha egy újabbat adnál hozzá, akkor arra is hashcode-ot számol, és csak az adott hashcode-hoz tartozó vödörrel foglalkozik, végigmászik a vödör tartalmán, az equals-szal csekkolja, hogy benne van-e már, és ha talált, akkor nem teszi bele újra.
Ha a hashcode számítást elcseszed, akkor előfordulhat olyan, hogy van 2 objektumod, ami az equals szerint azonos, de a hashcode szerint nem. Mindkettő bele fog kerülni a Set-be (!!), mert a másik az eltérő hashcode miatt másik vödörbe kerül. Ilyet sose csinálj.
Vagy például megváltozik az objektumod állapota (mondjuk most nem, mert minden final, de máskor, mással, másnál igen), és a megváltozott állapot miatt megváltozhat a hashcode is. Na az az objektumod, ha benne volt egy set-ben, akkor ott is marad, sose találod meg. Vicces dolgok ezek.
Gondolhatnád, hogy akkor legyen a hashcode mindig 1, abból baj nem lehet. Jó gondolat, de lassú lesz, épp azért szegmentálunk sok kis vödörre relatíve kis számításigényű megoldásokkal, hogy csak egy kis vödör tartalmán kelljen végigsuhanni, gyorsan el lehet dönteni, hogy valami benne van-e abban a Set-ben avagy sem. -
disy68
aktív tag
válasz
#74220800 #9096 üzenetére
Az equals függvényt hashCode nélkül nem írjuk felül (és amikor felülírjuk használjuk az @Override annotációt)! Mindkét függvény az Object osztályból jön, ami minden osztály őse. Olvasnivaló a témához.
-
Szmeby
tag
válasz
#74220800 #9096 üzenetére
Ezért ne kövesd el te azt a hibát, amit a java megalkotói, hogy túl általános típust használsz.
Jó, tudom, csak kompatibilitás, de akkoris.Szóval a probléma a PolyLine.equals-ban van. Mivel a szignatúrája szerint Objectet vár, az ember bármit beadhat. És hidd el, be is fog. Amin aztán az egész cucc megfekszik (pl. ClassCastException-nel), ha nem figyelsz. Rosszabb esetben - mint most is - működik tovább hibásan.
Javaslom, minden equals metódusodban ellenőrizni a bejövő paraméter típusát. Ha nem jó típus, akkor false, ha jó típus, akkor pedig tessék castolni, és aztán hasonlítgatni. Könnyebben kibukik, hogy a beadott PolyLine nem is ArrayList, amivel hasonlítani akarod.
Egyébként az equals, hashcode metódusokat egy IDE szépen ki is generálja neked, van rá menüpont.Szóval listát a listával:
public boolean equals(Object obj){
if (obj == this) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
PolyLine other = (PolyLine) obj;
return points.equals(other.points);
}Ha nem kellenek az ismétlődések, miért nem egy rendezett Setet használsz erre a célra? LinkedHashSet, vagy valami ilyesmi. Ő magától megcsinálja.
Pár megjegyzés:
- Osztályon belül felesleges gettereket használnod, simán lehet hivatkozni a field-ekre, pl.:return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2));
- Ha az objektum állapota nem változhat, akkor érdemes a field-eket final-ra állítani, így még véletlenül sem fogod tudni tönkretenni az objektumaidat. Továbbá egy ilyen tipikus value object esetén én még a getterek elhagyását is megkockáztatnám, valahogy így:
public class Point{
public final int x;
public final int y;
public Point(int x, int y){
this.x = x;
this.y= y;
}
public boolean equals(Object other){
// ...
}
public double getDistance(Point other){
// ...
}
public String toString(){
// ...
}
}- Ne félj interfészt használni, ahol lehet, könnyebben cserélgetheted majd mögötte az implementációt. Ha nem akarod cserélgetni, akkor sem árt, mert idővel rááll a kezed, és nem kell folyton törnöd az APIt egy kis módosítás miatt.
Erre gondolok:private ArrayList<Point> points = new ArrayList<Point>();
// helyett
private List<Point> points = new ArrayList<Point>();
// esetleg (attól függ, milyen funkcionalitást vársz el tőle, legyen-e rendezett, stb)
private Collection<Point> points = new ArrayList<Point>();- Ciklusban Stringeket konkatenálni + jellel nem szép dolog, brutálisan pazarló. Minden egyes konkatenáció egy újabb és egy újabb Stringet hoz létre, amit aztán a következő körben el is dob, mert csak átmenetileg volt rá szükség. StringBuilder javallott és annak append metódusa. Vaaagy használod a listák toString metódusát, mert van.
-
#74220800
törölt tag
Sziasztok!
Ismét segítségeteket kérném.
Van egy pont osztályom:
public class Point{
private int x;
private int y;
public Point(int x, int y){
this.x = x;
this.y= y;
}
public int getX(){
return this.x;
}
public int getY(){
return this.y;
}
public boolean equals(Object other){
Point otherPoint = (Point) other;
return getX() == otherPoint.getX() && getY() == otherPoint.getY();
}
public double getDistance(Point other){
return Math.sqrt( Math.pow(getX() - other.getX(), 2) + Math.pow(getY() - other.getY(), 2));
}
public String toString(){
return "(" + getX() +", " + getY() + ")";
}
}Van egy pontokból álló vonallánc osztályom:
import java.util.ArrayList;
public class PolyLine{
private ArrayList<Point> points = new ArrayList<Point>();
public PolyLine(ArrayList<Point> points){
this.points = points;
for (int i = 0; i < points.size()-1; i++){
if (!add(points.get(i))){
points.remove(i);
i--;
}
}
}
public ArrayList<Point> getPoints(){
return points;
}
public boolean equals(Object other){
return points.equals(other);
}
public boolean add(Point p){
int pos = points.indexOf(p);
return pos != -1 && !points.get(pos+1).equals(p);
}
public String toString(){
String a = "[";
String b = "" ;
for (int i = 0; i < points.size()-1; i++){
b = b + points.get(i).toString()+ ", ";
}
String c = points.get(points.size()-1).toString() + "]";
return a + b + c;
}
}A baj az, hogy a két vonallánc összehasonlításánál az equals false-t dob, amikor azok megegyeznek. Az ismétlődések nem számítanak, azt a vonallánc constructorja kiszedi. A fejlécek fixek, azokat nem lehet változtatni. A sejtesem az, hogy point osztály equals metódusával számol és nem a beépített arraylistessel.
Itt hozza a teszt:
import java.util.ArrayList;
public class Bsp10{
public static void main(String[] args){
ArrayList<Point> points = new ArrayList<>();
points.add(new Point(292, -457));
points.add(new Point(292, -457));
points.add(new Point(292, -457));
points.add(new Point(17, -277));
points.add(new Point(-942, -103));
points.add(new Point(-557, -18));
PolyLine polyLine = new PolyLine(points);
ArrayList<Point> points2 = new ArrayList<>();
points2.add(new Point(292, -457));
points2.add(new Point(17, -277));
points2.add(new Point(-942, -103));
points2.add(new Point(-557, -18));
PolyLine polyLine2 = new PolyLine(points2);
System.out.println(polyLine);
System.out.println(polyLine2);
System.out.println(polyLine.equals(polyLine2));
}
}Köszi előre is!
-
donathl
csendes tag
-
disy68
aktív tag
Tudom ajánlani a Google Java Style Guide-ot, szerintem korrekt. Jelenlegi projekten is ezt használjuk, annyi változtatással, hogy a sorszélesség 100 helyett 120.
(#9088) donathl
Ha kódot raksz be, akkor ne képként légyszi. Amúgy neked pláne ajánlom a linket. Könnyezik a szemem ezektől az ékezetes magyar nevektől -
bucsupeti
senior tag
egyetértek veled!
Egyébként én magam kiteszem mindig a { } jeleket, még akkor is ha csak egyetlen utasítás van az adott blokkban (mint pl itt az if szerkezet).
Valahogy így:for(int i=0;i<MAX; i++) {
if (i>MIN) {
System.out.println("Alma");
} else {
System.out.println("Körte");
}
} -
axioma
veterán
En elsosorban az identalast tennem helyre, mert az egy dolog hogy a zarojeleket elrontja valaki, de igy baromira nem is latszik a kodbol, hogy mit hova szant. A for-on beluli elso teljes if egy tab-bal bentebb kene legyen.
A tobbivel egyetertek, ekezet es a magyar ugy altalaban elhagyasaval kapcsolatban is, csak szerintem mind a kettot meg kene elozze, hogy a programozo szandeka vilagos legyen a kodbol. (Meg szerintem ha ez rendben van, akkor mar mechanikusan a zarojelpar highlight segitsegevel ellenorizheto, hogy ki hol van bezarva, es az ott jo helyen van-e.) -
bucsupeti
senior tag
válasz
Chesterfield #9089 üzenetére
A for ciklusnak nincsenek kapcsi tehát a teljes if tartozik hozzá. A system.out.println is.
A system.out sor elé kellene az ifet záró } jel es nem utána.
Egy javaslatom had legyen. az ékezetes betűket próbald hanyagolni az azonosítókban. -
Lacc
aktív tag
válasz
madmike #9055 üzenetére
Ez a Java jegyzet jó lehet kezdésnek. (Bár régi)
-
Taoharcos
aktív tag
válasz
Aethelstone #9071 üzenetére
Szerintem meg Kellően erős érdeklődéssel, lelkesedéssel és sok szorgalommal mindent lehet.
-
Lortech
addikt
válasz
Aethelstone #9079 üzenetére
Erre poénból rákerestem, és lám: [link]
-
floatr
veterán
válasz
Aethelstone #9079 üzenetére
Gonosz
-
axioma
veterán
válasz
Chesterfield #9080 üzenetére
Regisztralj linkedin-re, ha beirod hogy java, meg fognak talalni...
-
válasz
Chesterfield #9080 üzenetére
Profession, Cv online. Feltoltod az oneletrajzodat aztan elkezdenek bombazni a HR-esek. Legalabbis nalam igy volt. Fel eve levettem mindenhonnan, de meg most is csorog hetente a telefonom
-
Chesterfield
őstag
Álláshirdetéseket hol érdemes nézegetni?
Profession? -
Aethelstone
addikt
válasz
gyurkikrisz #9076 üzenetére
Te sem értetted meg a lényeget, hanem csak kiemeltél valamit. Neked is felhívnám a figyelmed, hogy nem csak bool algebra és oop volt a hozzászólásomban.
-
gyurkikrisz
őstag
válasz
Aethelstone #9073 üzenetére
Nekem nem okoz különösebb gondot if-else szerkezetet írni, a Bool algebra ismerete nélkül, nagyjából annyit tudva a témáról, amit néhány Java-c#-python könyvben írtak. Persze tudom, favágó vagyok.
-
bucsupeti
senior tag
válasz
fordfairlane #9068 üzenetére
Nyilván kell egy eszköz amin keresztül gyakorlatban is ki lehet próbálni az elméletet. Erre viszont semmiképp sem egy java féle környezetet javaslok.
Éppen ezért írtam azt hogy kell hozzá az architekturák és oprendszerek megfelelő összhangban történő tanulása.
pl miért és hogyan történik egy program indítása. hogyan történik a különféle adatok tárolása a memóriában. ahhoz hogyan fér hozzá a processzor. hogyan készül egy olyan program ami képes a memóriába betöltődni, majd ott elindulni és különféle utasítások végrehajtása kapcsán egy konkrét feladatot elvégezni....Szóval a java-ig meg az első osztály leírásáig el kell telni egy kis időnek ha valaki teljesen nulláról kezdi.
nyilván lehet úgy is tanulni hogy elindítja az ember a mindenféle okosságokkal felruházott IDE-t és ír benne java-ban vagy bármi más nyelvben programot, közben megtanulva a szekvencia-szelekció-iteráció egységeket alkalmazni. De az hogy közben mi és hogyan máködteti a magas szinten megírt programot ha valaki nem érti, nem látja át akkor ahogy alább írták, csak favágás lesz belőle.
Egy autószerelőnek ismernie kell az autók általános felépítését és működését a lehető legaprólékosabban. Ha nem ismeri akkor nem lesz jó autószerelő. Ki fogja tudni cserélni a gyertyákat, meg be fogja tudni állítani a gyújtást, de ez nem azt jelenti hogy érti is amit csinál. Kb ez a helyzet a programozással is.
Szóval érdemes az alapokat minél jobban megismerni, kár kihagyni ezeket a lépéseket.
-
Aethelstone
addikt
válasz
fordfairlane #9072 üzenetére
A mondanivaló hangsúlya nem az oop-n volt. Pár, fontosabb dolgot is odaírtam. Bool algebrával szopatni magam? Ember, ez mindennek az alfája és omegája. Hogy akarsz ennélkül pl. if/else szerkezetet írni?
-
fordfairlane
veterán
válasz
Aethelstone #9071 üzenetére
Viszont lehet párhuzamosan tanulni ezeket a témát. Én például nem látom sok értelmét annak, hogy valaki elkezdi tanulni az oop paradigmákat, megtanulja az összeset, ír belőle egy ZH-t, majd rá egy vagy két félévre leírja élete első osztálydeklarációját és objektumpéldányosítását. Tartok tőle, hogy az ilyenből is csak olyan programozó lesz, aki ismeri az elméletet, ismeri a gyakorlatot, de a kettőt nem tudja hatékonyan összekötni. Sajnos sokszor láttam már ilyet.
-
Aethelstone
addikt
válasz
fordfairlane #9070 üzenetére
Persze, neki lehet menni, de nagyon a favágó szintről elmozdulni nem lehet.
-
fordfairlane
veterán
válasz
Aethelstone #9069 üzenetére
A programozás, sőt manapság alkalmazás fejlesztés nem csupán for/while/if dolgokból áll.
Csakhogy nem ez a téma. Azokról az előfeltételekről beszélek, aminek birtokában neki lehet kezdeni egy átlagos programnyelvnek, olyannak, mint amilyen a Java vagy C vagy más, földi halandóknak szánt programnyelv. Semmi szükség nincs arra, hogy Boole algebrával szopasd magad ahhoz, hogy megtanuld, Java-ban hogyan kell osztályokat meg objektumokat létrehoznod.
-
Aethelstone
addikt
válasz
fordfairlane #9068 üzenetére
Pffff. Ezt remélem, nem komolyan írtad. A programozás, sőt manapság alkalmazás fejlesztés nem csupán for/while/if dolgokból áll. Adatbázis kezelés, hálózatok, szálak...hogy pár apróságot említsek. Paradigmák, tervezési minták és társai. Hogy a matematikai és egyéb elméleti alapokról ne is beszéljek....adatbázis elmélet, számítógép és távközlési alapok, protokollok, digitális technika, boole algebra, mátrixok, numerikus módszerek, számítástudományi alapok...hogy csak kapásból említsek pár dolgot. Ezt nem fogja a kolléga java tutoriálból kimazsolázni.
-
fordfairlane
veterán
válasz
bucsupeti #9067 üzenetére
Ezeket párhuzamosan is lehet tanulni, ez nem előfeltétel, Javanál sem (elképzelhető, hogy vannak olyan nyelvek, amelyeknél másképp működik a dolog). Sőt, nekem meg az a személyes meggyőződésem, hogy konkrét programozási nyelv, és példák nélkül ezeket az absztrakt fogalmakat önmagukban tanulni totális időpocsékolás.
-
bucsupeti
senior tag
válasz
fordfairlane #9066 üzenetére
Kb ezek:
szekvencia, szelekció, iteráció
alapvető adattípusok és struktúrák
összetett adatszerkezetek
programozási tételek, algoritmusok
objektum-orientált paradigmaValamint személyes meggyőződésem hogy ezzel párhuzamosan a számítógép architektúrákat és operációs rendszereket is megfelelő ütemben, összhangban kell tanulni (és oprendszer tantárgy alatt nem a windows grafikus felületének kezelésére gondolok.)
-
fordfairlane
veterán
válasz
Aethelstone #9065 üzenetére
De mit tanítanak több féléven keresztül, ami nélkül nem lehet elkezdeni egy konkrét programnyelvet?
-
Aethelstone
addikt
Jesszus. Szerintetek azért tanítják több félévben, több tantárgy keretei között?
-
madmike
őstag
2:1 arányban győzött a meg lehet tanulni tábor
El is kezdtem olvasni. Egyelőre elég szájbarágósnak tűnik. Remélem ez így is marad. -
Taoharcos
aktív tag
válasz
fordfairlane #9060 üzenetére
Szerintem igen.
-
Aethelstone
addikt
válasz
fordfairlane #9060 üzenetére
Hát nem túl valószínű.
-
fordfairlane
veterán
válasz
madmike #9057 üzenetére
De mégis mik azok a programozói alapok, amik egy bevezető szintű könyvhöz feltétlenül szükségesek? Illetve, másképp megfogalmazva: Nem lehetséges-e, hogy ezeket az alapokat menet közben is el lehet sajátítani, miközben olvasod ezeket a könyveket, és csinálod a példákat?
-
madmike
őstag
Sziasztok!
Teljesen kezdőként szeretnék megtanulni java-ban programozni. Melyik könyvből érdemes elkezdeni?
Az Angster Erzsébet féle Objektumorienttált tervezés és programozást és a Tanuljuk Meg a Java Programozási Nyelvet 24 Óra Alatt könyveket ajánlgatják több helyen.
Ezek a mai napig megállják a helyüket? -
DopeBob
addikt
Akit esetleg érdekel, udemy-n minden képzés 10€ még pár napig.
-
#68216320
törölt tag
Mi lehet az oka annak, hogy a java.exe nem találja meg a lefordított .class állományt, holott a path rendben van?
[kép] -
axioma
veterán
válasz
csabi0911 #9048 üzenetére
Ha eleg a butaszamologep mod (ld. windows, argh), ami NEM ismeri a precedenciat, akkor egyszeruen csinald ciklusban, szam, operator, szam, operator, es engedelyezd az = jelet az operatorok koze (akkor lepsz ki a ciklusbol amikor azt kapod). Minden egyes lepesben egy temp valtozodon alkalmazod az muveletet az uj szammal (elsore ta'rold be, hogy temp 0 es muvelet + volt az indulas elott). En ki is iratnam a reszeredmenyeket (a szam bekerese utan).
-
disy68
aktív tag
válasz
csabi0911 #9048 üzenetére
Pölö a lengyel forma használatával. Avagy a fordított lengyel forma használatával.
-
csabi0911
csendes újonc
Sziasztok!
Írtam javában gyakorlásképp egy egyszerű számológép programot. Viszont csak úgy sikerült megoldanom, hogy egyszerre csak 2 számmal tud operálni. Kérdésem az lenne, hogy lehet megoldani, hogy egyszerre 3 vagy több számmal is tudjon számolni? Pl. egyszerre 3 szám szorzása, összeadása...
Forráskód:
package calculator;
import java.util.Scanner;
public class Calculator {public static void main(String[] args) {
Scanner calc = new Scanner(System.in);
System.out.println("Enter first number");
double n1 = calc.nextInt();
System.out.println("Enter second number");
double n2 = calc.nextInt();System.out.println("Enter operation (* ; / ; + ; - ; ^ ; root");
Scanner op = new Scanner(System.in);
String operation = op.next();switch (operation) {
case "+": System.out.println("Result: " +(n1+n2));
break;
case "-": System.out.println("Result: " + (n1-n2));
break;
case "/": System.out.println("Result: "+ (n1/n2));
break;
case "*": System.out.println("result: "+ (n1*n2));
break;
case "^": System.out.println("result: " +(Math.pow(n1, n2)));
break;
case "root": System.out.println("result: "+ (Math.pow(n1, 1 / n2)));}
}}
-
disy68
aktív tag
válasz
Aethelstone #9046 üzenetére
Természetesen a fejlesztő a devops-os a maga birodalmában
így neki illik tisztában lennie ezekkel.
-
-
disy68
aktív tag
válasz
Cathfaern #9042 üzenetére
Persze, mindenképpen. Nem tudom ki illetékes itt ez ügyben.
(#9043) emvy, (#9044) Aethelstone
A környezeti változók állítgatása nem éppen átlagfelhasználói tevékenység, hanem inkább üzemeltetési. Aki ilyen műveleteket akar csinálni, az szerintem nem árt, ha tisztában van a hogyanokkal, különben hamar pórul járhat. Ilyen szinten meg ne akarjon egy telepítő megcsinálni mindent. Vonatkozva jdk-ra és szerintem. -
Cathfaern
nagyúr
Nem kéne ezt belerakni topic összefoglalóba?
Esetleg mellé tenni pár linket könyvekre / weboldalakra "hogy álljunk neki java-zni" címmel, illetve néhány IDE ajánlás, esetleg felsorolni pár manapság java téren népszerű technológiát (ideértve frameworkot, verziókezelőt, stb.), aminek legalább a nevét célszerű ismerni. Nagyjából úgyis ezek a kérdések szoktak felmerülni, ha nem valami konkrét kérdés van.
-
disy68
aktív tag
Azt nem tudom mi az oka, hogy nem rakják bele a path beállítást a jdk telepítőbe, de az lenne a tippem, hogy azért, mert fölösleges. Egy átlag felhasználónak nincs rá szüksége, egy fejlesztő meg úgy alakítja a saját környezetét, ahogy neki tetszik.
A java_home környezeti változó beállítása amúgy is egy kihagyható lépés, azt azért szokás beállítani, hogy ha frissíti az ember a jdk-t, ne kelljen a Path-ben bogarászni, hanem csak a környezeti változót kelljen átírni. IDE-kben, egyéb helyeken is lehet magára a java_home-ra referálni általában, így könnyebben karbantartható.
-
-
eliterob
tag
Sajnos nem tudom már szerkeszteni a hozzászólást de rájöttem a megoldásra.
A path elejét kell szerkeszteni nem a végét.
Az elejére beirtam és működik. Lehet hogy csak nálam de siker.
Van boldogság
Köszönöm a segitséget mindenkinek alkalomadtán majd okvetlenkedek ujra. -
eliterob
tag
válasz
Aethelstone #9031 üzenetére
Ez mit jelent? Én még kezdő vagyok nézd el kérlek...
-
eliterob
tag
válasz
fordfairlane #9028 üzenetére
ellenőriztem a patch ez az utvonal nálam is annyi különbség hogy 111 a vége nem 112...
ellenben start menü -- keresés --- javac exe nincs a gépemen csak sima java.. ez jelent valamit?illetve a java könyvtáron belül nem csak jdk hanem jre is van értelmeszerűen a patchbe a jdk cime van megadva..
-
fordfairlane
veterán
válasz
eliterob #9024 üzenetére
A javac.exe és a java.exe ugyanabban a könyvtárban található. X64 Windowsnál és a legfrissebb JDK-nál alapesetben ez a C:\Program Files\Java\jdk1.8.0_112\bin könyvtár. Ha ezt a könyvtárat nem adod hozzá a PATH-hoz, akkor csak úgy tudod használni a javac és java parancsokat, ha helyesen hivatkozol az elérési útra. Tehát ha a rendszer nem találja a javac-t, akkor nem jól adtad meg a path-ban, vagy egyáltalán nem adtad meg az említett könyvtárat.
-
eliterob
tag
válasz
Aethelstone #9025 üzenetére
Szerkesztettem az előző hozzászólásom
De ha kell még valami infó mondjátok -
eliterob
tag
igen jdk telepités megvolt környezeti változokat átirtam ez idáig ok
java parancs és a java version parancs futása is zajlik
és itt a vége a dolgoknak ezért nem értem magát a programot nem futtatja
a javac parancsot nem érti: a rendszer a megadott parancsot nem ismeri fel se külső se belső rendszerként se futtatható programként.. ezt dobja... -
disy68
aktív tag
válasz
eliterob #9021 üzenetére
Mivel nem írod, hogy pontosan mivel is próbálkozol, a lépések nagyvonalakban:
- JDK telepít
- környezeti változónak beállítod a telepítés helyét:
- pl. JAVA_HOME: C:\Program Files\Java\jdk1.8.0_73
- felveszed a Path környezeti változóhoz a binárisokat:
- pl. %JAVA_HOME%\binProgram:
package cli;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello dude");
}
}Parancssorban megnézed jó-e a java beállítás:
- java -version
> java version "1.8.0_101"
> Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)Majd compile:
- javac cli\Hello.javaÉs végül a futtatás:
- java cli\Hello
> Hello dude -
eliterob
tag
Üdv! Remélem tud valaki segiteni.
A gondom hogy most kezdtem a net segitségvel tanulni a java programozást de már az elején leragadtam.
Nem tudom a parancsorban leforditani a programot igy elinditani se. Mi lehet a gond?
A program pár sor a legyegyszerűbb lévén kezdő vagyok. A java forditó is elvileg működik de semmi pénzért nem csinál nekem class kiterjesztést hogy el tudjam inditani. Nagyon bosszantó mert papiron mindennek kéne működni de több infot már nem találtam a netem hogy mi lehet a gond.
Ötlet? -
#74220800
törölt tag
válasz
Aethelstone #9012 üzenetére
Na várj ez így nekem kevés.
List-et még nem tanultuk, anélkül kéne abszolválni. -
#74220800
törölt tag
Hi!
Segítségeteket szeretnem kerni. Ismét egy rookie feladattal fárasztanálak benneteket
. Osztálytömb lenne a téma, kicsit belezavarodtam.
A lényeg röviden. Egy külön osztályban le kellett kepézni az éttermeket nevük, és kapacitásuk (tömbben asztalonként) szerint. Továbbá egy metódussal összesíteni az elérhető helyek számat, valamint egy másikkal stringbe rakni az eredményt.Nálam eddig ez így nézne ki:
public class Restaurant{
private int[] a;
private String e;
public Restaurant (String name, int[] seats){
e = name;
a = seats;
}
public int getTotalSeats (){
int x = 0;
for (int i = 0, i < a.length, i++){
x = x + a[i];
}
return x;
}
public String toString (){
String text;
text = e + ": " + getTotalSeats() + " Places";
return text;
}
}A követekéző lepésben a nyolcas sort metódusával összkapacitás alapján, csökkenő sorrendbe kéne őket rendezni.
Ha minden passzolna, akkor a feladat által megadott főmetódus kidobna az eredményt.
public class nyolcas{
public static void sort (Restaurant[] restaurants){
int max, w;
for (int i = 0; i < restaurants.length - 1; i++){
max = i;
for (int j = i+1; j < restaurants.length; j++){
if (restaurant[j].getTotalSeats() > restaurant[max].getTotalSeats())
max = j;
}
w = restaurants[max];
restaurants[max] = restaurants[i];
restaurants[i]= w;
}
}
public static void main(String[] args){
Restaurant r1 = new Restaurant ("A", new int[] {4, 10, 5, 6, 4});
Restaurant[] restaurants =
{ r1,
new Restaurant ("B", new int[] {5, 3, 1}),
new Restaurant ("C", new int[] {6, 4, 2}),
new Restaurant ("D", new int[] {7, 5, 3})
};
sort (restaurants);
for (Restaurant r: restaurants)
System.out.println (r);
}
}Sajnos nem eszi meg, pls help.
-
válasz
Aethelstone #9008 üzenetére
Nem JBoss. Még a GC tuning az szokás, persze, de a G1 sokkal haklisabb, mint a CMS meg a többi volt.
-
Amikor az ember tanulja a Java-t, akkor csomo szo esik a GC-rol, de bevallom oszinten, most tortent meg velem eloszor, hogy GC tuninggal igazan durva teljesitmenykulonbseget (~3x-os gyorsulas) sikerult elerni.
A CMS azert sokkal toleransabb allatfaj, mint a G1.
-
Aethelstone
addikt
Ebben igazad van elvileg....viszont ha az embernek mákja van és nincsenek kurva nagy üresjáratok a munkájában, akkor nagyon nehéz kitekinteni, mivel a projektek jó eséllyel ugyanarra a kaptafára készülnek, nagyon ritkán adódik, hogy valami új technológiát, (svn--->git?
) vezetnek be. Ergó, pár év után simán el tudja magát ásni az ember, ha nem megy új helyre melózni.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Revolut
- Vezetékes FEJhallgatók
- Honor 200 - kétszázért pont jó lenne
- Hálózati / IP kamera
- Víz- gáz- és fűtésszerelés
- Kompakt vízhűtés
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Külföldi rendelések: boltok, fizetés, postázás
- Huawei Watch GT 5 Pro - egészség + stílus
- Gyúrósok ide!
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- Apple iPhone X, 256GB, Kártyafüggetlen
- iKing.Hu - Motorola Edge 50 Ultra - Nordic Wood - Használt, karcmentes
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged