- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
Új hozzászólás Aktív témák
-
válasz
szervizeszso #8699 üzenetére
Én azt javaslom, dobd ide be több szem többet lát alapon!
-
válasz
szervizeszso #8697 üzenetére
Bővebben?
-
szervizeszso
csendes újonc
Üdv!
Tudna valaki segíteni egy kisebb Java alkalmazásban?
Előre is köszönöm a segítséget.
-
smallmer
őstag
Srácok van itt valaki aki facebookon,skypeon, esetleg bármilyen chat programon tudna nekem segíteni ?
elvesztem és elég hosszú lenne a dolog
-
MasterMark
titán
válasz
MasterMark #8694 üzenetére
Oké közben rájöttem:
contents[i] = new String[((this.data).get(i)).length];
-
MasterMark
titán
Köszi.
Olyat hogy lehet, hogy később mondom meg hogy mekkora legyen a belső tömb?
private final ArrayList<String[]> data;
String[][] contents = new String[(this.data).size()][];És akkor később megy a for:
for (int i=0; i < (this.data).size(); i++){
[...]
}És ezen belül akarnám megmondani, hogy akkor mekkora legyen az adott sor.
Lehet ilyet?
-
Aethelstone
addikt
válasz
MasterMark #8691 üzenetére
Jelenthet List<List<String>> -et is
Esetleg List<String[]> -et is.
-
M_AND_Ms
veterán
válasz
MasterMark #8691 üzenetére
Igen. A tömb mérete a létrehozáskor fix
-
MasterMark
titán
válasz
M_AND_Ms #8690 üzenetére
Ja nem úgy értem, elméletben tudom mi az. A kérdés hogy java-ban is olyan ez mint C++ -ban, hogy ezt előre fixen meg kell mondani mekkora?
Csak mert inkább használnék ArrayList-et de akkor meg értelmetlen a feladat szövege, vagy ezt is jelentheti a kétdimenziós String tömb?
-
M_AND_Ms
veterán
válasz
MasterMark #8689 üzenetére
Ez egy olyan tömb, amibe String tömböket raksz. Tehát a tömb minden eleme egy String[]
-
MasterMark
titán
A kétdimenziós String tömb mit jelent?
String[][]
? -
proci985
MODERÁTOR
válasz
ToMmY_hun #8687 üzenetére
Azert vannak ennek elonyei. Jelenleg egy projekten Java8at hasznalok egy feladatra, viszont kulso processkent C programokat hivogatok. A C programok egy resze felig obskurus es a 80as evekben irtak oket. Hat igy a 100soros C kodnal eroteljesen anyazok, hogy:
- mit ir ki
- mi a feneert van hardcodeolva pl fix 13ra az osszes forloop?Termeszetesen hosszra vannak optimizalva szoval egy 100soros programhoz kepest eleg sok mindent csinalnak. Dokumentacio meg izebize.
Ugyanugy, en meg emlekszem a Turbo Pascalra meg a Borland Cre mint fejlesztoi kornyezetekre, valoszinuleg sikitofraszt kapnek ha az ido nagyreszeben abban kene dolgoznom. Meg internet nelkul. De minimum erezhetoen csokkenne a produktivitasom.
-
ToMmY_hun
senior tag
Ez a szakma arról szól, hogy folyamatosan képezd magad. Az a tudás, ami ma friss és elfogadott, pár év múlva már elavult lesz és senkinek sem kell. Az, hogy X éve mivel foglalkoztál, szerintem már nem annyira fontos. Ami viszonz igen, az a hajlandóság a tanulásra és a nyitottság az új dolgok iránt. Nekünk, az Y generációnak ebben nagy előnyünk van, ugyanis bele születtünk ebbe a felgyorsult világba, ahol el vagyunk halmozva információval és ez nekünk természetes. Bele se merek gondolni, hogy mennyire idegen lehet egy más körülmények között felnövő egyénnek. Könnyűnek biztosan nem nevezhető.
-
válasz
ToMmY_hun #8683 üzenetére
Ez inkább az angol nyelv ismeret melletti érvelés. Persze elfogadom hogy nemzetközi csapatban/tulajdonossal követelmény. Nem hiszem,hogy 46 évesen autodidaktán valaha is bekerülök egy ilyen csapatba.
Annó a ZX81-en nem voltak olyan úri huncutságok,hogy a tömböt vektornak hívják, és az objektumokról se hallottunk. Most csak kíváncsi vagyok tudnék-e magamnak objektumorientált programot írni, a magam szórakoztatására. -
ToMmY_hun
senior tag
Néhány szakmai érv az angol nevek mellett:
- tutorialok, könyvek, cikkek szinte mind angol nyelven íródnak
- szinte minden SW-hez kapcsolódó dokumentáció angol (framework-ök, API-k, könyvtárak, stb.)
- multinacionális környezetben való kódolást tesz lehetővé
- kifejezőbbek, mint a magyar fordításuk, illetve sok szakmai kifejezésnek nincsen egységesen elfogadott magyar fordítása
- nagyobb fejlesztőeszközök mindegyike angolt használ (IDE, debugger, profiler, stb)
- angol kifejezések általában rövidebbek, lényegre törőekA végére hagytam egy nem túl szakmai, de szintén fontos érvet:
- új kifejezéseket tanulhat az ember, bővítheti a szókincsét (angol nélkül esélytelen programozóként elhelyezkedni komolyabb cégnél)
-
disy68
aktív tag
Ha az ember még nincs is olyan helyzetben, hogy mással együtt kell dolgoznia egy kódbázison, de komolyan gondolja a programozást, akkor mindenképpen gondolni kell a jövőre. Jobb megszokni az angol kifejezések használatát még az elején, mintsem később kelljen egy rossz berögződésen korrigálni.
-
proci985
MODERÁTOR
ha veletlenul kulfoldieknek kene eladni a kodbazist / felvasarlas van akkor lehet az egeszre refactort tolni. ha fel kell venni kulfoldi kollegat aki nem tud magyarul mert kell a kompetencia akkor megint baj van. ahol dolgozom jelenleg majdnem 50% a kulfoldiek aranya, meetingeken az angol gyakorlatilag de facto hivatalos nyelvve lepett elo, kaveszunet valtozo (helyi nyelvet jellemzoen a frissen atrekrutaltak meg nem tudjak).
plusz egy nyelven jellemzoen egyszerubb egyszerre gondolkodni, mint bekeverni meg egyet.
emellett jellemzoen referencek es forumok mind angolul vannak, tehat informaciokereses miatt is kritikus az angol.
-
-
Taoharcos
aktív tag
válasz
smallmer #8670 üzenetére
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. -
smallmer
őstag
úgy van szerintem ahogy proci985 írta, de nem tudom, majd a következő hetekben úgyis jönni fogok kérdésekkel és akkor látjátok majd
-
proci985
MODERÁTOR
válasz
smallmer #8673 üzenetére
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
válasz
smallmer #8673 üzenetére
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
-
smallmer
őstag
azokat az instrukciókat kaptam, hogy nem párhuzamosan futnak a szálaim, mert a run metódusom törzse szinkronizált blokkban van, ehelyett azt a részt kellene szinkronizált blokkba tenni, ami módosítja az egyenleget.
illetve azt kaptam még, hogy legyen az egyenleg static.akkor csak elég a staticot beírni pluszba. a párhuzamosság megoldására tudtok adni valami ötletet?
-
proci985
MODERÁTOR
-
Gyuri16
senior tag
válasz
smallmer #8670 üzenetére
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.
-
proci985
MODERÁTOR
válasz
Gyuri16 #8662 üzenetére
minden szalnak kolon egyenlege van, nem ugyanahhoz a valtozohoz fernek hozza
ez nem tul szep es nem is effektiv: synchronized (Szalak.class)a tanár helyében én emiatt simán visszadobnám az egészet külön-külön is (nincs jelentősége a szinkronizációnak / a kritikus szakaszok védelme nem megfelelő), nem hogy a kettőt kombinálva. főleg javában, ahol van kismillió lehetőség szinkronizációra.
és akkor arról még nem beszéltünk, hogy miért használna bárki is valaha magyar változóneveket (bár ez mondjuk a feladat szövegétől függően még nem lesz explicit újrabeadás).
-
Gyuri16
senior tag
válasz
smallmer #8667 üzenetére
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
válasz
smallmer #8665 üzenetére
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); -
smallmer
őstag
válasz
Gyuri16 #8664 üzenetére
ArrayList<Beadando> felhasznalolista = new ArrayList<Beadando>();
for (int i=1; i<=felhasznalok_szama; i++) {
felhasznalolista.add(new Beadando(kezdeti_egyenleg));
}
for (int i = 0; i < felhasznalolista.size(); i++) {
felhasznalolista.get(i).start();
}
for (int i = 0; i < felhasznalolista.size(); i++) {
felhasznalolista.get(i).join();
}így?
még így is össze-vissza fut le
-
Gyuri16
senior tag
válasz
smallmer #8663 üzenetére
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
válasz
smallmer #8661 üzenetére
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) -
smallmer
őstag
Sziasztok,
múlt hét után ismét megjelenek egy kérdéssel. az alábbi a feladat:Hozz létre egy osztályt Bankszamla néven. Parancssori argumentumként várja a bankszámla kezdeti egyenlegét és a számla felhasználóinak számát.
Hozz létre minden felhasználónak egy külön szálat.
A következőt ismételd 5-ször:
- véletlenszerűen a felhasználó vegyen ki/rakjon be egy véletlenszerűen generált összeget a számlára
- várjon 1-3 másodpercet, majd kezdje újraMinden tranzakciónál írd ki a tranzakció típusát, az összeget, illetve az új egyenleget. Pl.: Kivesz, összeg: 533, uj egyenleg: 313
A számla egyenlege soha nem lehet kevesebb, mint 0 Ft. Ha valaki többet szeretne kivenni, mint a számlaegyenleg, akkor a számlán levő teljes összeget vegye ki, de csak annyit. Ha üres számláról szeretne kivenni egy összeget, akkor továbbra is 0 marad a számlaegyenleg. Ügyelj a konkurens hozzáférésből eredő problémák kiküszöbölésére!Várd meg, míg az összes szál lefut, majd írd ki a képernyőre a következő üzenetet: "A program befejeződött".
itt a kódom:
package beadando;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Szalak {
public static void main(String[] args) throws Exception {
int kezdeti_egyenleg = Integer.parseInt(args[0]);
int felhasznalok_szama = Integer.parseInt(args[1]);
//boolean kesz =false;
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();
}
}
}
class Beadando extends Thread {
Random rand = new Random();
private int i_kezdet;
//private boolean kesz;
public Beadando(int kezdeti_egyenleg) {
this.i_kezdet = kezdeti_egyenleg;
//this.kesz = kesz;
}
@Override
public void run() {
synchronized (Szalak.class) {
//int x = i_kezdet;
for(int j=1; j<=5;j++){
int rand_berakvagykivesz = rand.nextInt(2);
if(rand_berakvagykivesz == 0)
{
int rand_szam = rand.nextInt(200000);
i_kezdet+=rand_szam;
System.out.println("berak: " + rand_szam);
System.out.println("Új egyenleg: "+ i_kezdet);
}else if(rand_berakvagykivesz == 1){
int rand_szam2 = rand.nextInt(200000);
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);
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Beadando.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}a hiba, hogy ha mondjuk 2 lesz a felhasználók száma, akkor ugye 10 szer kellene berakni vagy kivenni, mert mindkét esetben a for ciklus a run-ban 5ször fut le, viszont nálam van hogy 6-szor , de lehet hogy 8-szor, tehát össze-vissza. esetleg valami ötlet?
-
1eske
tag
Köszönöm mindenkinek a segítséget, egyben válaszolnék:
Egy kis projektre kéne, JDBC-t használva így valóban nem kell túl bonyolult megoldás. Args.Length majd 2 külön SELECT-et írok meg és aszerint hívom meg a megfelelőt.
Mondjuk úgy kéne, hogy lehessen a metódust hívni 1 illetve 2 paraméterrel is, majd a metóduson belül meg az if feltétel eldöntené, hogy melyik SELECT fusson le.
Azt picit pazarlónak és csúnyának érzem, hogy készítek 2 tök egyforma metódust, ami csak a paraméterek számában tér el...
-
floatr
veterán
Ha a kérdés az, hogy metódusok közt változó mennyiségű argumentumot átadni hogyan lehet, akkor itt van a válasz [link]. Ha az a probléma, hogy hogyan változtatod az SQL-t, arra én query builder megoldásokat szoktam csinálni az aktuális framework szerinti eszközökkel. Lehet if-else ágakban összevagdosni a SQL stringet, lehet használni hibernate vagy JPA criteria API-t, van JOOQ vagy QueryDSL, ami szintén támogat feltételes buildelést bizonyos mértékig.
Ezek közül a legpöpecebb szerintem a JPA+Spring Data+QueryDSL kombináció, amit meg lehet támogatni igény szerinti SQL buildeléssel.Ha mindez csupán egy kis feladat, akkor javaslom a legegyszerűbb if-else + StringBuilder megoldást.
-
1eske
tag
Hogy lehet azt szépen megcsinálni, hogy attól függően, hogy a user egy vagy két paramétert ad meg futtatáskor a programnak, akkor egy függvényt 1 vagy 2 paraméterrel hívjon meg?
Az lenne a konkrét feladat, hogy egy SELECT lekérdezésben a WHERE-ben 1 vagy 2 paraméter lenne.
-
-
Szmeby
tag
Ha mindenáron le akarod szűkíteni a kört az alapvető dolgokra, Java esetén vedd például az OCA (Oracle Certified Associate) vizsga anyagát. Az Oracle oldalán is egészen jó tutorial van, és önszorgalomból még mélyebbre áshatsz a java elcseszett bugyraiban.
Apró kiegészítés, hogy ehhez azért programozni is tudni kell, tehát az OCA tananyag nem tartalmazza azokat az általános technikákat, hogy mi fán terem az iteráció, a szelekció, ahogy az alapvető algoritmusokat, adatszerkezeteket sem tárgyalja (rendezések, fák, stb).Nagyon alap dolgokat magyaráz, viszont a Java rengeteg irritálóan logikátlan működésére is rávilágít. Már ha igazán beleásod magad. Az OCP egy szinttel tovább lép, de igazából csak még több alap osztály működéséről regél. Véleményem szerint talán túl is tolja ezt, az IDÉk világában nagyon nem érdemes fejből vágni a StringBuilder összes metódusát. Mert minek. Ott a forrás, megnézem, fél másodperc, és ennyi.
De ha nagyon bele akarod ásni magad, hát kezdd a java.lang.* package osztályaival, aztán jöhet a java.util.*, java.util.concurrent.*, stbstb. De totál felesleges.A programozás reál tárgy, nem kell semmit beseggelni, mint a történészeknek. Az összefüggéseket kell ismerned. Nem az a lényeg, hogy fejből vágod, mennyi 4*5, hanem az, hogy ki tudod számolni. Vagy pl. nem kell ismerned, hogy az int -2147483648-tól 2147483647-ig tud számokat ábrázolni, hanem tudod, hogy a byte 8, a short 16, az int 32 biten tárolja az adatokat, amiben egyenlő arányban van negatív és pozitív, a nullát pozitívnak számítva. Kis matek és kijönnek a számok.
Nincs rajz. A szakmánk annyira gyorsan változik, hogy a rajz is folyamatosan változna, emberenként totál eltérő. Arról nem is beszélve, hogy az emberiség nagyon kis százaléka rendelkezik olyan memóriával, ami hiánytalanul visszaadna neked egy korrekt rajzot.
Akik ebből élnek, az általuk használt dolgokat már annyiszor guglizták ki, hogy megjegyezték. Ha idővel kevesebbet használják az adott dolgot, lassan elfelejtik, kikopik, megfeljebb újra rákeresnek, ha újra előjön. Ettől függetlenül nem hátrány, ha mesterien használod a keresőt, mert szükséged lesz rá. Ez így on-demand működik. Képtelenség mindent megtanulni. Az adott projekt dönti el, hogy mit kell használnod. Nekem például totál leépült a java.io tudásom, pedig rendkívül hasznos cuccok vannak benne... viszont évek óta a közelébe sem néztem. Elfelejtem, ennyi. Majd újra előjön, ha használnom kell. Ott a forrás, a javadoc, tutorialok, stackoverflow, google ...És igen, jó ha előre felkészülsz, hogy specializálódni fogsz, nem feltétlenül egy dologra, de fogsz. Mint mondtam, a világ összes ideje sem elég arra, hogy minden területen naprakész legyél.
Ha csak azt nézzük, hogy a youtubera másodpercenként több órányi anyag kerül fel, ugyanilyen rémisztő a helyzet az új programnyelvek, frameworkök, technológiák területén is. Teljesen felesleges megtanulni valamit, amit nem használsz, időt energiát és pénzt pazarolsz vele. Főleg, hogy az összes szinte ugyanaz más köntösben. Kitalálnak egy új nyelvet, ami egy másik hibáit hivatott javítani, cserébe viszont más hibákat hoz be. A hiba alatt inkább a kényelmetlen, körülményes használatot értem. Egyik nap trendi, megismered, megtanulod, másnap már egy másik nyelv a favorit. Unaloműzésnek tökéletes, arra, hogy szélesítsd a látókörödet, kiváló, találkozhatsz érdekes, hovatovább hasznos megoldásokkal, de pusztán azért, hogy majd egyszer talán lesz haszna és használni is fogod, elárulom: nem lesz.Majd a projekt eldönti, hogy mit lesz a jó választás. Adott problémához kell keresned megoldást, és nem a megoldásokat bemagolni. Egyik nap kiderül, hogy Scalaban mennyivel hatékonyabb megoldani xy-t, és lényegében dobhatod a kukába mindazt a java tudást, amit csak azért szedtél fel, mert hátha jó lesz valamire. Ez persze erős sarkítás, de a magolással töltött időt hasznosabban is eltölthetted volna.
Szóval ha megvannak a programozás alapok, akkor már csak egy megoldandó problémát kell keresned / csinálnod, majd arra prezentálni egy jó megoldást, alaposan körüljárva a témát, kisakkozva, hogy mi miért úgy van, ahogy. Meg hogy hogyan lehetne rajta még többet javítani, teszemazt lecserélve az ArrayListet LinkedListre, vajon mennyivel javul vagy romlik a performancia, stb. Bátran használd a keresőt, idővel majd úgyis megtanulod a gyakran használt dolgokat.
Aztán talán felébred benned az igény az igényes kód előállítására is, megismerkedsz a tervezési mintákkal, Bob bácsi clean code irányelveivel, úgy gondolom ezek sokkal időtállóbbak, mint egy 86-ik framework ismerete.
-
Cathfaern
nagyúr
Ahogy látom, félreérted, hogy miről szól a programozás
Én azt látom, hogy azt gondolod, hogy bemagolsz egy csomó parancsot, majd neki állsz 8 órában gépelni, és esetleg pár naponta utánanézel valami olyan dolognak amit még nem tudsz. Valójában ez pont fordított. A programozás nagyon kicsi része gépelés csak. Nagy része kutakodás, hogy hogyan lehet a feladatot a legjobban megoldani. Ez régen azt jelentette, hogy kicsaptál jó pár programozó könyvet magad köré, manapság pedig azt jelenti, hogy google google és google. Az időd egy jó részét ezzel töltöd, az időd egy másik részét az agyalással és próbálkozással / teszteléssel. Emellé nagyon keveset gépelsz, és főleg nagyon kevés monoton rutinből jövő dolgot csinálsz.
-
Nem magamnak. Csak kíváncsi vagyok létezik-e olyan rajz, ami kiindul a Java.System-ből, és kibontja végig mi minden tartozik hozzá.
+ Mi dönti el, hogy ezt most kell tudnom, vagy majd kiguglizom? Pl. akik ebből élnek, azok mesteri szinten használják a keresőt, vagy specializálódnak mint az orvosok? -
Cathfaern
nagyúr
Én megtanultam már pár nyelvet kvázi autodidakta módon, azt mindig úgy csináltam, hogy ha valamit nem tudtam, rákerestem a doksiban. Amit sokat használtam, az megragadt fejben, amit annyira nem sokat, az nem ragadt meg
(illetve nyilván ha rémlett, hogy nem rég használtam, akkor nem doksiban kerestem, hanem a kódban)
Nem állítom, hogy ez a legjobb módszer, de nekem eddig mindig működött.Illetve cheat sheet-szerű dolgok is jól jönnek, pl.: [link] vagy [link]
-
-
Sajna semmi látványosat nem csinál, így fogalmam nincs mire kellene rákeresni, de a fotód nagy segítség, hogy miket nézzek meg.
Köszi a magyarázatot!
Jól tippelek, hogy az ilyen alap dolgok megértése(mi is az a strem, meg az származtatás) után már csak a különféle osztályokkal kell megismerkednem, hogy melyik mire való, milyen parancsokat tartalmaz? Minél többet ismersz fejből annál jobb programozó vagy?
-
#68216320
törölt tag
Java tanfolyamot tudnátok ajánlani Bp-en?
-
floatr
veterán
Workaroundként tudom esetleg javasolni, ha a filter nem dobja ki amit kéne, hogy a parancsra keress rá.
A System.in egy stream, a példához kell egy reader, ami a doksi íves fogalmazása egy byte streamet dekódol karakteres streammé a megadott vagy default charset alapján. A pufferes téma meg amiatt lehet jó, hogy soronként tudsz olvasni karakteres streamet, mivel előre olvas a pufferbe és többek közt megkeresi a sorváltásokat.
-
Az első fotóban is bind szerint volt rendezve, de ott nekem csak egy SHIFT+ALT+X-et mutatott:
Igen a CTRL+SHIFT+O-ra gondoltam, hogy nekem a másik program ALT+ENTER megoldása szimpatikusabb.
Ugyanakkor a magyar youtube oktató videók Eclipse-t használnak, annak a trükkjeit ismertetik.
Mondjuk az is igaz, hogy eddig csak a Netacademia-s videót néztem meg, és már ott sem volt minden világos. pl.
InputSreamrReader isr = new InputStremReader(System.in);
BufferedReader br = new BufferedReader(isr);Miért nem közvetlen az isr-ből olvassa ki (gondolom mert nem lehet), miért kell egy "stream-be" tenni a System.in-t, és miért onnan olvassa ki.
-
floatr
veterán
Úgy látom a szakmai fórum új szintre lép azzal, hogy másik IDE-t ajánlanak egy key binding probléma megoldására
Ha rendezed a binding-re a listát, akkor láthatod hogy rengeteg Shift+Alt X kezdetű kombináció van. Én korábban a Ctrl+Alt kombinációkkal szívtam, mire rájöttem (IDE váltás szándéka előtt) hogy viszonylag gyorsan meg lehet oldani a problémát, hogy angol ABC-hez szokott kezek gyúrták össze a rendszert.
Az importra nem tudom ismerős-e a Ctrl+Shift+O (organize imports). Bár lehet h nem erre gondoltál.
-
Akkor nem is kellett volna feltenni a jdk 1.8-at?
Viszont itt is foglalt az ALT+SHIFT+X... Szerencsére itt enged bill.kódra keresni:
Ki is iktattam, így már van kisebb, nagyobb jelem. Szokni kell (Pláne hogy eddig eclipse videókat néztem és tanulgattam. pl. sysout+CTRL+SPACE). Ugyanakkor az ALT+ENTER megoldás az osztályok importálására szimpatikusabb.) -
-
Nem keres bill. kombóra, viszont a kresőbe tudok kacsacsőrt tenni.
mobal
Erre gondoltál? https://www.jetbrains.com/idea/+ A Tantusz könyvek Java kiadása mellé még mit kéne átolvasnom(magyarul)? Nézegettem Youtube videókat, de 1-2 lecke után félbeszakadtak, vagy nagyon csak az alap dolgokat (konzolos appok) mutatja be. Olyat még nem találtam ami a GUI alapjaiba is bevezet.
-
-
OS X alatt ismerkedem az Eclipse-el, és a Java-val. Az első gondom, hogy az ALT+SHIFT+Y (ill. X)-et hiába nyomom, nem jelenik meg a kacsacsőr: <>
Mit hol kell beállítani, hogy Eclipse alatt is visszajöjjön? -
skoda12
aktív tag
válasz
Cathfaern #8621 üzenetére
Habár láttam az elmúlt években egy-két álláshirdetést, ahol előnyként meg volt jelölve az oracle vizsga megléte, szerintem nem érdemes foglalkozni a letételével. A hozzá szükséges tudás viszont legyen meg, mert állásinterjún tesztelni fogják a nyelvi elemek ismeretét.
Én ugyan letettem a 6-os vizsgát, de akkor még teljesen kezdő voltam és jól jött a CV-be, neked viszont már van fejlesztési tapasztalatod. Egyébként is lejár, azt hiszem 2 évente frissíteni kell.bundli: Két lehetőség van. Nem töltesz adatot a DB-be (create-table.sql gondolom csak táblát hoz létre) vagy nem commitolsz.
-
smallmer
őstag
Sziasztok,
egy kis segítséget szeretnék kérni, mert valami nem okés:feladatleírás:
Készíts egy Szalak nevű Java osztályt, amely parancssori argumentumában egy egész számot vár. Jelöljük most ezt a számot n-el!
A program hozzon létre és indítson el n db szálat 1,2..n sorszámokkal, a következő működéssel.Minden szál (n-sorszam+1)-szer ismétli a következő két lépést:
várakozik a sorszámának megfelelő másodpercet
kiírja a szál nevét
A várható kimenet a következő (1-2 egymás utáni sor esetleg felcserélődhet):Thread-0
Thread-1
Thread-0
Thread-2
Thread-0
Thread-3
Thread-1
Thread-0
Thread-4
Thread-0
Thread-2
Thread-1
Thread-3
Thread-1
Thread-2A kód amit készítettem:
package beadando;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Szalak {
public static void main(String[] args) throws Exception {
int n = Integer.parseInt(args[0]);
for (int i=1; i<=n; i++) {
new Beadando(i,n).start();
}
}
}
class Beadando extends Thread {
private int i;
private int n;
public Beadando(int i, int n) {
this.i = i;
this.n = n;
}
public void run() {
int x = i;
int dig = n-i+1;
for(i=0; i<dig;i++){
// System.out.println(i);
try {
Thread.sleep(i*1000);
} catch (InterruptedException ex) {
Logger.getLogger(Beadando.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(this.getName());
}
}}szerintetek mi lehet a hiba?
köszönöm
-
bundli
tag
Sziasztok!
Segítséget kérnék, mert elakadtam kicsit.
Spring frameworknek egy beépített adatbázisát használom, ezt gond nélkül el is indítottam az alábbi paranccsal:
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase db = builder
.setType(EmbeddedDatabaseType.H2) //.H2 or .DERBY
.addScript("create-table.sql")
.build();Ezután rá is tudok csatlakozni az adatbázisra egy egyszerű JDBC connection kéréssel:
Connection connecton = DriverManager.getConnection("jdbc:h2:mem:testdb","sa","");
A baj csak annyi, hogy bár rá tudok csatlakozni, a tartalmát nem látom, teljesen üres.
Ez az oldal meg is magyarázza ezt a jelenséget, ugyanis ugyanabban a Spring conatinerben kell, hogy fusson az adatbázis és az a service, ami rácsatlakozik. Ezt az ötödik pontban írja le az említett oldal.
Viszont bárhogy is próbálkozom, nem sikerül.
Beraktam a fent említtett kód után az alábbi metódust ugyanabba az osztályba:
@PostConstruct
public void startDBManager() {
//h2
DatabaseManagerSwing.main(new String[] { "--url", "jdbc:h2:mem:testdb", "--user", "sa", "--password", "" });
}De sajnos ez sem segített.
Van valakinek bármi tipje, hogy mit nézek be?
-
skoda12
aktív tag
válasz
Cathfaern #8616 üzenetére
A nyelv áttekintésére az oracle java vizsga könyve megfelelő. Nem foglalkozik az alapokkal, így nem kell oldalakon át rácsodálkozni a ciklusokra, meg az alapműveletek operátoraira és feltételezi, hogy már elboldogulsz valamelyik java IDE-ben. Viszont elég jó kis összefoglalót tartalmaz classokkal, lambdaval és néhány beépített alap könyvtárral kapcsolatban. Sok példakód van benne, ami kiemeli azokat a részleteket, amiken könnyű átsiklani egyébként. Van benne rengeteg "mit ír ki ez a kód" típusú trükkös kérdés megoldásokkal, amikkel állásinterjún is lehet találkozni.
Keretrendszerekkel kapcsolatban az adott technológia oldalán levő dokumentációt érdemes olvasni. Például a spring referencia tele van példákkal. Innen minimum a III. szekciót érdemes elolvasni, utána pedig azt a részt, amivel foglalkoznod kell a munkád miatt, mert amúgy nagyon nagy az anyag. A guides résznél pedig találsz futtatható githubos spring projekteket.
Hasonlóan, bármilyen más java frameworkot nézel ki magadnak (hibernate, guice, etc), a hivatalos oldalán jó eséllyel lesz olyan guide/tutorial/reference, ami alapján bele lehet tanulni. -
Cathfaern
nagyúr
Előzmény kérdéshez: 5 éves gyakorlattal rendelkezek programozóként. Kezdetben PHP, utána egy ideig frontend vonal (nagyrészt JS, vége felé CSS+JS, mindenféle keretrendszerekben / librarykkel, közben minimális PHP), jelenleg meg JS + Groovy (egyedi keretrendszer).
Kérdés: szeretnék jobban belemélyedni javába, egyrészt mert régen (7-8 éve) foglalkoztam vele, és szimpatikus volt, másrészt a jelenlegi keretrendszer alapjai is java-s, tehát már mostani helyemen is tudnám kamatoztatni a tudást (a mostani helyemen nem tudok elmélyülni benne, mert egyedi keretrendszer de külsős csapat fejleszti, mi csak használjuk), harmadrészt másrészt szeretnék hosszú távon munka téren is ebbe az irányba elmozdulni (akár úgy, hogy a nálunk használt keretrendszert lehetne belsőleg fejleszteni, nem mindig külsősökre kéne várni). A problémám az, hogy nagyjából kétféle tutorialt találok:
1) Írjuk meg életünk első hello world programját, mi az a for ciklus meg változók meg tömb, stb...
2) Túl magas szintről indít (mert már valami konkrét keretrendszer tutorial java-t ismerőknek) és úgy vagyok vele, mint az egyszeri agglegény a szakácskönyvvel, hogy elakad a "végy egy tiszta edényt" mondatnálSzóval tud valaki olyan tutorialt / tanfolyamot (bár tutorial jobb lenne, jobban szeretek saját tempómban haladni, ha kérdezni kell meg ott a google) ami nem kezdő programozó tanfolyam, hanem haladóbb programozóknak java átképző guide?
Esetleg a #8609-ban linkelt tanfolyam jó lenne erre? (tudom már megy egy hete, de még mindig enged jelentkezni). Vagy random válasszak ki egy keretrendszert, pl. Spring, keressek hozzá egy tutorialt, pl. ez, és essek neki? Nyilván utóbbival elboldogulnék, eddig minden általam ismert programnyelvvel így indultam el, csak pontosan ezért tudom, hogy mennyi szívástól megkíméli magát az ember, ha van valami irányvonal, hogy na ezt így kéne csinálni... és ezért attól félek, hogy megfelelő alapok nélkül hülyeségek rögződnének be, illetve részben a keretrendszer hülyeségeit tanulnám meg (a 7-8 évvel ezelőtti ismerkedés kimerült notepad++-ban megírt konzolos applikációknál, szóval az nem ad megfelelő alapot). Vagy hogy lenne érdemes elindulni?
-
stepboy
csendes tag
válasz
Chesterfield #8613 üzenetére
Ezt írja:
"Programming experience equivalent to Introduction to Computer Science and Programming Using Python 6.00.1x is required, with a working knowledge of a modern programming language like Python or Javascript or Java. The course will use Java for all assignments, but will include Java tutorial elements if you don't know Java yet."Tehát kell hozzá már meglévő programozási ismeret.
-
n00b
újonc
válasz
Taoharcos #8454 üzenetére
Én most hétfőtől járok egy intenzív 12 hetes online kurzusra:
https://www.edx.org/course/software-construction-java-mitx-6-005-1xEz teljesen ingyenes, ha nem akarsz papírt róla, és az MIT tartja. Csapatokban fogunk projekteken dolgozni. Lehet, hogy kicsit későn szólok, de ha csatlakozol, szólj! Mindig jó, ha vannak magyar ismerősök
A többieket kérdezem: szerintetek érdemes kifizetni az 50 dolcsit a papírért? LinkedIn-be is beilleszthető. Én szeretnék a szakmában elhelyezkedni, de egy ismerősöm szerint nem a papírt nézik, hanem a tudást.
-
DarkByte
addikt
De ehhez konkrétan "érti is" hogy az egy Spring XML, vagy csak string egyezést néz? Mert a Find Usages még a property fájlokban is megtalálja az osztályt ha le van írva a teljes neve (sőt még szerintem anélkül is) és szerintem itt is csak ez történik. De fixme.
A NetBeans-ért pedig kár. Java-s pályafutásomat azzal kezdtem és nem volt az rossz.
A Spring Tool Suite miatt elpároltam egy idő után Eclipse-re, ennyi volt a bűne. Na meg hogy Groovy támogatása nem sok volt neki akkoriban, szerintem azóta sem változott ez.
Amúgy itt off, de a napokban egészen meglepődtem hogy a C++17 fordító milyen optimalizált kódot tud csinálni.
[link] Jó, biztosan gyúrt erre az arc hogy direkt ilyen kód készüljön, ahogyan a végén egy ember rá is kérdezett hogy megnézi nagy production kódban hogyan szúrja ki, hogy miért csinált több gépi utasítást mint kellene. De azért csak pislogtam mint hal a szatyorban mikor láttam.
-
floatr
veterán
válasz
fordfairlane #8602 üzenetére
Azért nem mindegy, hogy hogyan van menedzselve. Anno amikor a WFC-t használtam a MS motorjával, tisztán látszott az, hogy a MS tud JIT compilert írni, tud sebességre optimalizált struktúrát tervezni... szomorkodjunk együtt
-
fordfairlane
veterán
Szomorú dolog ez. Mintha ezek a menedzselt kódok ennyi idő eltelte után sem lennének képesek beérni a natív alkalmazásokat ebben a tekintetben. Hiába a hardver fejlődése, SSD-k, satöbbi.
Persze lehet, hogy nem jó helyen tapogatózok, és nem a menedzselt kódbázis a lényeg, nekem valahogy mégis úgy tűnik, hogy itt az egyik fő választóvonal.
-
válasz
fordfairlane #8599 üzenetére
Semmi, az IJ meg a tobbi ugyanolyan lassu. A VS meg mindig a leggyorsabb. (A VS Code is szuper.)
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- T14s Gen4 14" FHD+ IPS i7-1365U 16GB 512GB NVMe magyar bill IR kam gar
- Gopro hero 7 black
- ThinkBook 16p Gen3 16" QHD+ IPS Ryzen 5 6600H RTX 3060 16GB 512GB NVMe ujjlolv gar
- ThinkBook 16p Gen3 16" QHD+ IPS Ryzen 5 6600H RTX 3060 16GB 512GB NVMe ujjlolv gar
- HP Probook 640 G2 (14FHD/i3-G6/8GB/256SSD/Magyar/Win11) - Szép!
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- ASUS ROG GL552VW - 15.6"FHD IPS - i7 i7-6700HQ - 8GB - 128GB SSD + 1TB HDD - GTX 960 4GB -
- Prémium PC házak akár 20-40% kedvezménnyel eladók garanciával, számlával!
- Lenovo Legion 5 15ACH6 Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
- BESZÁMÍTÁS! Asus B350 R5 1600 16GB DDR4 512GB SSD GTX 1050Ti 4GB Cooler Master CM 690 III TT 500W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest