- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Projektor topic
- AMD Navi Radeon™ RX 9xxx sorozat
- Azonnali VGA-s kérdések órája
- SSD kibeszélő
- Apple MacBook
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- 3D nyomtatás
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- Amlogic S905, S912 processzoros készülékek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
-
9100 - 9001
12211 - 12001 12000 - 11901 11900 - 11801 11800 - 11701 11700 - 11601 11600 - 11501 11500 - 11401 11400 - 11301 11300 - 11201 11200 - 11101 11100 - 11001 11000 - 10901 10900 - 10801 10800 - 10701 10700 - 10601 10600 - 10501 10500 - 10401 10400 - 10301 10300 - 10201 10200 - 10101 10100 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
-
Szmeby
tag
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.

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
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!
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
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!
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!
Továbbá próbáltam volna for ciklussal elemenként összehasonlítani, de azt meg nem tudtam megoldani, mert az arraylistes metódusokat nem találta Objecktes változóra. Próbáltam átalakítani is mint a point-nal, de azt sem ette meg.
-
#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
Sziasztok!
Köszönöm szépen a segítségeteket, hozzászólásokat! Megoldódott a zárójelezéssel.
Köszönöm a Google Java linket, és a változókra és tab-ra figyelni fogok ezek után. Nekem ezek hasznos tanácsok, mivel még csak ismerkedek a Java nyelv rejtelmeivel.
-
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
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.)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.) -
tboy93
nagyúr
Meg a magyar valtozo nev valasztast is...
-
bucsupeti
senior tag
A for ciklus kapcsai hol vannak?
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. -
Chesterfield
őstag
A for ciklus kapcsai hol vannak?
-
donathl
csendes tag
-
Lacc
aktív tag
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?Ez a Java jegyzet jó lehet kezdésnek. (Bár régi)
-
Taoharcos
aktív tag
Persze, neki lehet menni, de nagyon a favágó szintről elmozdulni nem lehet.
Szerintem meg Kellően erős érdeklődéssel, lelkesedéssel és sok szorgalommal mindent lehet.

-
Aethelstone
addikt
-
floatr
veterán
Gonosz

-
axioma
veterán
Álláshirdetéseket hol érdemes nézegetni?
Profession?Regisztralj linkedin-re, ha beirod hogy java, meg fognak talalni...
-
tboy93
nagyúr
Álláshirdetéseket hol érdemes nézegetni?
Profession?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
-
fordfairlane
veterán
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.
-1
-
Aethelstone
addikt
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.
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
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?
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.
-
tboy93
nagyúr
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.
+1
-
bucsupeti
senior tag
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.
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
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.
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
Persze, neki lehet menni, de nagyon a favágó szintről elmozdulni nem lehet.
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
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.
Persze, neki lehet menni, de nagyon a favágó szintről elmozdulni nem lehet.
-
fordfairlane
veterán
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.
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
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.
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
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.)
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
De mit tanítanak több féléven keresztül, ami nélkül nem lehet elkezdeni egy konkrét programnyelvet?
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
Jesszus. Szerintetek azért tanítják több félévben, több tantárgy keretei között?
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?
-
Cathfaern
nagyúr
-
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
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?
Szerintem igen.
-
Aethelstone
addikt
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?
Hát nem túl valószínű.
-
fordfairlane
veterán
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?
-
Taoharcos
aktív tag
-
Aethelstone
addikt
-
madmike
őstag
-
Karma
félisten
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?Szerintem a 24 órás könyvek sose állták meg a helyüket.
Akkor már inkább a Head First/Agyhullám könyvnek járj utána. -
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.
-
Aethelstone
addikt
-
#68216320
törölt tag
-
#68216320
törölt tag
-
axioma
veterán
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)));}
}}
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
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)));}
}}
Pölö a lengyel forma használatával. Avagy a fordított lengyel forma használatával.
-
csabi0911
csendes tag
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
Éles környezetben igen, de azért csúf lenne, ha egy Java vagy bármilyen fejlesztő nem lenne tisztában azzal, hogy miként működnek a környezeti változók és fejlesztői környezetben ezek állítgatása fejlesztői feladat. Vonatkoztatva nem csak java-ra

Természetesen a fejlesztő a devops-os a maga birodalmában
így neki illik tisztában lennie ezekkel. -
Aethelstone
addikt
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.Éles környezetben igen, de azért csúf lenne, ha egy Java vagy bármilyen fejlesztő nem lenne tisztában azzal, hogy miként működnek a környezeti változók és fejlesztői környezetben ezek állítgatása fejlesztői feladat. Vonatkoztatva nem csak java-ra

