1.1.1.1. fejezet, Kezdő lap programozóknak

Alaptipusok és a nekik megfelelő objektumok

Alaptipus Osztályok
int Integer
long Long
byte Byte
short Short
boolean Boolean
float Float
double Double
char Character

A switch vezérlési szerkezetben csak az enum és alaptípusok - 1.7-től a String típus is - használhatók a case étrékeként. Számoknál a megfelelő objektumban meghatározták konstansként a MIN_VALUE és MAX_VALUE értékeket.

Felsorolt tipus: enum

Blokkok

A blokk - C nyelvben is használt - kapcsos zárójelek közé zárt kódrészlet.

{blokk utasítások;}

Tömb deklaráció

byte[] variableName = {1,5,7};

Paraméter átadás metódus hívásoknál

Alaptípusokat érték szerint, objektumokat referenciaként adja át a Java (azaz a metódus végrehajtása közben a hivatkozott objektum állapota változhat, és a metódus visszatéréskor az objektum változása a paraméterként átadott változóba is látszik).

Metódus visszatérés értékkel

...
return value;

Operátorok:

  • Számok: aritmetikai műveletek: + - * / %
    Pl.: 2 + 3 [=5], 3.2 / 1.6 [=2.0], 7 % 3 [=1], 2 * 1.1 [=2.2]
  • Stringek: összefűzés: +
    Pl.: "abc" + "cde" [="abccde"], "x" + " " + "y" [="x y"]
    Minden más érték is átalakítható stringgé: "x: " + 3.2 [="x: 3.2"]
  • Összehasonlítás: ==, !=, <, <=, >, >=
    Pl.: 6 < 7 [=true], 4.2 != 5.3 [=true]
  • Logikai műveletek: &&, ||, !
    Pl.: !true [=false], 2 < 3 || 4 > 5 [=true]
  • Feltételes kifejezés: felt ? e1 : e2
    Pl.: 2 > 0 ? "Pozitív" : "Negatív" [="Pozitív"]
  • Zárójelezés: "2 < 3: " + (2 < 3 ? "igen" : "nem"),
    [="2 < 3: igen"], (2+2)*3 [=12]

String összehasonlítás

Mivel az == operátor objektum összehasonlításként értékelődik ki, ezért két String objektum értékét az equals és az equalsIgnorCase() metódusokkal tudjuk összehasonlítani. Hasonló metódusok még a startsWith() és az endsWith()

"valami".equels(o); // Ahol o lehet null érték is 

Vezérlési szerkezetek

Elágazások:

if (feltétel) {blokk} else {blokk}
switch(feltétel) case VALUE: {blokk}; break; ... case ... case ... default: {blokk};

Iteráció

while (feltétel) { ... break; ... continue;}
do {blokk} while (feltétel)
for(int i = 0; i < maxValue; i++)
 List<Type> list;
 for(Type item : list) {}

Kivétel kezelés

try {blokk; ... throw new Exception('üzenet'); } catch (Exception e) {blokk; e.metódus();} finally {blokk}

JavaSE 7-től alkalmazható összevont kivétel kezelések:

 try { ... } catch (IOException | FileNotFoundException ex) { ex.printStackTrace(); }

Láthatóság

private,protected,public

Osztály és interfész

public interface FileAccess {
  public Date getLastAccessTime();
}
 
public class FileAccessByIP extends BaseClass implements FileAccess, Serializable {
 
  private static final long serialVersionUID = -8223304647110342664L;
 
  @Override
  public Date getLastAccessTime(){
 
  }
}

Osztály változó, konstans, objektum tulajdonság

package hu.infokristaly.model;
import hu.infokristaly.model.Human;
public class Classmate extends Human {
 
        private String color; //Object property (has getter/setter)
        private static int userCounter; //Class variable
        private final static String defaultColor = "green"; //Class constant
 
        public static enum STATUS {
            LISTEN, SLEEP
        }
 
        public static int getStatusOrdinal (STATUS status) {
            return status.ordinal();
        }
 
        public Classmate() {
          super();
          this.color = defaultColor;
          userCounter++;
        }
 
        public Classmate(String color) {
          super();
          this.color = color;
          userCounter++;
        }
 
        public String getColor() {
          return color;
        }
 
        public void setColor(String color) {
          this.color = color;
        }
 
        public static int getObjectCount() {
          return userCounter;
        }
 
}

Serializable interface

private transient Osztály propertyName; - nem sorosítható tulajdonság.

Kiírás konzolra

System.out.println(...);

Beolvasás konzolról

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class ReadConsoleSystem {
  public static void main(String[] args) {
 
	System.out.println("Enter something here : ");
 
	try{
	    BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
	    String s = bufferRead.readLine();
 
	    System.out.println(s);
	}
	catch(IOException e)
	{
		e.printStackTrace();
	}
  }
}

Memória használat

A java VM futtatásakor lefoglalható memóriát az alábbi paraméterek határozzák meg (java -X):

  • -Xss: alapértelmezett stack méret (-Xss1024m)
  • -Xms: alapértelmezett heap méret (-Xms1024m)
  • -XX:PermSize: permanens heap méret, amit a GC nem kezel (-XX:PermSize=2048m)

Csalafinta metódusok.