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);
}
}
Комментарии
Отправить комментарий