- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Zsoxx
őstag
-
disy68
aktív tag
-
mobal
nagyúr
-
floatr
veterán
-
sztanozs
veterán
Ultimate Edition: professional and fully-featured commercial IDE provided by JetBrains. The Ultimate Edition is built on top of the Community Edition with many extra features for web and enterprise development. You can download IntelliJ IDEA Ultimate from http://www.jetbrains.com/idea. You can evaluate it for free for 30 days, purchase a license, or get a free license if you're a contributor to an established open-source project.
-
E.Kaufmann
veterán
-
Szmeby
tag
-
Aethelstone
addikt
-
bambano
titán
-
Aethelstone
addikt
-
Aethelstone
addikt
-
Zsoxx
őstag
-
Zahze
csendes tag
-
Atapi
senior tag
-
sztanozs
veterán
Úgy, hogy az
fis.read(buffer)visszaadja, hogy ténylegesen mennyit tudott olvasni (nem csak -1 et, ha nincs már adat).
Így, ehelyett:while (fis.read(buffer) > 0) {
dos.write(buffer);
System.out.println("ír");
}Ez kell:
int count;
while ((count = fis.read(buffer)) > 0)
{
dos.write(buffer, 0, count); //*buffer*-ből a *0* elemtől elküld *count* számú elemet
System.out.println("ír");
}Ezzel az utolsó (maradvány részt) is helyes mérettel küldi át.
-
sztanozs
veterán
-
floatr
veterán
-
Drizzt
nagyúr
-
Drizzt
nagyúr
Még szebb éenne amúgy, ha try with resources-t haszbálnál. Ezt olyan osztályokra lehet alkalmazni, amik implementálják az AutoCloseable interface-t. Ilyenkor a try blokk végé a try után közvetlenül zárójelbe írt példányok close-a implicit meg lesz hívva.
Tehát valahogy így nézni ki:
try(PrintWriter kuldes = new PrintWriter(beerkezoKliens.getOutputStream(), true);) {
for (int i = 0; i < szamCimek.size(); i++) {
kuldes.println(szamCimek.get(i));
}
} catch (IOException ex) {
System.out.println("Nem kuldott semmit");
}Persze lehetne még csomó mindent csinálni. Kinn is try-with-resourcest használni, többszálúság, etc.
-
Drizzt
nagyúr
-
Zahze
csendes tag
A programod max akkor nem megy tovább ha a szerver nem állítja le a küldést.
Ha a szervered tényleg csak annyit küld mint amennyit belinkeltél (for ciklus), akkor a ciklus kilépése után null-t kéne kliens oldalról olvasnod és ki kéne lépni.
Nincs még valami a háttérbe ?
Mit ír ki a kliens a kimenetre amikor vége a szerver oldalon a for ciklusnak ? ( null-t ? üres karaktersort ? ) -
Atapi
senior tag
én nem látom indokoltnak do-while használatát (akkor használod, ha valamit legalább egyszer szeretnél megcsinálni, de bizonyos feltétel esetén folytatod is. de te miért akarnál egyáltalán belépni a ciklusba, ha a beolvasásod null?).
emellett a jelenlegi struktúrában a ciklus elején beolvasol, ami ha null érték, azt még megpróbálod feldolgozni, amit szerintem nem szeretnél (ez okozhatja is az újabb gondodat), de ebben tévedhetek. -
Atapi
senior tag
-
Atapi
senior tag
-
mobal
nagyúr
-
Zahze
csendes tag
-
Vicoo
senior tag
-
bambano
titán
-
Taoharcos
aktív tag
-
M_AND_Ms
veterán
Ott kezdeném, ahol a Google kereső is ajánlja : Client Libraries for Google Maps Web Services, illetve ahol a hasonló kérdéseken rágódók felteszik a kérdéseiket stackoverflow.com: How use Java with google maps api?
-
Gyuri16
senior tag
-
Lortech
addikt
Az alapokat azért nem ártana elsajátítani mielőtt nekiállsz egy hello worldnél komolyabb feladatnak. Az értékadás pl. elég alap.

