Lesson3: Heap and Stack

 Stack - more controllable memory area. LIFO prinsipi ile calishir. 

Heap - hard to control. Stack - dan balacadir.

package az.etibarli;

import java.util.Arrays;
import java.util.function.Predicate;

public class StackDemo {
private static String[] methods = {"f", "g", "main", "u"};
private static int uCallCount;

public static void main(String[] args) {
printStackTrace(1);
f();
printStackTrace(7);
u();
printStackTrace(9);
}

public static void f() {
printStackTrace(2);
int i = 5;
String s1 = new String("Java!");
g(false);
printStackTrace(4);
g(true);
i++;
}

public static void g(boolean b) {
if (!b)
printStackTrace(3);
else
printStackTrace(5);
int i = 5;
i++;
String s1 = new String("Java!");
if (b)
u();
}

public static void u() {
if (uCallCount == 0) {
printStackTrace(6);
uCallCount++;
} else
printStackTrace(8);
int i = 5;
String s1 = new String("Java!");
}

public static void printStackTrace(int breakPoint) {
System.out.println("=============================");
System.out.println("Break Point " + breakPoint + " ||");
Predicate<String> isInArray = s -> {
int position = Arrays.binarySearch(methods, s);
if (position >= 0)
return true;
else return false;
};

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for(StackTraceElement element : stackTraceElements) {
String methodName = element.getMethodName();
if(isInArray.test(methodName))
System.out.printf("%-13s %-2s\n", methodName, "||");
}
System.out.println("==============================");
}
}


                                                                            Scope

package az.etibarli;

public class ScopeDemo {
int i = 1;

public static void main(String[] args) {
int i = 0;
System.out.println(i);

for (; i < 5; i++) {
System.out.println(i);
if (i < 3) {
int ii = 3;
int a;
f(ii);
} else if (3 < i & i < 12) {
int ii = 8;
f(ii);
} else {
int ii = 17;
f(ii);
}
}
}

public static void f(int i) {
System.out.println(i);
}
}





Комментарии

Популярные сообщения из этого блога

IoC:ApplicationContext, BeanFactory. Bean

Lesson1: JDK, JVM, JRE

Lesson_2: Operations in Java