-
disy68
aktív tag
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.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. -
Aethelstone
addikt
Mondjuk azért sem, mert ezzel a változóval lehet többféle JDK-t használni. Nyilván nem egyidőben
Ha csak egy(vagy több) mezei PATH lenne beégetve, honnan tudná a nyomorult, hogy egy java parancs honnan futtatandó? -
emvy
félisten
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ó.
A masik ok meg az lehet, hogy egyaltalan nem biztos, hogy egy uj kornyezeti valtozo nem kavarna be mas programoknak. Siman lehet, hogy fontos az, hogy ne legyen a JAVA_HOME alapbol beallitva.
-
Cathfaern
nagyúr
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 dudeNem 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ó.
-
skoda12
aktív tag
-
cigam
titán
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 dudeMiért kell ezzel utólag kézzel bindzsiszkedni? Miért nem állítja be a telepítő a környezeti változót, és az elérési útvonalat?
-
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.
-
fordfairlane
veterán
-
eliterob
tag
-
eliterob
tag
-
kispx
addikt
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..
Bemásolnád a PATH változó tartalmát?
-
MPeter87
őstag
-
eliterob
tag
#9029
Ez mit jelent? Én még kezdő vagyok nézd el kérlek...
-
Aethelstone
addikt
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..
#9029
-
eliterob
tag
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.
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..
-
Aethelstone
addikt
-
fordfairlane
veterán
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...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.
-
kispx
addikt
-
eliterob
tag
Másold már ide, hogy mit ír....addig kurvára csak találgatunk

Szerkesztettem az előző hozzászólásom

De ha kell még valami infó mondjátok
-
Aethelstone
addikt
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...Másold már ide, hogy mit ír....addig kurvára csak találgatunk

-
eliterob
tag
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 dudeigen 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
Ü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?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 -
tboy93
nagyúr
Ü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?Milyen paranccsal probalkozol es milyen hibauzit dob a command line? Kornyezeti valtozok koze felvetted a java foldert? link
-
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
Úgyúgy! Thxxxxxxxxxxx!
Első kettő nekem is megvolt. A harmadikra valami bonyolult ötletem lett volna..
Jelentem Uraim működik!

Na jön a második rész....

-
Atapi
senior 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.
én három hibát találtam:
- egy for ciklusban pontosvessző helyett sima vesszőt használtál
- a restaurants tömbneved végéről több helyen lehagytad a záró s-t
- w nem int tipusu, hanem Restaurant -
#74220800
törölt tag
-
#74220800
törölt tag
ááá. Annyi van nincs értelme.
Egyébként kb. a getTotalSeats () es a toString () minden sorában hibát jelez.....
-
skoda12
aktív tag
Szerk: Semmi, benéztem, megzavart a max elnevezés használata nem maximális kezdőelemre ...
Mindenesetre a hibákat bedobhatnád egy hozzászólásban, függettlenól attól, hogy fordítási vagy futtatási háról van szó.
-
#74220800
törölt tag
-
mobal
nagyúr
-
#74220800
törölt tag
Sortolást List-el és Comparatorral.
Na várj ez így nekem kevés.
List-et még nem tanultuk, anélkül kéne abszolválni. -
Aethelstone
addikt
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.
Sortolást List-el és Comparatorral.
-
#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.
-
Aethelstone
addikt
-
emvy
félisten
Óh, jboss hangoláskor alap a gc tuning

Nem JBoss. Még a GC tuning az szokás, persze, de a G1 sokkal haklisabb, mint a CMS meg a többi volt.
-
Aethelstone
addikt
Óh, jboss hangoláskor alap a gc tuning

-
emvy
félisten
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.
-
moriak
tag
-
mobal
nagyúr
-
floatr
veterán
-
mobal
nagyúr
-
emvy
félisten
-
Aethelstone
addikt
A nyelv meg a core libek meghatározzák a fejlesztők alapvető hozzáállását.
A lényeg szerintem, hogy 1-2 évente meg kell tanulni egy új nyelvet vagy valami új paradigmat, akkor is, ha nem használod a melóban, hogy tagitsa a latokort. Ha Springes vagy, nézd meg a Playt. Ha Javát látsz melóban, nézd meg a Clojure-t. Ha SQLt tolsz, próbálj ki egy kdb-t vagy valami graphql-es dolgot.
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
-
9100 - 9001
12211 - 12001 12000 - 11901 11900 - 11801 11800 - 11701 11700 - 11601 11600 - 11501 11500 - 11401 11400 - 11301 11300 - 11201 11200 - 11101 11100 - 11001 11000 - 10901 10900 - 10801 10800 - 10701 10700 - 10601 10600 - 10501 10500 - 10401 10400 - 10301 10300 - 10201 10200 - 10101 10100 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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?:))
- Macbook Pro 16" A2485 2021 M1 MAX 32/1TB 32 GPU Astro (Dobozos, 16 ciklus 100% akku)
- Apple Watch Series 11 GPS + Cellular 46mm fekete, magyar, 3 év garancia
- GYÖNYÖRŰ MacBook Pro 14" M2 Pro 16 GB - 512 GB GAR ÉS jótállás!
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- Lenovo Legion Pro 5 - 16IRX10 - i9 14900HX - RTX 5070 - 32GB - 1TB
- ÚJ/BONTATLAN Microsoft Surface Laptop 6 Ultra 7 165H 16GB 1TB
- Telefon felvásárlás!! Honor Magic8 Lite / Honor Magic8 Pro
- Samsung PM9C1b 1TB M.2 PCIe Gen4 SSD! 7.100-6.700MB/s
- Bomba ár! HP EliteBook 8440P - i5-520M I 4GB I 250GB I DVDRW I 14" HD I Cam I Garancia!
- Samsung Galaxy A52 / 6/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


), é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.




![;]](http://cdn.rios.hu/dl/s/v1.gif)