A kliensek.get(i) egy függvényhívás. Függvényhívás mint bal oldali kifejezés azt jelentené, hogy a hívás visszatérési értékének akarsz értéket adni. Ennek nincs értelme nyilván javában. Értéket adni változónak lehet. Egy lista adott elemét a set metódussal tudod lecserélni.
szerk: mindegy, már itt marad. -
smallmer
őstag
-
Aethelstone
addikt
-
Sirpi
senior tag
A kiíró for ciklust is lehetne szebben írni, pl. nézhetne ki így az inicializálás utáni rész:
for (Domino domino : myList) {
pw.println(domino.getX());
pw.println(domino.getY());
System.out.println("elküldve");
}
Iterator<Domino> it = myList.iterator();
while (it.hasNext()) {
it.remove();
}Vagy az iterátoros rész helyett ennyi is elég lenne, ha csak a funkcionalitásra megyünk:
myList.clear(); -
Aethelstone
addikt
-
Lortech
addikt
A lista nem tömb, ha a listából törölsz egy elemet, akkor csökken a lista hossza.
Tehát az utolsó for ciklusodban, ha jól látom i=4-nél már csak 3 elemed lesz a listában, és nem tudsz megcímezni a get(4) hívással 4-es indexű elemet. Ha minden elemet törölni akarsz, akkor MyList.clear(); Ha egyesével akarod, akkor mindig az elsőt a MyList.remove(0) hívással, vagy inkább iterator.remove. -
disy68
aktív tag
-
mobal
nagyúr
-
skoda12
aktív tag
Valószínűleg a kliens befejezi a futást, mire a szerver olvasná, hogy mit küldött. Tehát a szerveroldalon valami ilyesmi történhet az első futáskor
Socket s = server.accept();
// kliens csatlakozott, küldött valamit, leállt, ezért a socket lezárult
// ...
Scanner sc = new Scanner(s.getInputStream());
name = sc.nextLine();
// lezárt socketről olvasnál valamitMásodik futás azért lehet sikeres, mert a jvm addigra már "bemelegedett" (osztályok betöltődtek, cuccok a code cacheben, stb), így gyorsabb és azelőtt ér el az olvasásig, hogy a kliens lezárná a socketet.
De ezt csak így ránézésre mondom. Ki kellene íratnod a stacktracet (e.printStackTrace()) és akkor látni lehetne, hogy mi a pontos problémája. -
szervizeszso
csendes tag
-
Taoharcos
aktív tag
Bevallom én is gyenge vagyok angolból, de TÉNY csak angolul szabad! Akkor ki kell szótárazni/google.translate-zni. Szokni kell, és közben ráadásul az ember nem csak a programozást tanulja, hanem az angolt is. Ráadásul a használható tutorialok, jó oldalak angolul vannak.
A Clean Code elvek miatt is szükség van a jól kifejező angol nevek ismeretére. -
proci985
MODERÁTOR
nem párhuzamosan futnak a szálaim, mert a run metódusom törzse szinkronizált blokkban van
igen, ez az amit mondtam korabban.akkor szerintem most nyisd ki az eloadast / konyvet es nezd vegig a potencialis szinkronizacios mechanizmusokat.
Javaban van egy csomo beepitett megoldas a problemara, pl explicit mutual exclusion, lock, monitor. ha az egyenleg static es eleg ha egyszerre egy thread tartja a resourcet akkor van keyword szintu megoldas is.
de tenyleg nezd meg az elmeleti hatteret mert anelkul nem fogod megerteni.
Gyuri16: gondolom elso beadas a targybol es nem akarjak komplikalni OOval a helyzetet.
-
Gyuri16
senior tag
hat akkor legyen static.. szabad tudni hol tanitjak ezt? (akar privatban is)
de akkor ne konstruktorban allitsd be az erteket, hanem meg az elott, hogy letrehoznad az elso peldanyt.masik kerdesre: synchronized blokkot csak oda tedd ahol hozzafersz a valtozohoz, ne az egesz run metodusra
-
proci985
MODERÁTOR
-
Gyuri16
senior tag
static valtozokat csak indokolt esetben illik hasznalni (ez nem az).
helyedben letrehoznek egy Egyenleg osztalyt, amibol a program elejen letrehoznek egy peldanyt, amit aztan konstruktorban atadnam a Beadando objektumoknak. az egesz szinkronizacios moka pedig ebben az Egyenleg osztalyban lehetne. Termeszetesen ez csak egy lehetoseg, jobb lenne, ha magad talalnad ki az alapjan amit tanitottak.
magyar valtozonevekkel szerintem nincs semmi gond, amig nem probalsz ekezeteket beletenni.
-
Gyuri16
senior tag
igen.
az elso valaszomban is irtam, hogy most minden ugyfelnek/szalnak sajat egyenlege van. a feladat lenyege, hogy egy valtozohoz ferjen hozza az osszes szal es biztositsd, hogy korrekt modon irjak/olvassak a tartalmat. probald meg parszor lefuttatni a programod, es figyeld az egyenleg valtozasat: lesznek benne ugrasok.megoldani tobbfelekepp lehet, ugyhogy ajanlom nezd at, hogyan csinaltatok hasonlot - egy valtozohoz hozzaferni tobb szalbol.
mod: a program vege kiiratast a main fuggvenybe tedd ne a szalakba
-
Gyuri16
senior tag
ugy jo.
ez helyett:
if(rand_szam2 > i_kezdet ){
i_kezdet-=i_kezdet;
}else{
i_kezdet-=rand_szam2;
System.out.println("kivesz: " + rand_szam2);
System.out.println("Új egyenleg: "+ i_kezdet);
}inkabb igy:
if(rand_szam2 > i_kezdet ){
i_kezdet-=i_kezdet;
}else{
i_kezdet-=rand_szam2;
}
System.out.println("kivesz: " + rand_szam2);
System.out.println("Új egyenleg: "+ i_kezdet); -
Gyuri16
senior tag
el kell menteni a letrejovo objektumot egy valtozoba. Ha csak egy objektumot hoznal letre akkor igy nezne ki a main fuggvenyed vege:
Beadando beadando = new Beadando(kezdeti_egyenleg);
beadando.start();
beadando.join();neked ugyanezt kell megcsinalnod, csak ciklusban. Letrejovo objektumok referenciait nem egy sima valtozoban fogod tarolni, hanem egy listaban. Tehat az elso ciklusban letrehozod az objektumokat, eltarolod egy listaban es meghivod a start() fuggvenyt. Miutan mindet elinditottad egy masik ciklusban vegigmesz a listan es mindegyikre meghivod a join() fuggvenyt.
-
Gyuri16
senior tag
itt a hiba:
for (int i=1; i<=felhasznalok_szama; i++) {
new Beadando(kezdeti_egyenleg).start();
}
for (int i=1; i<=felhasznalok_szama; i++) {
new Beadando(kezdeti_egyenleg).join();
}a masodik ciklusban az elsoben letrehozott beadando objektumokon kellene a join() fuggvenyt meghivni. Igy letrehoz egy uj objektumot, es azon var.
Azon kivul van meg par problema a programmal:
minden szalnak kolon egyenlege van, nem ugyanahhoz a valtozohoz fernek hozza
ez nem tul szep es nem is effektiv: synchronized (Szalak.class) -
emvy
félisten
-
PumpkinSeed
addikt
Gondolom valami ilyesmire gondolsz. Az első osztályban megadod a pontokat, majd a második osztályban van egy Pont adattípusú tömböd amiben tárolod a pontokat. A Pontok-ban van egy konstruktor ami megadja a tömböt, meg egy hozzáad metódus.
A Pont adattípus annyit takar, hogy példányosított pontokat lehet neki adni. pl.:
Pont p1 = new Pont(1,2);
Pontok pontok = new Pontok();
pontok.pontHozzaAd(p1); -
bucsupeti
senior tag
-
Ursache
senior tag
-
axioma
veterán
En ebbol azt bogoztam ki, hogy
- lesznek valahol keletkezo Hely tipusu objektumaid
- lesz egy koord.-rendszernek megfelelo 2D tombod
es ebbol szeretnel olyat, hogy:
- minden pontra az i,j-vel letrehozott pont keruljon a tomb[i][j]-be
Ekkor erzesem szerint neked a ket getter hianyzik: getX() es getY() a Hely objektumnak.Vagyis a tokures tombbe az egyikHely nevut igy illeszted be: (szerk. termeszetesen elotte ellenorizve, hogy belefer-e)
tomb[egyikHely.getX()][egyikHely.getY()]=egyikHelyHa ez se az, amit gondoltal, akkor passzolok...
-
bucsupeti
senior tag
-
tboy93
nagyúr
-
tboy93
nagyúr
-
floatr
veterán
Ha egyébként tényleg érdekel az ékezethelyes rendezés, akkor nézz be ide
-
Superhun
addikt
-
modder
aktív tag
a throws kulcsszót (E/3-ban) metódus szignatúrába írjuk az argumentumlista után.
void doSuchThing(int arg0) throws BusinessException {
...
}Javában az Exception osztályból származtatott kivételek checked exceptionök. Ez azt jelenti, hogy ha egy metódus ilyen exceptiont dob, akkor meg kell jeleníteni a metódus szignatúrában a fenti módon, különben fordítási hiba lép fel. Ez elvileg arra jó, hogy a programozó felkészülhet arra, hogy milyen kivételeket generálhat egy metódus, illetve köteles is azt lekezelni, mert ha nem kapod el, vagy dobod tovább, akkor szintén fordítási hiba.
Hasznossága vitatott, általában nem használják jól
[ Módosította: Qru ] -
M_AND_Ms
veterán
Vagy egy már létező (a catch ágban elkapott) Exception-t dobsz tovább, vagy egy teljesen újat hozol létre és azt dobod vele.
Pl.:....
catch (Exception e) {
//Valamit csinál hiba esetén
DbHandler.transaction(DbHandler.TRANSACTION_OPERATION.ROLLBACK);
//és továbbdobja
throw e;
}if (result == null) {
//Létrehoz egy új hibát és azt dobja
throw new Exception("Nem található a rekord.");
} -
Karma
félisten
-
fatal`
titán
-
sztanozs
veterán
Végül is megoldható így is... Csak létre kell hoznod a csapatokat, végigzongorázni rajtuk és kiszámítani a csapatra a védekező és támadóértékeket, majd a csapatokat össze kell hasonlítani. Erre esetleg létre lehet hozni meccs osztályt is és így tovább.
Bajnokság -> Meccsek (List<Meccs>)
Meccs -> Csapatok (Csapat1, Csapat2)
Csapat -> Játékosok (List<Jatekos>) -
sztanozs
veterán
-
sztanozs
veterán
Írd le először ide, hogyan folyik le egy meccs egy erősen leegyszerűsített modellben (3 lépésben).
Majd azon belül írd le, hogy melyik részben történik a gólszerzés, és annak mi a menete (mondjuk ezt is 3 lépésben). Ha ez megvan, abból már tudok tovább magyarázni. Csak próbálj meg te elgondolkodni egy kicsit rajta
-
sztanozs
veterán
Szóval próbáld meg szavakkal (vagy folymatábrával) leírni a játék menetét (ciklikusság, idő telése, támadás menete) gyűjtsd ki az ehhez szükséges folymatokat, mérőszámokat és ezek alapján már fel tudod építeni az osztályodat. Olyan tulajdnságokkal, amit meg nem használsz fel a játék során (név, testtömeg, magasság, stb) nem kell törödni.
-
sztanozs
veterán
-
sztanozs
veterán
-
WonderCSabo
félisten
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Mini-ITX
- Mesterséges intelligencia topik
- Napelem
- Jövedelem
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung Galaxy A54 - türelemjáték
- Analóg fényképezés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Víz- gáz- és fűtésszerelés
- További aktív témák...
- Új, Gamer félgép - GIGABYTE B650 EAGLE AX + Ryzen 7 7800X3D + Corsair 2x16GB DDR5 6200MHz
- Bomba ár! HP EliteBook 850 G5 - i7-8GEN I 16GB I 512SSD I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! Fujitsu LifeBook E780 - i7-640M I 8GB I 160GB I Nvidia I 15,6" HD+ I Cam I W10 I Garancia!
- Bomba ár! HP EliteBook 2540P - i7-640LM I 4GB I 160GB I DVDRW I 12,1" WXGA I Cam I Garancia!
- Bomba Ár! HP 14-ck0xxx - i5-7GEN I 4GB I 256SSD I 14" FHD I Cam I W11 I Garancia!
- Dell Vostro 5410 14" i5-11320H 16GB 512GB 1 év garancia
- Lenovo ThinkPad L13 Gen 3 13,3" - i5 1235U, 16GB RAM, SSD, jó akku, magyar bill. - számla, 6 hó gar
- Dell Optiplex 3020 MT,i3-4130,8GB RAM,128GB SSD,WIN10
- Lenovo X1 Tablet Gen3 Intel i5 8350U Refurbished - Garancia
- Bontatlan! Playstation Portal 2 év garancia 2028.04.09-ig számlával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





